Abstract

A common technique for solving programming problems is to express the problem in terms of solving a system of so-called “simultaneous” equations (a collection of equations in a number of unknowns that are often mutually recursive). Having done so, a number of techniques can be used for solving the equations, ranging from simple iterative techniques to more sophisticated but more specialised elimination techniques.A stumbling block for the use of simultaneous equations is that there is often a big leap from a problem’s specification to the construction of the system of simultaneous equations; the justification for the leap almost invariably involves a post hoc verification of the construction. Thus, whereas methods for solving the equations, once constructed, are well-known and understood, the process of constructing the equations is not.In this talk, we present a general theorem which expresses when the solution to a problem can be expressed as solving a system of simultaneous equations. The theorem exploits the theory of Galois connections and fixed-point calculus, which we briefly introduce. We give several examples of the theorem together with several non-examples (that is, examples where the theorem is not directly applicable). The non-examples serve two functions. They highlight the gap between specification and simultaneous equations – we show in several cases how a small change in the specification leads to a breakdown in the solution by simultaneous equations – and they inform the development of a methodology for the construction of the equations.Application of the technique in the case of the more challenging problems depends crucially on finding a suitable generalisation of the original problem. For example, the problem of finding the edit distance between a word and a context-free language is solved by computing the edit distance between each segment of the given word and the language generated by each nonterminal in the given grammar.A focus of the talk is the use of Conway’s factor theory [Con71] in generalising a class of problems we call “bound” problems. Since its publication in 1971, Conway’s work has been largely ignored, but its relevance to program analysis has recently been observed by Oege de Moor and his colleagues [MDLS02,SdML04]. We show how factor theory underpins De Moor’s work as well as the well-known Knuth-Morris-Pratt pattern matching algorithm [KMP77]. We also speculate on how further study of factor theory might have relevance to a broader class of problems.This talk is based on [Bac04], where further details can be found.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.