Abstract
The linear logic exponentials !,? are not canonical: one can add to linear logic other such operators, say !l,?1, which may or may not allow contraction and weakening, and where l is from some pre-ordered set of labels. We shall call these additional operators subexponentials and use them to assign locations to multisets of formulas within a linear logic programming setting. Treating locations as subexponentials greatly increases the algorithmic expressiveness of logic. To illustrate this new expressiveness, we show that focused proof search can be precisely linked to a simple algorithmic specification language that contains while-loops, conditionals, and insertion into and deletion from multisets. We also give some general conditions for when a focused proof step can be executed in constant time. In addition, we propose a new logical connective that allows for the creation of new subexponentials, thereby further augmenting the algorithmic expressiveness of logic.
Highlights
Computation in the proof-search paradigm (a.k.a. logic programming) can be characterized as the process of searching for a cut-free sequent proof
After motivating our particular interest in specifying algorithms using proof search in linear logic we introduce subexponentials in Section 3 and their proof system in Section 4 and in Section 5, we illustrate its algorithmic content with a simple example
Before we introduce the focused system for SELL, we classify as positive the formulas whose main connective is either ⊗, ⊕, ∃, the subexponential bang, the unit 1 and positive literals
Summary
Computation in the proof-search paradigm (a.k.a. logic programming) can be characterized as the process of searching for a cut-free sequent proof. Subexponentials can be used to “locate” data and the promotion rule can be used to test selected locations for emptiness These subexponentials provide linear logic specifications with enough checks on data to allow for a range of algorithms to be emulated exactly via (focused) proof search. We shall illustrate this claim by specifying a simple programming language, called BAG, containing loop instructions, conditionals, and operations that insert into and delete from a multiset, which is powerful enough to specify algorithms such as Dijkstra’s algorithm for finding the shortest distances in a positively weighted graph.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have