Aspects of the present disclosure relate to systems and methods for automatically constructing a new formula based upon an existing formula. Various methods are employed to analyze an existing formula in order to determine an intent. Once the intent is determined, a new formula may be constructed that satisfies the intent of the existing formula. Further aspects relate to validating the new formula to ensure it produces the same result as the existing formula which it is intended to replace. Various user interface elements are also disclosed which may be employed to provide the newly constructed formulas to users of an application. The various aspects to disclosed herein may be performed by an application, such as a spreadsheet application, performed in real-time, or provided as a remote service.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A system comprising: at least one processor; and memory encoding computer executable instructions that, when executed by the at least one processor, perform a method comprising: identifying an existing formula; analyzing the existing formula to determine an intent of the existing formula; constructing a new formula based upon the intent of the existing formula; and providing, via a user interface, the new formula. 2. The system of claim 1, wherein the method further comprises: computing the existing formula to determine a first result; computing the new formula to determine a second result; and prior to providing the new formula, validating the new formula by comparing the first result and the second result. 3. The system of claim 1, wherein providing the new formula further comprises providing, via the user interface, audit information based upon the validation of the new formula. 4. The system of claim 1, wherein the user interface is for a spreadsheet application and wherein the user interface comprises a formula bar. 5. The system of claim 4, wherein the existing formula is displayed in the formula bar and wherein providing the new formula comprises displaying the new formula in a drop down menu adjacent to the formula bar. 6. The system of claim 4, wherein the method further comprises: receiving, via the user interface, a selection of the new formula; and in response to receiving the selection, committing the new formula. 7. The system of claim 6, wherein committing the new formula comprises replacing the existing formula displayed in the formula bar with the new formula. 8. The system of claim 1, wherein determining the intent comprises at least one of: analyzing one or more of the dependents or precedents of a formula; analyzing one or more of the neighboring cells of a formula; analyzing a result generated by computing the existing formula; analyzing one or more functions of the existing formula; analyzing one or more parameters of the existing formula; analyzing underlying data related to the existing formula; and performing natural language understanding. 9. A method comprising: identifying one or more existing formulas in a spreadsheet, wherein the one or more existing formulas comprise at least one function; analyzing the one or more existing formulas to determine an intent of the one or more existing formulas; constructing a new formula based upon the intent of the one or more existing formulas, wherein the new formula satisfies the intent of the one or more existing formulas; providing, via a user interface, the new formula; determining whether a selection of the new formula has been received; and when the selection of the new formula has been received, committing the new formula. 10. The method of claim 9, wherein the one or more existing formulas comprises at least two formulas, and wherein committing the new formula comprises replacing the at least two formulas with the new formula. 11. The method of claim 9, further comprising when the selection of the one or more existing formulas has not been received, discarding the new formula and maintaining the one or more existing formulas. 12. The method of claim 9, wherein the new formula comprises a group of sub-formulas. 13. The method of claim 9, further comprising validating the new formula, wherein validating the new formula comprises at least one of: determining a first readability score for the new formula; and determining one or more performance metrics for the new formula. 14. The method of claim 13, wherein providing the new formula comprises: determining whether the one or more performance metrics for the new formula outperform performance metrics for the one or more existing formulas; and when the one or more performance metrics for the new formula outperform the performance metrics of the one or more existing formulas, providing the new formula. 15. The method of claim 13, wherein providing the new formula comprises: determining whether the readability score for the new formula outperforms a second readability score for the one or more existing formulas; and when the readability score for the new formula outperforms the second readability score for the one or more existing formulas, providing the new formula. 16. A computer storage medium encoding computer executable instructions that, when executed by at least one processor, perform a method comprising: identifying an existing formula in a spreadsheet, wherein the existing formula comprise at least one function; analyzing the existing formula to determine an intent of the formula; constructing a new formula based upon the intent of the existing formula, wherein the new formula satisfies the intent of the existing formula; providing, via a user interface for a spreadsheet application, the new formula; determining whether a selection of the new formula has been received; and when the selection of the new formula has been received, committing the new formula. 17. The computer storage medium of claim 16, wherein determining the intent comprise at least one of: analyzing one or more of the dependents or precedents of a formula; analyzing one or more of the neighboring cells of a formula; analyzing a result generated by computing the existing formula; analyzing one or more functions of the existing formula; analyzing one or more parameters of the existing formula; analyzing underlying data related to the existing formula; and performing natural language understanding. 18. The computer storage medium of claim 16, wherein the method further comprises: computing the existing formula to determine a first result; computing the new formula to determine a second result; and prior to providing the new formula, validating the new formula by comparing the first result and the second result. 19. The computer storage medium of claim 16, wherein the existing formula is displayed in the formula bar and wherein providing the new formula comprises displaying the new formula in a drop down menu adjacent to the formula bar. 20. The computer storage medium of claim 19, wherein the method further comprises: receiving, via the user interface, a selection of the new formula; and in response to receiving the selection, committing the new formula.