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

Read more

Summary

Introduction

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.

Why use logic to specify algorithms?
Linear Logic and Subexponentials
Focused proofs with Subexponentials
Example: a minimal element of a multiset
Deploying SELLF
Adding Definitions
Including arithmetic
Representing Data Structures
Complements of locations
Creation of new locations
Specifying Algorithms
Examples
Complexity Analysis
10. Related Work
11. Conclusions
Full Text
Published version (Free)

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