Analyzing a set of policies. A goal comprising a particular outcome is received. An analysis object comprising a data structure maintaining information needed to perform an analysis of the goal is defined. The analysis object is configured to limit a number of calculations needed to achieve the goal. Each member of a set of expressions found in the set of policies has an output. The output is the same for each expression. One of the set of expressions is solved. The solved output is cached in the analysis object such that the solved output is associated with each member of the set of expressions. The analysis object is processed to create a set of values that achieves the goal. Processing includes referencing the cache to retrieve the solved output each time a member of the set of expressions is to be solved during processing of the analysis object.
Please help me write a proper abstract based on the patent claims. CLAIM: 1-20. (canceled) 21. A method implemented in a computer processor, the method comprising: receiving, at the processor, a plurality of policies from a non-transitory computer readable storage medium in communication with the processor, the plurality of policies comprising a corresponding plurality of attributes; calculating, by the processor, a plurality of configurations for the corresponding plurality of attributes; defining, by the processor, a vector space, wherein components of the vector space comprise individual attribute settings and rule outputs, as well as overall policy outputs, for each configuration of the corresponding plurality of attributes; and searching, by the processor, the vector space based on an input received at the processor. 22. The method of claim 21 further comprising: prior to searching, pre-computing and indexing, by the processor, a result space for the plurality of policies and the corresponding plurality of attributes. 23. The method of claim 22 further comprising: outputting, by the processor, values of clauses and rules in the plurality of policies in response to a query received at the processor. 24. The method of claim 22 further comprising: receiving, at the processor, an input comprising a particular policy; and outputting, by the processor, a similar rule that has a similar result relative to the particular policy, the similar rule being in the plurality of policies. 25. The method of claim 21, wherein searching comprises searching for a particular configuration of the corresponding plurality of attributes. 26. The method of claim 21, wherein searching comprises searching for conditions under which a desired result can be achieved from the plurality of policies. 27. The method of claim 21 further comprising: outputting, by the processor, a suggestion regarding which attributes of the corresponding plurality of attributes make a most significant contribution to a complexity of the plurality of policies. 28. The method of claim 21 further comprising: determining, by the processor based on the searching, a side effect of a set of policies within the plurality of policies, wherein the side effect comprises an unintended and unexpected result of applying a particular set of inputs for particular ones of the plurality of policies. 29. The method of claim 21 further comprising: outputting, by the processor based on the searching, rules for which a sufficient number of necessary conditions are satisfied. 30. The method of claim 21 further comprising: outputting, by the processor based on the searching, a reason why conditions of a rule were not satisfied by listing a disjunctive normal form minterm expression that was satisfied or not satisfied in the plurality of polices. 31. The method of claim 21 further comprising: outputting, by the processor based on the searching, an attribute expression that is a sole negative component of a minterm or expression that otherwise would have been satisfied. 32. The method of claim 21 further comprising: outputting, by the processor based on the searching, a configuration in the vector space that is nearby another configuration in the vector space. 33. The method of claim 32 further comprising: determining, by the processor based on the outputting, whether an overall result of applying the plurality of policies could be changed by changing only one attribute value in the corresponding plurality of attribute values. 34. The method of claim 21 further comprising: outputting, by the processor based on the searching, a rule or rules that allow or deny a particular result of implementing the plurality of policies. 35. The method of claim 21 further comprising: outputting, by the processor based on the searching, a rule or rules that could have allowed or denied a particular result of implementing the plurality of policies, but were not satisfied by a selection of attribute settings of the plurality of attributes. 36. The method of claim 21 further comprising: outputting, by the processor based on the searching, a reason why a particular rule in the plurality of rules fires when a particular set of attributes is received for the plurality of attributes. 37. The method of claim 36, wherein outputting is performed by transforming a logic of the particular rule into a disjunctive normal form and then displaying particular disjunctive normal form clauses that were active in firing the particular rule. 38. The method of claim 21 further comprising: outputting, by the processor based on the searching, a sensitivity of a particular attribute in the plurality of attributes by outputting the particular attribute if the particular attribute may be changed without changing a result of applying the plurality of policies. 39. A computer comprising: a bus; a processor connected to the bus; a non-transitory computer readable storage medium connected to the bus, the non-transitory computer readable storage medium storing program code, which when executed by the processor, performs a method, the program code comprising: program code for receiving, at the processor, a plurality of policies from a non-transitory computer readable storage medium in communication with the processor, the plurality of policies comprising a corresponding plurality of attributes; program code for calculating, by the processor, a plurality of configurations for the corresponding plurality of attributes; program code for defining, by the processor, a vector space, wherein components of the vector space comprise individual attribute settings and rule outputs, as well as overall policy outputs, for each configuration of the corresponding plurality of attributes; and program code for searching, by the processor, the vector space based on an input received at the processor. 40. A non-transitory computer readable storage medium storing program code, which when executed by the processor, performs a method, the program code comprising: program code for receiving, at the processor, a plurality of policies from a non-transitory computer readable storage medium in communication with the processor, the plurality of policies comprising a corresponding plurality of attributes; program code for calculating, by the processor, a plurality of configurations for the corresponding plurality of attributes; program code for defining, by the processor, a vector space, wherein components of the vector space comprise individual attribute settings and rule outputs, as well as overall policy outputs, for each configuration of the corresponding plurality of attributes; and program code for searching, by the processor, the vector space based on an input received at the processor.