Additive Legitimate Algorithms
Additive Ordered Algorithms , Robert J. Simmons and Frank Pfenning, 2008.
Bottom-up logic programming can be used to declaratively narrow down many algorithms in a compact and instinctive way, and McAllester and Ganzinger have pictured that it is potential to fix a cost semantics that enables reasoning about the operating time of algorithms saved as inference rules. Old work with the programming language Lollimon attests the expressive power of logic programming with one-dimensional logic in lining algorithms that have imperative elements or that must repeatedly make up mutually sole choices. In this paper, we describe a bottom-up logic programming language based on analog logic that is conformable to effective execution and key out a novel cost semantics that can be used for complexity analysis of algorithms expressed in analog logic.
In my last post, I linked to a paper by Ganzinger and McAllester about particularising algorithms as logic programs, and a) looked up to how concise and instinctive the programs were, and b) was distressing that the logic programs applyed some “non-consistent” operations, such as deletion.
Therefore, what does it mean for an operation to be “non-consistent”, and why is it a tough thing? Approximately talking, you can have in mind the analogy: non-ordered operations are to logic programs what unclean operations are to running programs — they are features which break-dance some parts of the equational theory of the language. Today, the Curry-Howard correspondence for operable programs alleges that types are propositions, and programs are proofs. It wricks out that a dissimilar version of this correspondence holds for logic programs: in logic programming, a set of propositions is a program, and the execution of a program corresponds to a process of proof search — you catch a success when execution discovers a proof of the goal.
When you have nonlogical operations in your logic programming language, you’ve brought out operators that don'’t correspond to valid rules of inference, so even if your logic program succeeds, the success might not correspond to a real proof. Deletion of facts from a database is a full example of a nonlogical operation. Steady intuitionistic and Hellenic logic is monotone: deduction from premises can only when memorise newfangled facts, it can ne’er confute things you already recognised to be reliable. Since deletion takes facts from the set of things you cognize, it can’t have a consistent interpretation in Graeco-Roman/intuitionistic logic.
Even so, it turns over out that not all logics are monotone, and in this paper Simmons and Pfenning render that if you hold the language of propositions to be a fragment of one-dimensional logic, and so all of the operations that Ganzinger and McAllester use in reality do have a skillful coherent interpretation.
