Results 1 
5 of
5
Applications of Linear Logic to Computation: An Overview
, 1993
"... This paper is an overview of existing applications of Linear Logic (LL) to issues of computation. After a substantial introduction to LL, it discusses the implications of LL to functional programming, logic programming, concurrent and objectoriented programming and some other applications of LL, li ..."
Abstract

Cited by 41 (3 self)
 Add to MetaCart
This paper is an overview of existing applications of Linear Logic (LL) to issues of computation. After a substantial introduction to LL, it discusses the implications of LL to functional programming, logic programming, concurrent and objectoriented programming and some other applications of LL, like semantics of negation in LP, nonmonotonic issues in AI planning, etc. Although the overview covers pretty much the stateoftheart in this area, by necessity many of the works are only mentioned and referenced, but not discussed in any considerable detail. The paper does not presuppose any previous exposition to LL, and is addressed more to computer scientists (probably with a theoretical inclination) than to logicians. The paper contains over 140 references, of which some 80 are about applications of LL. 1 Linear Logic Linear Logic (LL) was introduced in 1987 by Girard [62]. From the very beginning it was recognized as relevant to issues of computation (especially concurrency and stat...
Acceptors as values: Functional programming in classical linear logic
, 1991
"... Girard’s linear logic has been previously applied to functional programming for performing statemanipulation and controlling storage reuse. These applications only use intuitionistic linear logic, the subset of linear logic that embeds intuitionistic logic. Full linear logic (called classical linea ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Girard’s linear logic has been previously applied to functional programming for performing statemanipulation and controlling storage reuse. These applications only use intuitionistic linear logic, the subset of linear logic that embeds intuitionistic logic. Full linear logic (called classical linear logic) is much richer than this subset. In this paper, we consider the application of classical linear logic to functional programming. The negative types of linear logic are interpreted as denoting acceptors. An acceptor is an entity which takes an input of some type and returns no output. Acceptors generalize continuations and also single assignment variables, as found in data flow languages and logic programming languages. The parallel disjunction operator allows such acceptors to be used in a nontrivial fashion. Finally, the “why not ” operator of linear logic gives rise to nondeterministic values. We define a typed functional language based on the these ideas and demonstrate its use via examples. The language has a reduction semantics that generalizes typed lambda calculus, and satisfies strong normalization and ChurchRosser properties.
A linear logic model of state (preliminar report). Eletronic manuscript (ftp), csc.uiuc.edu, directory /pub/reddy/papers
, 1992
"... We propose an abstract formal model of state manipulation in the framework of Girard’s linear logic. This work addresses twin issues: how to incorporate state manipulation in functional programming languages, and how to describe the semantics of higherorder imperative programming languages. In fact ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We propose an abstract formal model of state manipulation in the framework of Girard’s linear logic. This work addresses twin issues: how to incorporate state manipulation in functional programming languages, and how to describe the semantics of higherorder imperative programming languages. In fact, it appears that, given the right model of state, the difference between functional and imperative programming becomes rather thin. Our model of state is based on a new “modality ” type constructor for expressing “regenerative values ” (values that reproduce themselves each time they are used). Just as Girard’s “of course ” modality allows him to express static values and intuitionistic logic within the framework of linear logic, our regenerative modality allows us to express states and statedependent values within the same framework. We demonstrate the expressiveness of the model by showing that a higherorder Algollike language can be embedded into it. 1
General Terms
"... We propose a new way to reason about general recursive functional programs in the dependently typed programming language Agda, which is based on MartinLöf’s intuitionistic type theory. We show how to embed an external programming logic, Aczel’s Logical Theory of Constructions (LTC) inside Agda. To ..."
Abstract
 Add to MetaCart
We propose a new way to reason about general recursive functional programs in the dependently typed programming language Agda, which is based on MartinLöf’s intuitionistic type theory. We show how to embed an external programming logic, Aczel’s Logical Theory of Constructions (LTC) inside Agda. To this end we postulate the existence of a domain of untyped functional programs and the conversion rules for these programs. Furthermore, we represent the inductive notions in LTC (intuitionistic predicate logic and totality predicates) as inductive notions in Agda. To illustrate our approach we specify an LTCstyle logic for PCF, and show how to prove the termination and correctness of a general recursive algorithm for computing the greatest common divisor of two numbers. Categories and Subject Descriptors F.3.1 [Logics and meanings of programs]: Specifying and Verifying and Reasoning about Programs–Logics of programs; D.2.4 [Software Engineering]:
Security, Verification
"... We describe the formalization of a correctness proof for a conflict detection algorithm for firewalls in the Coq Proof Assistant. First, we give formal definitions in Coq of a firewall access rule and of an access request to a firewall. Formally, two rules are in conflict if there exists a request o ..."
Abstract
 Add to MetaCart
We describe the formalization of a correctness proof for a conflict detection algorithm for firewalls in the Coq Proof Assistant. First, we give formal definitions in Coq of a firewall access rule and of an access request to a firewall. Formally, two rules are in conflict if there exists a request on which one rule would allow access and the other would deny it. We express our algorithm in Coq, and prove that it finds all conflicts in a set of rules. We obtain an OCaml version of the algorithm by direct program extraction. The extracted program has successfully been applied to firewall specifications with over 200,000 rules.