EDBT 2026 Demo / reviewers in the wild / expert
Frank Pfenning
dblp:p/FPfenning
· DBLP profile ↗
132ranked-venue papers
27as first author
24since 2021 · last 2026
0000-0002-8279-5817ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Theory of computation · 74 · 21 first-author · 10 since 2021Software engineering, systems software and programming languages · 54 · 9 first-author · 14 since 2021Artificial intelligence and machine learning · 24 · 7 first-author · 1 since 2021Security and privacy · 7 · 1 since 2021Systems, architecture and hardware · 1Graphics, computer vision, multimedia, augmented reality and games · 1Applied, interdisciplinary, general and emerging computing · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Ordered Adjoint LogicabstractAbstract Ordered logics and type systems have been used in a variety of applications including computational linguistics, memory allocation, stream processing, logical frameworks, parametricity, and enforcing security protocols. In most formulations, ordered types are also linear, requiring each resource to be used exactly once. Prior work by Kanovich et al. has investigated calculi that relax this constraint through subexponentials within a linear ordered logic. We generalize their work by using adjoint modalities to combine logics with varying fine-grained structural properties, including weakening, left contraction, right contraction, left mobility, and right mobility. We show that the resulting sequent calculus admits cut elimination. We further provide a natural deduction formulation in which structural rules are implicit, and show that proof checking for this system is decidable. This makes it a suitable foundation for an expressive adjoint programming language or logical framework. Sophia Roshal, Frank Pfenning |
IJCAR (2) | 2 |
| 2026 | Security Reasoning via Substructural Dependency TrackingabstractSubstructural type systems provide the ability to speak about resources . By enforcing usage restrictions on inputs to computations they allow programmers to reify limited system units–such as memory–in types. We demonstrate a new form of resource reasoning founded on constraining outputs and explore its utility for practical programming. In particular, we identify a number of disparate programming features explored largely in the security literature as various fragments of our unified framework. These encompass capabilities, quantitative information leakage, sandboxing in the style of the Linux seccomp interface, authorization protocols, and more. We furthermore explore its connection to conventional input-based resource reasoning, casting it as an internal treatment of the constructive Kripke semantics of substructural logics. We verify the capability, quantity, and protocol safety of our system through a single logical relations argument. In doing so, we take the first steps towards obtaining the ultimate multitool for security reasoning. Hemant Gouni, Frank Pfenning, Jonathan Aldrich |
Proc. ACM Program. Lang. | 2 |
| 2026 | Grits: A message-passing programming language based on the semi-axiomatic sequent calculus
Adrian Francalanza, Gerard Tabone, Frank Pfenning |
Sci. Comput. Program. | 3 |
| 2025 | Substructural ParametricityabstractOrdered, linear, and other substructural type systems allow us to expose deep properties of programs at the syntactic level of types. In this paper, we develop a family of unary logical relations that allow us to prove consequences of parametricity for a range of substructural type systems. A key idea is to parameterize the relation by an algebra, which we exemplify with a monoid and commutative monoid to interpret ordered and linear type systems, respectively. We prove the fundamental theorem of logical relations and apply it to deduce extensional properties of inhabitants of certain types. Examples include demonstrating that the ordered types for list append and reversal are inhabited by exactly one function, as are types of some tree traversals. Similarly, the linear type of the identity function on lists is inhabited only by permutations of the input. Our most advanced example shows that the ordered type of the list fold function is inhabited only by the fold function. C. B. Aberlé, Karl Crary, Chris Martens 0001, Frank Pfenning |
FSCD | 4 |
| 2025 | Structural Information Flow: A Fresh Look at Types for Non-interferenceabstractInformation flow control is a long-studied approach for establishing non-interference properties of programs. For instance, it can be used to prove that a secret does not interfere with some computation, thereby establishing that the former does not leak through the latter. Despite their potential as a holy grail for security reasoning and their maturity within the literature, information flow type systems have seen limited adoption. In practice, information flow specifications tend to be excessively complex and can easily spiral out of control even for simple programs. Additionally, while non-interference is well-behaved in an idealized setting where information leakage never occurs, most practical programs must violate non-interference in order to fulfill their purpose. Useful information flow type systems in prior work must therefore contend with a definition of non-interference extended with declassification, which often offers weaker modular reasoning properties. We introduce structural information flow, which both illuminates and addresses these issues from a logical viewpoint. In particular, we draw on established insights from the modal logic literature to argue that information flow reasoning arises from hybrid logic, rather than conventional modal logic as previously imagined. We show with a range of examples that structural information flow specifications are straightforward to write and easy to visually parse. Uniquely in the structural setting, we demonstrate that declassification emerges not as an aberration to non-interference, but as a natural and unavoidable consequence of sufficiently general machinery for information flow. This flavor of declassification features excellent local reasoning and enables our approach to account for real-world information flow needs without compromising its theoretical elegance. Finally, we establish non-interference via a logical relations approach, showing off its simplicity in the face of the expressive power captured. Hemant Gouni, Frank Pfenning, Jonathan Aldrich |
Proc. ACM Program. Lang. | 2 |
| 2025 | A Saturation-Based Unification Algorithm for Higher-Order Rational PatternsabstractHigher-order unification has been shown to be undecidable. Miller discovered the pattern fragment and subsequently showed that higher-order pattern unification is decidable and has most general unifiers. We extend the algorithm to higher-order rational terms (a.k.a. regular Böhm trees, a form of cyclic \(\lambda\) -terms) and show that pattern unification on higher-order rational terms is decidable and has most general unifiers. We prove the soundness and completeness of the algorithm. Zhibo Chen 0009, Frank Pfenning |
ACM Trans. Comput. Log. | 2 |
| 2024 | Implementing a Message-Passing Interpretation of the Semi-Axiomatic Sequent Calculus (Sax)
Adrian Francalanza, Gerard Tabone, Frank Pfenning |
COORDINATION | 3 |
| 2024 | Adjoint Natural DeductionabstractAdjoint logic is a general approach to combining multiple logics with different structural properties, including linear, affine, strict, and (ordinary) intuitionistic logics, where each proposition has an intrinsic mode of truth. It has been defined in the form of a sequent calculus because the central concept of independence is most clearly understood in this form, and because it permits a proof of cut elimination following standard techniques. In this paper we present a natural deduction formulation of adjoint logic and show how it is related to the sequent calculus. As a consequence, every provable proposition has a verification (sometimes called a long normal form). We also give a computational interpretation of adjoint logic in the form of a functional language and prove properties of computations that derive from the structure of modes, including freedom from garbage (for modes without weakening and contraction), strictness (for modes disallowing weakening), and erasure (based on a preorder between modes). Finally, we present a surprisingly subtle algorithm for type checking. Junyoung Jang 0001, Sophia Roshal, Frank Pfenning, Brigitte Pientka |
FSCD | 3 |
| 2024 | Parametric Subtyping for Structural Parametric PolymorphismabstractWe study the interaction of structural subtyping with parametric polymorphism and recursively defined type constructors. Although structural subtyping is undecidable in this setting, we describe a notion of parametricity for type constructors and then exploit it to define parametric subtyping , a conceptually simple, decidable, and expressive fragment of structural subtyping that strictly generalizes rigid subtyping . We present and prove correct an effective saturation-based decision procedure for parametric subtyping, demonstrating its applicability using a variety of examples. We also provide an implementation of this decision procedure as an artifact. Henry DeYoung, Andreia Mordido, Frank Pfenning, Ankush Das |
Proc. ACM Program. Lang. | 3 |
| 2023 | Relating Message Passing and Shared Memory, Proof-Theoretically
Frank Pfenning, Klaas Pruiksma |
COORDINATION | 1 |
| 2023 | A Logical Framework with Higher-Order Rational (Circular) TermsabstractAbstract Logical frameworks provide natural and direct ways of specifying and reasoning within deductive systems. The logical framework LF and subsequent developments focus on finitary proof systems, making the formalization of circular proof systems in such logical frameworks a cumbersome and awkward task. To address this issue, we propose $$ \text {CoLF} $$ CoLF , a conservative extension of LF with higher-order rational terms and mixed inductive and coinductive definitions. In this framework, two terms are equal if they unfold to the same infinite regular Böhm tree. Both term equality and type checking are decidable in $$ \text {CoLF} $$ CoLF . We illustrate the elegance and expressive power of the framework with several small case studies. Zhibo Chen 0009, Frank Pfenning |
FoSSaCS | 2 |
| 2023 | Intuitionistic Metric Temporal LogicabstractWe develop Intuitionistic Metric Temporal Logic (IMTL) that extends prior work on intuitionistic temporal logics in two ways: (1) it generalizes discrete time to dense time with intervals so it can, for example, express the duration of signals, and (2) every proof corresponds to a temporal computation. Luiz De Sá, Bernardo Toninho, Frank Pfenning |
PPDP | 3 |
| 2022 | Polarized SubtypingabstractAbstract Polarization of types in call-by-push-value naturally leads to the separation of inductively defined observable values (classified by positive types), and coinductively defined computations (classified by negative types), with adjoint modalities mediating between them. Taking this separation as a starting point, we develop a semantic characterization of typing with step indexing to capture observation depth of recursive computations. This semantics justifies a rich set of subtyping rules for an equirecursive variant of call-by-push-value, including variant and lazy records. We further present a bidirectional syntactic typing system for both values and computations that elegantly and pragmatically circumvents difficulties of type inference in the presence of width and depth subtyping for variant and lazy records. We demonstrate the flexibility of our system by systematically deriving related systems of subtyping for (a) isorecursive types, (b) call-by-name, and (c) call-by-value, all using a structural rather than a nominal interpretation of types. Zeeshan Lakhani, Ankush Das, Henry DeYoung, Andreia Mordido, Frank Pfenning |
ESOP | 5 |
| 2022 | Type-Based Termination for FuturesabstractIn sequential functional languages, sized types enable termination checking of programs with complex patterns of recursion in the presence of mixed inductive-coinductive types. In this paper, we adapt sized types and their metatheory to the concurrent setting. We extend the semi-axiomatic sequent calculus, a subsuming paradigm for futures-based functional concurrency, and its underlying operational semantics with recursion and arithmetic refinements. The latter enables a new and highly general sized type scheme we call sized type refinements. As a widely applicable technical device, we type recursive programs with infinitely deep typing derivations that unfold all recursive calls. Then, we observe that certain such derivations can be made infinitely wide but finitely deep. The resulting trees serve as the induction target of our termination result, which we develop via a novel logical relations argument. Siva Somayyajula, Frank Pfenning |
FSCD | 2 |
| 2022 | Back to futuresabstractAbstract Common approaches to concurrent programming begin with languages whose semantics are naturally sequential and add new constructs that provide limited access to concurrency, as exemplified by futures . This approach has been quite successful, but often does not provide a satisfactory theoretical backing for the concurrency constructs, and it can be difficult to give a good semantics that allows a programmer to use more than one of these constructs at a time. We take a different approach, starting with a concurrent language based on a Curry–Howard interpretation of adjoint logic, to which we add three atomic primitives that allow us to encode sequential composition and various forms of synchronization. The resulting language is highly expressive, allowing us to encode futures, fork/join parallelism, and monadic concurrency in the same framework. Notably, since our language is based on adjoint logic, we are able to give a formal account of linear futures , which have been used in complexity analysis by Blelloch and Reid-Miller. The uniformity of this approach means that we can similarly work with many of the other concurrency primitives in a linear fashion, and that we can mix several of these forms of concurrency in the same program to serve different purposes. Klaas Pruiksma, Frank Pfenning |
J. Funct. Program. | 2 |
| 2022 | Session-typed concurrent contracts
Hannah Gommerstadt, Limin Jia 0001, Frank Pfenning |
J. Log. Algebraic Methods Program. | 3 |
| 2022 | Rast: A Language for Resource-Aware Session TypesabstractTraditional session types prescribe bidirectional communication protocols for concurrent computations, where well-typed programs are guaranteed to adhere to the protocols. However, simple session types cannot capture properties beyond the basic type of the exchanged messages. In response, recent work has extended session types with refinements from linear arithmetic, capturing intrinsic attributes of processes and data. These refinements then play a central role in describing sequential and parallel complexity bounds on session-typed programs. The Rast language provides an open-source implementation of session-typed concurrent programs extended with arithmetic refinements as well as ergometric and temporal types to capture work and span of program execution. To further support generic programming, Rast also enhances arithmetically refined session types with recently developed nested parametric polymorphism. Type checking relies on Cooper's algorithm for quantifier elimination in Presburger arithmetic with a few significant optimizations, and a heuristic extension to nonlinear constraints. Rast furthermore includes a reconstruction engine so that most program constructs pertaining the layers of refinements and resources are inserted automatically. We provide a variety of examples to demonstrate the expressivity of the language. Ankush Das, Frank Pfenning |
Log. Methods Comput. Sci. | 2 |
| 2022 | Circular Proofs as Session-Typed Processes: A Local Validity ConditionabstractProof theory provides a foundation for studying and reasoning about programming languages, most directly based on the well-known Curry-Howard isomorphism between intuitionistic logic and the typed lambda-calculus. More recently, a correspondence between intuitionistic linear logic and the session-typed pi-calculus has been discovered. In this paper, we establish an extension of the latter correspondence for a fragment of substructural logic with least and greatest fixed points. We describe the computational interpretation of the resulting infinitary proof system as session-typed processes, and provide an effectively decidable local criterion to recognize mutually recursive processes corresponding to valid circular proofs as introduced by Fortier and Santocanale. We show that our algorithm imposes a stricter requirement than Fortier and Santocanale's guard condition, but is local and compositional and therefore more suitable as the basis for a programming language. Farzaneh Derakhshan, Frank Pfenning |
Log. Methods Comput. Sci. | 2 |
| 2022 | Nested Session TypesabstractSession types statically describe communication protocols between concurrent message-passing processes. Unfortunately, parametric polymorphism even in its restricted prenex form is not fully understood in the context of session types. In this article, we present the metatheory of session types extended with prenex polymorphism and, as a result, nested recursive datatypes. Remarkably, we prove that type equality is decidable by exhibiting a reduction to trace equivalence of deterministic first-order grammars. Recognizing the high theoretical complexity of the latter, we also propose a novel type equality algorithm and prove its soundness. We observe that the algorithm is surprisingly efficient and, despite its incompleteness, sufficient for all our examples. We have implemented our ideas by extending the Rast programming language with nested session types. We conclude with several examples illustrating the expressivity of our enhanced type system. Ankush Das, Henry DeYoung, Andreia Mordido, Frank Pfenning |
ACM Trans. Program. Lang. Syst. | 4 |
| 2021 | Manifestly Phased Communication via Shared Session Types
Chuta Sano, Stephanie Balzer, Frank Pfenning |
COORDINATION | 3 |
| 2021 | Resource-Aware Session Types for Digital ContractsabstractProgramming digital contracts comes with unique challenges, which include (i) expressing and enforcing protocols of interaction, (ii) controlling resource usage, and (iii) preventing the duplication or deletion of a contract's assets. This article presents the design and type-theoretic foundation of Nomos, a programming language for digital contracts that addresses these challenges. To express and enforce protocols, Nomos is based on shared binary session types. To control resource usage, Nomos employs automatic amortized resource analysis. To prevent the duplication or deletion of assets, Nomos uses a linear type system. A monad integrates the effectful session-typed language with a general-purpose functional language. Nomos' prototype implementation features linear-time type checking and efficient type reconstruction that includes automatic inference of resource bounds via off-the-shelf linear optimization. The effectiveness of the language is evaluated with case studies on implementing common smart contracts such as auctions, elections, and currencies. Nomos is completely formalized, including the type system, a cost semantics, and a transactional semantics to deploy Nomos contracts on a blockchain. The type soundness proof ensures that protocols are followed at run-time and that types establish sound upper bounds on the resource consumption, ruling out re-entrancy and out-of-gas vulnerabilities. Ankush Das, Stephanie Balzer, Jan Hoffmann 0002, Frank Pfenning, Ishani Santurkar |
CSF | 4 |
| 2021 | Nested Session TypesabstractAbstract Session types statically describe communication protocols between concurrent message-passing processes. Unfortunately, parametric polymorphism even in its restricted prenex form is not fully understood in the context of session types. In this paper, we present the metatheory of session types extended with prenex polymorphism and, as a result, nested recursive datatypes. Remarkably, we prove that type equality is decidable by exhibiting a reduction to trace equivalence of deterministic first-order grammars. Recognizing the high theoretical complexity of the latter, we also propose a novel type equality algorithm and prove its soundness. We observe that the algorithm is surprisingly efficient and, despite its incompleteness, sufficient for all our examples. We have implemented our ideas by extending the Rast programming language with nested session types. We conclude with several examples illustrating the expressivity of our enhanced type system. Ankush Das, Henry DeYoung, Andreia Mordido, Frank Pfenning |
ESOP | 4 |
| 2021 | A Decade of Dependent Session Typesabstractinvited-talk Share on A Decade of Dependent Session Types Authors: Bernardo Toninho NOVA School of Science and Technology and NOVA-LINCS, Portugal NOVA School of Science and Technology and NOVA-LINCS, PortugalView Profile , Luís Caires NOVA School of Science and Technology and NOVA-LINCS, Portugal NOVA School of Science and Technology and NOVA-LINCS, PortugalView Profile , Frank Pfenning Carnegie Mellon University, USA Carnegie Mellon University, USAView Profile Authors Info & Claims PPDP 2021: 23rd International Symposium on Principles and Practice of Declarative ProgrammingSeptember 2021 Article No.: 3Pages 1–3https://doi.org/10.1145/3479394.3479398Online:07 October 2021Publication History 0citation24DownloadsMetricsTotal Citations0Total Downloads24Last 12 Months24Last 6 weeks8 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteGet Access Bernardo Toninho, Luís Caires, Frank Pfenning |
PPDP | 3 |
| 2021 | A message-passing interpretation of adjoint logicabstractWe present a system of session types based on adjoint logic which generalizes standard binary session types. Our system allows us to uniformly capture several new behaviors in the space of asynchronous message-passing communication, including multicast, where a process sends a single message to multiple clients, replicable services, which have multiple clients and replicate themselves on-demand to handle requests from those clients, and cancellation, where a process discards a channel without communicating along it. We provide session fidelity and deadlock-freedom results for this system, from which we then derive a logically justified form of garbage collection. Klaas Pruiksma, Frank Pfenning |
J. Log. Algebraic Methods Program. | 2 |
| 2020 | Session Types with Arithmetic RefinementsabstractSession types statically prescribe bidirectional communication protocols for message-passing processes. However, simple session types cannot specify properties beyond the type of exchanged messages. In this paper we extend the type system by using index refinements from linear arithmetic capturing intrinsic attributes of data structures and algorithms. We show that, despite the decidability of Presburger arithmetic, type equality and therefore also subtyping and type checking are now undecidable, which stands in contrast to analogous dependent refinement type systems from functional languages. We also present a practical, but incomplete algorithm for type equality, which we have used in our implementation of Rast, a concurrent session-typed language with arithmetic index refinements as well as ergometric and temporal types. Moreover, if necessary, the programmer can propose additional type bisimulations that are smoothly integrated into the type equality algorithm. Ankush Das, Frank Pfenning |
CONCUR | 2 |
| 2020 | Rast: Resource-Aware Session Types with Arithmetic Refinements (System Description)abstractTraditional session types prescribe bidirectional communication protocols for concurrent computations, where well-typed programs are guaranteed to adhere to the protocols. Recent work has extended session types with refinements from linear arithmetic, capturing intrinsic properties of processes and data. These refinements then play a central role in describing sequential and parallel complexity bounds on session-typed programs. The Rast language and system provide an open-source implementation of session-typed concurrent programs extended with arithmetic refinements as well as ergometric and temporal types to capture work and span of program execution. Type checking relies on Cooper’s algorithm for quantifier elimination in Presburger arithmetic with a few significant optimizations, and a heuristic extension to nonlinear constraints. Rast furthermore includes a reconstruction engine so that most program constructs pertaining the layers of refinements and resources are inserted automatically. We provide a variety of examples to demonstrate the expressivity of the language. Ankush Das, Frank Pfenning |
FSCD | 2 |
| 2020 | Semi-Axiomatic Sequent CalculusabstractWe present the semi-axiomatic sequent calculus (SAX) that blends features of Gentzen’s sequent calculus with an axiomatic formulation of intuitionistic logic. We develop and prove a suitable analogue to cut elimination and then show that a natural computational interpretation of SAX provides a simple form of shared memory concurrency. Henry DeYoung, Frank Pfenning, Klaas Pruiksma |
FSCD | 2 |
| 2020 | Verified Linear Session-Typed Concurrent ProgrammingabstractWe present a system of linear session types that integrates several features aimed at verification of different properties of concurrent programs, specifically types indexed with arithmetic expressions, linear constraints and quantification. We prove the standard type safety properties of session fidelity and deadlock freedom. In order to control the verbosity of programs we introduce implicit syntax and an algorithm for reconstruction, which is complete under some mild assumptions on the structure of types. We then illustrate the expressive power of our language (called Rast) with a variety of examples, including normalization for the linear λ-calculus, balanced ternary arithmetic, binary counters and tries. Ankush Das, Frank Pfenning |
PPDP | 2 |
| 2019 | Domain-Aware Session TypesabstractWe develop a generalization of existing Curry-Howard interpretations of (binary) session types by relying on an extension of linear logic with features from hybrid logic, in particular modal worlds that indicate domains. These worlds govern domain migration, subject to a parametric accessibility relation familiar from the Kripke semantics of modal logic. The result is an expressive new typed process framework for domain-aware, message-passing concurrency. Its logical foundations ensure that well-typed processes enjoy session fidelity, global progress, and termination. Typing also ensures that processes only communicate with accessible domains and so respect the accessibility relation. Remarkably, our domain-aware framework can specify scenarios in which domain information is available only at runtime; flexible accessibility relations can be cleanly defined and statically enforced. As a specific application, we introduce domain-aware multiparty session types, in which global protocols can express arbitrarily nested sub-protocols via domain migration. We develop a precise analysis of these multiparty protocols by reduction to our binary domain-aware framework: complex domain-aware protocols can be reasoned about at the right level of abstraction, ensuring also the principled transfer of key correctness properties from the binary to the multiparty setting. Luís Caires, Jorge A. Pérez 0001, Frank Pfenning, Bernardo Toninho |
CONCUR | 3 |
| 2019 | Manifest Deadlock-Freedom for Shared Session TypesabstractShared session types generalize the Curry-Howard correspondence between intuitionistic linear logic and the session-typed $$\pi $$ -calculus with adjoint modalities that mediate between linear and shared session types, giving rise to a programming model where shared channels must be used according to a locking discipline of acquire-release. While this generalization greatly increases the range of programs that can be written, the gain in expressiveness comes at the cost of deadlock-freedom, a property which holds for many linear session type systems. In this paper, we develop a type system for logically-shared sessions in which types capture not only the interactive behavior of processes but also constrain the order of resources (i.e., shared processes) they may acquire. This type-level information is then used to rule out cyclic dependencies among acquires and synchronization points, resulting in a system that ensures deadlock-free communication for well-typed processes in the presence of shared sessions, higher-order channel passing, and recursive processes. We illustrate our approach on a series of examples, showing that it rules out deadlocks in circular networks of both shared and linear recursive processes, while still being permissive enough to type concurrent implementations of shared imperative data structures as processes. Stephanie Balzer, Bernardo Toninho, Frank Pfenning |
ESOP | 3 |
| 2018 | A Universal Session Type for Untyped Asynchronous CommunicationabstractIn the simply-typed lambda-calculus we can recover the full range of expressiveness of the untyped lambda-calculus solely by adding a single recursive type U = U -> U. In contrast, in the session-typed pi-calculus, recursion alone is insufficient to recover the untyped pi-calculus, primarily due to linearity: each channel just has two unique endpoints. In this paper, we show that shared channels with a corresponding sharing semantics (based on the language SILL_S developed in prior work) are enough to embed the untyped asynchronous pi-calculus via a universal shared session type U_S. We show that our encoding of the asynchronous pi-calculus satisfies operational correspondence and preserves observable actions (i.e., processes are weakly bisimilar to their encoding). Moreover, we clarify the expressiveness of SILL_S by developing an operationally correct encoding of SILL_S in the asynchronous pi-calculus. Stephanie Balzer, Frank Pfenning, Bernardo Toninho |
CONCUR | 2 |
| 2018 | Session-Typed Concurrent ContractsabstractIn sequential languages, dynamic contracts are usually expressed as boolean functions without externally observable effects, written within the language. We propose an analogous notion of concurrent contracts for languages with session-typed message-passing concurrency. Concurrent contracts are partial identity processes that monitor the bidirectional communication along channels and raise an alarm if a contract is violated. Concurrent contracts are session-typed in the usual way and must also satisfy a transparency requirement, which guarantees that terminating compliant programs with and without the contracts are observationally equivalent. We illustrate concurrent contracts with several examples. We also show how to generate contracts from a refinement session-type system and show that the resulting monitors are redundant for programs that are well-typed. Hannah Gommerstadt, Limin Jia 0001, Frank Pfenning |
ESOP | 3 |
| 2018 | Work Analysis with Resource-Aware Session TypesabstractWhile there exist several successful techniques for supporting programmers in deriving static resource bounds for sequential code, analyzing the resource usage of message-passing concurrent processes poses additional challenges. To meet these challenges, this article presents an analysis for statically deriving worst-case bounds on the total work performed by message-passing processes. To decompose interacting processes into components that can be analyzed in isolation, the analysis is based on novel resource-aware session types, which describe protocols and resource contracts for inter-process communication. A key innovation is that both messages and processes carry potential to share and amortize cost while communicating. To symbolically express resource usage in a setting without static data structures and intrinsic sizes, resource contracts describe bounds that are functions of interactions between processes. Resource-aware session types combine standard binary session types and type-based amortized resource analysis in a linear type system. This type system is formulated for a core session-type calculus of the language SILL and proved sound with respect to a multiset-based operational cost semantics that tracks the total number of messages that are exchanged in a system. The effectiveness of the analysis is demonstrated by analyzing standard examples from amortized analysis and the literature on session types and by a comparative performance analysis of different concurrent programs implementing the same interface. Ankush Das, Jan Hoffmann 0002, Frank Pfenning |
LICS | 3 |
| 2018 | Parallel complexity analysis with temporal session typesabstractWe study the problem of parametric parallel complexity analysis of concurrent, message-passing programs. To make the analysis local and compositional, it is based on a conservative extension of binary session types, which structure the type and direction of communication between processes and stand in a Curry-Howard correspondence with intuitionistic linear logic. The main innovation is to enrich session types with the temporal modalities next (◯ A ), always (□ A ), and eventually (◇ A ), to additionally prescribe the timing of the exchanged messages in a way that is precise yet flexible. The resulting temporal session types uniformly express properties such as the message rate of a stream, the latency of a pipeline, the response time of a concurrent queue, or the span of a fork/join parallel program. The analysis is parametric in the cost model and the presentation focuses on communication cost as a concrete example. The soundness of the analysis is established by proofs of progress and type preservation using a timed multiset rewriting semantics. Representative examples illustrate the scope and usability of the approach. Ankush Das, Jan Hoffmann 0002, Frank Pfenning |
Proc. ACM Program. Lang. | 3 |
| 2017 | Manifest sharing with session typesabstractSession-typed languages building on the Curry-Howard isomorphism between linear logic and session-typed communication guarantee session fidelity and deadlock freedom. Unfortunately, these strong guarantees exclude many naturally occurring programming patterns pertaining to shared resources. In this paper, we introduce sharing into a session-typed language where types are stratified into linear and shared layers with modal operators connecting the layers. The resulting language retains session fidelity but not the absence of deadlocks, which can arise from contention for shared processes. We illustrate our language on various examples, such as the dining philosophers problem, and provide a translation of the untyped asynchronous π-calculus into our language. Stephanie Balzer, Frank Pfenning |
Proc. ACM Program. Lang. | 2 |
| 2016 | Substructural Proofs as Automata
Henry DeYoung, Frank Pfenning |
APLAS | 2 |
| 2016 | Monitors and blame assignment for higher-order session typesabstractSession types provide a means to prescribe the communication behavior between concurrent message-passing processes. However, in a distributed setting, some processes may be written in languages that do not support static typing of sessions or may be compromised by a malicious intruder, violating invariants of the session types. In such a setting, dynamically monitoring communication between processes becomes a necessity for identifying undesirable actions. In this paper, we show how to dynamically monitor communication to enforce adherence to session types in a higher-order setting. We present a system of blame assignment in the case when the monitor detects an undesirable action and an alarm is raised. We prove that dynamic monitoring does not change system behavior for welltyped processes, and that one of an indicated set of possible culprits must have been compromised in case of an alarm. Limin Jia 0001, Hannah Gommerstadt, Frank Pfenning |
POPL | 3 |
| 2016 | Linear logic propositions as session typesabstractThroughout the years, several typing disciplines for the π-calculus have been proposed. Arguably, the most widespread of these typing disciplines consists of session types. Session types describe the input/output behaviour of processes and traditionally provide strong guarantees about this behaviour (i.e. deadlock-freedom and fidelity). While these systems exploit a fundamental notion of linearity, the precise connection between linear logic and session types has not been well understood. This paper proposes a type system for the π-calculus that corresponds to a standard sequent calculus presentation of intuitionistic linear logic, interpreting linear propositions as session types and thus providing a purely logical account of all key features and properties of session types. We show the deep correspondence between linear logic and session types by exhibiting a tight operational correspondence between cut-elimination steps and process reductions. We also discuss an alternative presentation of linear session types based on classical linear logic, and compare our development with other more traditional session type systems. Luís Caires, Frank Pfenning, Bernardo Toninho |
Math. Struct. Comput. Sci. | 2 |
| 2015 | Polarized Substructural Session Types
Frank Pfenning, Dennis Griffith |
FoSSaCS | 1 |
| 2014 | Linear logical relations and observational equivalences for session-based concurrency
Jorge A. Pérez 0001, Luís Caires, Frank Pfenning, Bernardo Toninho |
Inf. Comput. | 3 |
| 2014 | A Linear Logic Programming Language for Concurrent Programming over Graph StructuresabstractAbstract We have designed a new logic programming language called LM (Linear Meld) for programming graph-based algorithms in a declarative fashion. Our language is based on linear logic, an expressive logical system where logical facts can be consumed. Because LM integrates both classical and linear logic, LM tends to be more expressive than other logic programming languages. LM programs are naturally concurrent because facts are partitioned by nodes of a graph data structure. Computation is performed at the node level while communication happens between connected nodes. In this paper, we present the syntax and operational semantics of our language and illustrate its use through a number of examples. Flávio Cruz, Ricardo Rocha 0001, Seth Copen Goldstein, Frank Pfenning |
Theory Pract. Log. Program. | 4 |
| 2014 | Programming with Higher-Order Logic, by Dale Miller and Gopalan Nadathur, Cambridge University Press, 2012, Hardcover, ISBN-10: 052187940X, xiv + 306 pp
Frank Pfenning |
Theory Pract. Log. Program. | 1 |
| 2013 | Behavioral Polymorphism and Parametricity in Session-Based Communication
Luís Caires, Jorge A. Pérez 0001, Frank Pfenning, Bernardo Toninho |
ESOP | 3 |
| 2013 | Higher-Order Processes, Functions, and Sessions: A Monadic Integration
Bernardo Toninho, Luís Caires, Frank Pfenning |
ESOP | 3 |
| 2012 | Linear Logical Relations for Session-Based Concurrency
Jorge A. Pérez 0001, Luís Caires, Frank Pfenning, Bernardo Toninho |
ESOP | 3 |
| 2012 | Functions as Session-Typed Processes
Bernardo Toninho, Luís Caires, Frank Pfenning |
FoSSaCS | 3 |
| 2012 | Stateful authorization logic - Proof theory and a case studyabstractWe present the design, proof theory and metatheory of a logic for representing and reasoning about authorization policies. A salient feature of the logic, BL, is its support for system state in the form of interpreted predicates, upon which authorization policies often rely. In addition, BL include s Abadi et al.'s “says” connective and explicit time. BL is illustrated through a case study of policies for sharing sensitive information created in the US intelligence community. We discuss design choices in the interaction between state and other features of BL and validate BL's proof theory by proving standard metatheoretic properties like admissibility of cut. Deepak Garg 0001, Frank Pfenning |
J. Comput. Secur. | 2 |
| 2011 | Proof-Carrying Code in a Session-Typed Process Calculus
Frank Pfenning, Luís Caires, Bernardo Toninho |
CPP | 1 |
| 2011 | Dependent session types via intuitionistic linear type theoryabstractWe develop an interpretation of linear type theory as dependent session types for a term passing extension of the pi-calculus. The type system allows us to express rich constraints on sessions, such as interface contracts and proof-carrying certification, which go beyond existing session type systems, and are here justified on purely logical grounds. We can further refine our interpretation using proof irrelevance to eliminate communication overhead for proofs between trusted parties. Our technical results include type preservation and global progress, which in our setting naturally imply compliance to all properties declared in interface contracts expressed by dependent types. Bernardo Toninho, Luís Caires, Frank Pfenning |
PPDP | 3 |
| 2010 | Session Types as Intuitionistic Linear Propositions
Luís Caires, Frank Pfenning |
CONCUR | 2 |
| 2010 | A Proof-Carrying File SystemabstractWe present the design and implementation of PCFS, a file system that adapts proof-carrying authorization to provide direct, rigorous, and efficient enforcement of dynamic access policies. The keystones of PCFS are a new authorization logic BL that supports policies whose consequences may change with both time and system state, and a rigorous enforcement mechanism that combines proof verification with conditional capabilities. We prove that our enforcement using capabilities is correct, and evaluate our design through performance measurements and a case study. Deepak Garg 0001, Frank Pfenning |
IEEE Symposium on Security and Privacy | 2 |
| 2009 | Efficient Intuitionistic Theorem Proving with the Polarized Inverse Method
Sean McLaughlin, Frank Pfenning |
CADE | 2 |
| 2009 | Substructural Operational Semantics as Ordered Logic ProgrammingabstractWe describe a substructural logic with ordered, linear, and persistent propositions and then endow a fragment with a committed choice forward-chaining operational interpretation. Exploiting higher-order terms in this metalanguage, we specify the operational semantics of a number of object language features, such as call-by-value, call-by-name, call-by-need, mutable store, parallelism, communication, exceptions and continuations. The specifications exhibit a high degree of uniformity and modularity that allows us to analyze the structural properties required for each feature in isolation. Our substructural framework thereby provides a new methodology for language specification that synthesizes structural operational semantics, abstract machines, and logical approaches. Frank Pfenning, Robert J. Simmons |
LICS | 1 |
| 2009 | Linear logical approximationsabstractThe abstract interpretation of programs relates the exact semantics of a programming language to an approximate semantics that can be effectively computed. We show that, by specifying operational semantics in a bottom-up, linear logic programming language -- a technique we call "substructural operational semantics" (SSOS) -- manifestly sound program approximations can be derived by simple and intuitive approximations of the logic program. As examples, we describe how to derive a simple alias analysis, 0CFA, and kCFA analysis from a substructural operational semantics of the relevant languages. Robert J. Simmons, Frank Pfenning |
PEPM | 2 |
| 2008 | An Authorization Logic With Explicit TimeabstractWe present an authorization logic that permits reasoning with explicit time. Following a proof-theoretic approach, we study the meta-theory of the logic, including cut elimination. We also demonstrate formal connections to proof-carrying authorization's existing approach for handling time and comment on the enforceability of our logic in the same framework. Finally, we illustrate the expressiveness of the logic through examples, including those with complex interactions between time, authorization, and mutable state. Henry DeYoung, Deepak Garg 0001, Frank Pfenning |
CSF | 3 |
| 2008 | Linear Logical Algorithms
Robert J. Simmons, Frank Pfenning |
ICALP (2) | 2 |
| 2008 | Imogen: Focusing the Polarized Inverse Method for Intuitionistic Propositional Logic
Sean McLaughlin, Frank Pfenning |
LPAR | 2 |
| 2008 | A Logical Characterization of Forward and Backward Chaining in the Inverse Method
Kaustuv Chaudhuri, Frank Pfenning, Greg Price |
J. Autom. Reason. | 2 |
| 2008 | Contextual modal type theoryabstractThe intuitionistic modal logic of necessity is based on the judgmental notion of categorical truth. In this article we investigate the consequences of relativizing these concepts to explicitly specified contexts. We obtain contextual modal logic and its type-theoretic analogue. Contextual modal type theory provides an elegant, uniform foundation for understanding metavariables and explicit substitutions. We sketch some applications in functional programming and logical frameworks. Aleksandar Nanevski, Frank Pfenning, Brigitte Pientka |
ACM Trans. Comput. Log. | 2 |
| 2008 | A probabilistic language based on sampling functionsabstractAs probabilistic computations play an increasing role in solving various problems, researchers have designed probabilistic languages which treat probability distributions as primitive datatypes. Most probabilistic languages, however, focus only on discrete distributions and have limited expressive power. This article presents a probabilistic language, called λ ○ , whose expressive power is beyond discrete distributions. Rich expressiveness of λ ○ is due to its use of sampling functions , that is, mappings from the unit interval (0.0,1.0] to probability domains, in specifying probability distributions. As such, λ ○ enables programmers to formally express and reason about sampling methods developed in simulation theory. The use of λ ○ is demonstrated with three applications in robotics: robot localization, people tracking, and robotic mapping. All experiments have been carried out with real robots. Frank Pfenning, Sebastian Thrun |
ACM Trans. Program. Lang. Syst. | 2 |
| 2007 | Subtyping and intersection types revisitedabstractChurch's system of simple types has proven to be remarkably robust: call-by-name, call-by-need, and call-by-value languages, with or without effects, and even logical frameworks can be based on the same typing rules. When type systems become more expressive, this unity fractures. An early example is the value restriction for parametric polymorphism which is necessary for ML but not Haskell; a later manifestation is the lack of distributivity of function types over intersections in call-by-value languages with effects. Frank Pfenning |
ICFP | 1 |
| 2007 | Using Constrained Intuitionistic Linear Logic for Hybrid Robotic Planning ProblemsabstractSynthesis of robot behaviors towards nontrivial goals often requires reasoning about both discrete and continuous aspects of the underlying domain. Existing approaches in building automated tools for such synthesis problems attempt to augment methods from either discrete planning or continuous control with hybrid elements, but largely fail to ensure a uniform treatment of both aspects of the domain. In this paper, we present a new formalism, constrained intuitionistic linear logic (CILL), merging continuous constraint solvers with linear logic to yield a single language in which hybrid properties of robotic behaviors can be expressed and reasoned with. Following a gentle introduction to linear logic, we describe the two new connectives of CILL, introduced to interface the constraint domain with the logical fragment of the language. We then illustrate the application of CILL for robotic planning problems within the balanced blocks world, a "physically realistic" extension of the blocks world domain. Even though some of the formal proofs for the semantic foundations of the language as well as an efficient implementation of a theorem prover are yet to be completed, CILL promises to be a powerful formalism in reasoning within hybrid domains. Uluc Saranli, Frank Pfenning |
ICRA | 2 |
| 2007 | Consumable Credentials in Linear-Logic-Based Access-Control Systems
Kevin D. Bowers, Lujo Bauer, Deepak Garg 0001, Frank Pfenning, Michael K. Reiter |
NDSS | 4 |
| 2007 | On a Logical Foundation for Explicit Substitutions
Frank Pfenning |
RTA | 1 |
| 2006 | Non-Interference in Constructive Authorization LogicabstractWe present a constructive authorization logic where the meanings of connectives are defined by their associated inference rules. This ensures that the logical reading of access control policies expressed in the logic and their implementation coincide. We study the proof-theoretic consequences of our design including cut-elimination and two non-interference properties that allow administrators to explore the correctness of their policies by establishing that for a given policy, assertions made by certain principals will not affect the truth of assertions made by others. Deepak Garg 0001, Frank Pfenning |
CSFW | 2 |
| 2006 | A Linear Logic of Authorization and Knowledge
Deepak Garg 0001, Lujo Bauer, Kevin D. Bowers, Frank Pfenning, Michael K. Reiter |
ESORICS | 4 |
| 2005 | A Focusing Inverse Method Theorem Prover for First-Order Linear Logic
Kaustuv Chaudhuri, Frank Pfenning |
CADE | 2 |
| 2005 | Type-Directed Concurrency
Deepak Garg 0001, Frank Pfenning |
CONCUR | 2 |
| 2005 | A probabilistic language based upon sampling functionsabstractAs probabilistic computations play an increasing role in solving various problems, researchers have designed probabilistic languages that treat probability distributions as primitive datatypes. Most probabilistic languages, however, focus only on discrete distributions and have limited expressive power. In this paper, we present a probabilistic language, called λο, which uniformly supports all kinds of probability distributions -- discrete distributions, continuous distributions, and even those belonging to neither group. Its mathematical basis is sampling functions, i.e., mappings from the unit interval (0.0,1.0] to probability domains.We also briefly describe the implementation of λο as an extension of Objective CAML and demonstrate its practicality with three applications in robotics: robot localization, people tracking, and robotic mapping. All experiments have been carried out with real robots. Frank Pfenning, Sebastian Thrun |
POPL | 2 |
| 2005 | Monadic concurrent linear logic programmingabstractLolli is a logic programming language based on the asynchronous propositions of intuitionistic linear logic. It uses a backward chaining, backtracking operational semantics. In this paper we extend Lolli with the remaining connectives of intuitionistic linear logic restricted to occur inside a monad, an idea taken from the concurrent logical framework (CLF). The resulting language, called LolliMon, has a natural forward chaining, committed choice operational semantics inside the monad, while retaining Lolli's semantics outside the monad. LolliMon thereby cleanly integrates both concurrency and saturation with logic programming search. We illustrate its expressive power through several examples including an implementation of the pi-calculus, a call-by-need lambda-calculus, and several saturating algorithms presented in logical form. Pablo López, Frank Pfenning, Jeff Polakow, Kevin Watkins |
PPDP | 2 |
| 2005 | A monadic analysis of information flow security with mutable stateabstractWe explore the logical underpinnings of higher-order, security-typed languages with mutable state. Our analysis is based on a logic of information flow derived from lax logic and the monadic metalanguage. Thus, our logic deals with mutation explicitly, with impurity reflected in the types, in contrast to most higher-order security-typed languages, which deal with mutation implicitly via side-effects. More importantly, we also take a store-oriented view of security, wherein security levels are associated with elements of the mutable store. This view matches closely with the operational semantics of low-level imperative languages where information flow is expressed by operations on the store. An interesting feature of our analysis lies in its treatment of upcalls (low-security computations that include high-security ones), employing an “informativeness” judgment indicating under what circumstances a type carries useful information. Karl Crary, Aleksey Kliger, Frank Pfenning |
J. Funct. Program. | 3 |
| 2005 | Staged computation with names and necessityabstractStaging is a programming technique for dividing the computation in order to exploit the early availability of some arguments. In the early stages the program uses the available arguments to generate, at run time, the code for the late stages. A type system for staging should ensure that only well-typed expressions are generated, and that only expressions with no free variables are permitted for evaluation. In this paper, we present a calculus for staged computation in which code from the late stages is composed by splicing smaller code fragments into a larger context, possibly incurring capture of free variables. The type system ensures safety by tracking the names of free variables for each code fragment. The type system is based on the necessity operator □ from constructive modal logic, which we index with a set of names C. Our type □ C A classifies expressions of type A that belong to the late stage, and whose free names are in the set C. Aleksandar Nanevski, Frank Pfenning |
J. Funct. Program. | 2 |
| 2005 | On equivalence and canonical forms in the LF type theoryabstractDecidability of definitional equality and conversion of terms into canonical form play a central role in the meta-theory of a type-theoretic logical framework. Most studies of definitional equality are based on a confluent, strongly normalizing notion of reduction. Coquand has considered a different approach, directly proving the correctness of a practical equivalance algorithm based on the shape of terms. Neither approach appears to scale well to richer languages with, for example, unit types or subtyping, and neither provides a notion of canonical form suitable for proving adequacy of encodings.In this article, we present a new, type-directed equivalence algorithm for the LF type theory that overcomes the weaknesses of previous approaches. The algorithm is practical, scales to richer languages, and yields a new notion of canonical form sufficient for adequate encodings of logical systems. The algorithm is proved complete by a Kripke-style logical relations argument similar to that suggested by Coquand. Crucially, both the algorithm itself and the logical relations rely only on the shapes of types, ignoring dependencies on terms. Robert Harper 0001, Frank Pfenning |
ACM Trans. Comput. Log. | 2 |
| 2004 | Substructural Operational Semantics and Linear Destination-Passing Style (Invited Talk)
Frank Pfenning |
APLAS | 1 |
| 2004 | A Symmetric Modal Lambda Calculus for Distributed ComputingabstractWe present a foundational language for spatially distributed programming, called Lambda 5, that addresses both mobility of code and locality of resources. In order to construct our system, we appeal to the powerful propositions-as-types interpretation of logic. Specifically, we take the possible worlds of the intuitionistic modal logic IS5 to be nodes on a network, and the connectives /spl square/ and /spl diams/ to reflect mobility and locality, respectively. We formulate a novel system of natural deduction for IS5, decomposing the introduction and elimination rules for /spl square/ and /spl diams/, thereby allowing the corresponding programs to be more direct. We then give an operational semantics to our calculus that is type-safe, logically faithful, and computationally realistic. Tom Murphy VII, Karl Crary, Robert Harper 0001, Frank Pfenning |
LICS | 4 |
| 2004 | Tridirectional typecheckingabstractIn prior work we introduced a pure type assignment system that encompasses a rich set of property types, including intersections, unions, and universally and existentially quantified dependent types. This system was shown sound with respect to a call-by-value operational semantics with effects, yet is inherently undecidable.In this paper we provide a decidable formulation for this system based on bidirectional checking, combining type synthesis and analysis following logical principles. The presence of unions and existential quantification requires the additional ability to visit subterms in evaluation position before the context in which they occur, leading to a tridirectional type system. While soundness with respect to the type assignment system is immediate, completeness requires the novel concept of contextual type annotations, introducing a notion from the study of principal typings into the source program. Jana Dunfield, Frank Pfenning |
POPL | 2 |
| 2004 | ETPS: A System to Help Students Write Formal Proofs
Peter B. Andrews, Chad E. Brown, Frank Pfenning, Matthew Bishop, Sunil Issar, Hongwei Xi 0001 |
J. Autom. Reason. | 3 |
| 2003 | Optimizing Higher-Order Pattern Unification
Brigitte Pientka, Frank Pfenning |
CADE | 2 |
| 2003 | Type Assignment for Intersections and Unions in Call-by-Value Languages
Jana Dunfield, Frank Pfenning |
FoSSaCS | 2 |
| 2003 | A Learning Algorithm for Localizing People Based on Wireless Signal Strength that Uses Labeled and Unlabeled Data
Sebastian Thrun, Geoffrey J. Gordon, Frank Pfenning, Mary Koes, Brennan Sellner, Brad Lisien |
IJCAI | 3 |
| 2003 | A type theory for memory allocation and data layoutabstractOrdered type theory is an extension of linear type theory in which variables in the context may be neither dropped nor re-ordered. This restriction gives rise to a natural notion of adjacency. We show that a language based on ordered types can use this property to give an exact account of the layout of data in memory. The fuse constructor from ordered logic describes adjacency of values in memory, and the mobility modal describes pointers into the heap. We choose a particular allocation model based on a common implementation scheme for copying garbage collection and show how this permits us to separate out the allocation and initialization of memory locations in such a way as to account for optimizations such as the coalescing of multiple calls to the allocator. Leaf Petersen, Robert Harper 0001, Karl Crary, Frank Pfenning |
POPL | 4 |
| 2003 | A Linear Spine CalculusabstractWe present the spine calculus S→⊸&⊤ as an efficient representation for the linear λ-calculus λ→⊸&⊤ which includes unrestricted functions (→) linear functions (⊸) additive pairing (&) and additive unit (⊤). S→⊸&⊤ enhances the representation of Church's simply typed λ-calculus by enforcing extensionality and by incorporating linear constructs. This approach permits procedures such as unification to retain the efficient head access that characterizes first-order term languages without the overhead of performing η-conversions at run time. Applications lie in proof search, logic programming, and logical frameworks based on linear type theories. It is also related to foundational work on term assignment calculi for presentations of the sequent calculus. We define the spine calculus, give translations of λ→⊸&⊤ into S→⊸&⊤ and vice versa, prove their soundness and completeness with respect to typing and reductions, and show that the typable fragment of the spine calculus is strongly normalizing and admits unique canonical, i.e. βη-normal, forms. Iliano Cervesato, Frank Pfenning |
J. Log. Comput. | 2 |
| 2003 | Automated techniques for provably safe mobile code
Christopher Colby, Karl Crary, Robert Harper 0001, Peter Lee 0001, Frank Pfenning |
Theor. Comput. Sci. | 5 |
| 2003 | Higher-order pattern complement and the strict lambda-calculusabstractWe address the problem of complementing higher-order patterns without repetitions of existential variables. Differently from the first-order case, the complement of a pattern cannot, in general, be described by a pattern, or even by a finite set of patterns. We therefore generalize the simply-typed λ-calculus to include an internal notion of strict function so that we can directly express that a term must depend on a given variable. We show that, in this more expressive calculus, finite sets of patterns without repeated variables are closed under complement and intersection. Our principal application is the transformational approach to negation in higher-order logic programs. Alberto Momigliano, Frank Pfenning |
ACM Trans. Comput. Log. | 2 |
| 2002 | A Linear Logical Framework
Iliano Cervesato, Frank Pfenning |
Inf. Comput. | 2 |
| 2002 | EditorialabstractThis special issue of ACM Transactions on Computational Logic is devoted to papers first presented at LICS 2000, the 15th Annual IEEE Symposium on Logic in Computer Science, held June 26--29, 2000, in Santa Barbara, California.In consultation with the LICS 2000 program committee, the guest editors selected five papers presented at the conference and invited their authors to submit full versions of the papers to this special issue. All submissions were refereed according to the usual standards of ACM Transactions on Computational Logic . They cover a range of lively areas within Logic in Computer Science, reflecting well the quality of the conference. We are grateful to the authors of the papers for their excellent contributions, and to all members of the program committee and reviewers for their efforts. Martín Abadi, Leonid Libkin, Frank Pfenning |
ACM Trans. Comput. Log. | 3 |
| 2001 | Intensionality, Extensionality, and Proof Irrelevance in Modal Type TheoryabstractWe develop a uniform type theory that integrates intensionality, extensionality and proof irrelevance as judgmental concepts. Any object may be treated intensionally (subject only to /spl alpha/-conversion), extensionally (subject also to /spl beta//spl eta/-conversion), or as irrelevant (equal to any other object at the same type), depending on where it occurs. Modal restrictions developed by R. Harper et al. (2000) for single types are generalized and employed to guarantee consistency between these views of objects. Potential applications are in logical frameworks, functional programming and the foundations of first-order modal logics. Our type theory contrasts with previous approaches that, a priori, distinguished propositions (whose proofs are all identified - only their existence is important) from specifications (whose implementations are subject to some definitional equalities). Frank Pfenning |
LICS | 1 |
| 2001 | A modal analysis of staged computationabstractWe show that a type system based on the intuitionistic modal logic S4 provides an expressive framework for specifying and analyzing computation stages in the context of typed λ-calculi and functional languages. We directly demonstrate the sense in which our λ e →□ -calculus captures staging, and also give a conservative embeddng of Nielson and Nielson's two-level functional language in our functional language Mini-ML □ , thus proving that binding-time correctness is equivalent to modal correctness on this fragment. In addition, Mini-ML □ can also express immediate evaluation and sharing of code across multiple stages, thus supporting run-time code generation as well as partial evaluation. Rowan Davies, Frank Pfenning |
J. ACM | 2 |
| 2001 | A judgmental reconstruction of modal logicabstractWe reconsider the foundations of modal logic, following Martin-Löf's methodology of distinguishing judgments from propositions. We give constructive meaning explanations for necessity and possibility, which yields a simple and uniform system of natural deduction for intuitionistic modal logic that does not exhibit anomalies found in other proposals. We also give a new presentation of lax logic and find that the lax modality is already expressible using possibility and necessity. Through a computational interpretation of proofs in modal logic we further obtain a new formulation of Moggi's monadic metalanguage. Frank Pfenning, Rowan Davies |
Math. Struct. Comput. Sci. | 1 |
| 2001 | Primitive recursion for higher-order abstract syntax
Joëlle Despeyroux, Frank Pfenning |
Theor. Comput. Sci. | 3 |
| 2000 | Intersection types and computational effectsabstractWe show that standard formulations of intersection type systems are unsound in the presence of computational effects, and propose a solution similar to the value restriction for polymorphism adopted in the revised definition of Standard ML. It differs in that it is not tied to let-expressions and requires an additional weakening of the usual subtyping rules. We also present a bi-directional type-checking algorithm for the resulting language that does not require an excessive amount of type annotations and illustrate it through some examples. We further show that the type assignment system can be extended to incorporate parametric polymorphism. Taken together, we see our system and associated type-checking algorithm as a significant step towards the introduction of intersection types into realistic programming languages. The added expressive power would allow many more properties of programs to be stated by the programmer and statically verified by a compiler. Rowan Davies, Frank Pfenning |
ICFP | 2 |
| 2000 | On the Logical Foundations of Staged Computation (Abstract of Invited Talk)abstractDividing a computation into stages and optimizing later phases using information from earlier phases is a familiar technique in algorithm design. In the realm of programming languages, staged computation has found two important realizations: partial evaluation and run-time code generation. A priori, these are fundamentally operational concepts, concerned with how a program executes, but not what it computes. Frank Pfenning |
PEPM | 1 |
| 2000 | Structural Cut Elimination: I. Intuitionistic and Classical Logic
Frank Pfenning |
Inf. Comput. | 1 |
| 2000 | Efficient resource management for linear logic proof search
Iliano Cervesato, Joshua S. Hodas, Frank Pfenning |
Theor. Comput. Sci. | 3 |
| 1999 | System Description: Twelf - A Meta-Logical Framework for Deductive Systems
Frank Pfenning |
CADE | 1 |
| 1999 | The Relative Complement Problem for Higher-Order Patterns
Alberto Momigliano, Frank Pfenning |
ICLP | 2 |
| 1999 | Dependent Types in Practical ProgrammingabstractWe present an approach to enriching the type system of ML with a restricted form of dependent types, where type index objects are drawn from a constraint domain C, leading to the DML(C) language schema. This allows specification and inference of significantly more precise type information, facilitating program error detection and compiler optimization. A major complication resulting from introducing dependent types is that pure type inference for the enriched system is no longer possible, but we show that type-checking a sufficiently annotated program in DML(C) can be reduced to constraint satisfaction in the constraint domain C. We exhibit the unobtrusiveness of our approach through practical examples and prove that DML(C) is conservative over ML. The main contribution of the paper lies in our language design, including the formulation of type-checking rules which makes the approach practical. To our knowledge, no previous type system for a general purpose programming language such as ML has combined dependent types with features including datatype declarations, higher-order functions, general recursions, let-polymorphism, mutable references, and exceptions. In addition, we have finished a prototype implementation of DML(C) for an integer constraint domain C, where constraints are linear inequalities (Xi and Pfenning 1998). Hongwei Xi 0001, Frank Pfenning |
POPL | 2 |
| 1999 | Logical and Meta-Logical Frameworks (Abstract)
Frank Pfenning |
PPDP | 1 |
| 1998 | Reasoning About Deductions in Linear Logic (Abstract of Invited Talk)
Frank Pfenning |
CADE | 1 |
| 1998 | Automated Theorem Proving in a Simple Meta-Logic for LF
Frank Pfenning |
CADE | 2 |
| 1998 | Run-time Code Generation and Modal-MLabstractThis paper presents a typed programming language and compiler for run-time code generation. The language, called ML', extends ML with modal operators in the style of the Mini-ML'e language of Davies and Pfenning. ML' allows programmers to use types to specify precisely the stages of computation in a program. The types also guide the compiler in generating target code that exploits the staging information through the use of run-time code generation. The target machine is currently a version of the Categorical Abstract Machine, called the CCAM, which we have extended with facilities for run-time code generation.This approach allows the programmer to express the staging that he wants directly to the compiler. It also provides a typed framework in which to verify the correctness of his staging intentions, and to discuss his staging decisions with other programmers. Finally, it supports in a natural way multiple stages of run-time specialization, so that dynamically generated code can be used in the generation of yet further specialized code.This paper presents an overview of the language, with several examples of programs that illustrate key concepts and programming techniques. Then, it discusses the CCAM and the compilation of ML' programs into CCAM code. Finally, the results of some experiments are shown, to demonstrate the benefits of this style of run-time code generation for some applications. Philip Wickline, Peter Lee 0001, Frank Pfenning |
PLDI | 3 |
| 1998 | Eliminating Array Bound Checking Through Dependent TypesabstractWe present a type-based approach to eliminating array bound checking and list tag checking by conservatively extending Standard ML with a restricted form of dependent types. This enables the programmer to capture more invariants through types while type-checking remains decidable in theory and can still be performed efficiently in practice. We illustrate our approach through concrete examples and present the result of our preliminary experiments which support support the feasibility and effectiveness of our approach. Hongwei Xi 0001, Frank Pfenning |
PLDI | 2 |
| 1998 | A Module System for a Programming Language Based on the LF Logical FrameworkabstractWe describe a module system for Elf, a logic programming language based on the LF logical framework. The static part of module calculus addresses name-space management and structured presentation of deductive systems. The dynamic part addresses search-space management and modularization of logic programs. Robert Harper 0001, Frank Pfenning |
J. Log. Comput. | 2 |
| 1997 | Linear Higher-Order Pre-UnificationabstractWe develop an efficient representation and a pre-unification algorithm in the style of Huet (1975) for the linear /spl lambda/-calculus /spl lambda//sup /spl rarr//spl rArr/0&T/ which includes intuitionistic functions (/spl rarr/), linear functions (/spl rArr/), additive pairing (&), and additive unit (T). Applications lie in proof scorch, logic programming, and logical frameworks based on linear type theories. We also show that, surprisingly, a similar pre-unification algorithm does not exist for certain sublanguages. Iliano Cervesato, Frank Pfenning |
LICS | 2 |
| 1997 | On the Unification Problem for Cartesian Closed CategoriesabstractAbstract Cartesian closed categories (CCCs) have played and continue to play an important role in the study of the semantics of programming languages. An axiomatization of the isomorphisms which hold in all Cartesian closed categories discovered independently by Soloviev and Bruce, Di Cosmo and Longo leads to seven equalities. We show that the unification problem for this theory is undecidable, thus settling an open question. We also show that an important subcase, namely unification modulo thelinear isomorphisms, is NP-complete. Furthermore, the problem of matching in CCCs is NP-complete when the subject term is irreducible. CCC-matching and unification form the basis for an elegant and practical solution to the problem of retrieving functions from a library indexed by types investigated by Rittri. It also has potential applications to the problem of polymorphic type inference and polymorphic higher-order unification, which in turn is relevant to theorem proving and logic programming. Paliath Narendran, Frank Pfenning, Richard Statman |
J. Symb. Log. | 2 |
| 1996 | Mode and Termination Checking for Higher-Order Logic Programs
Ekkehard Rohwedder, Frank Pfenning |
ESOP | 2 |
| 1996 | A Linear Logical FrameworkabstractWe present the linear type theory LLF as the formal basis for a conservative extension of the LF logical framework. LLF combines the expressive power of dependent types with linear logic to permit the natural and concise representation of a whole new class of deductive systems, namely those dealing with state. As an example we encode a version of Mini-ML with references including its type system, its operational semantics, and a proof of type preservation. Another example is the encoding of a sequent calculus for classical linear logic and its cut elimination theorem. LLF can also be given an operational interpretation as a logic programming language under which the representations above can be used for type inference, evaluation and cut-elimination. Iliano Cervesato, Frank Pfenning |
LICS | 2 |
| 1996 | A Modal Analysis of Staged ComputationabstractWe show that a type system based on the intuitionistic modal logic S4 provides an expressive framework for specifying and analyzing computation stages in the context of functional languages. Our main technical result is a conservative embedding of Nielson & Nielson's two-level functional language in our language Mini-ML, thus proving that binding-time correctness is equivalent to modal correctness on this fragment. In addition Mini-ML can also express immediate evaluation and sharing of code across multiple stages, thus supporting run-time code generation as well as partial evaluation. Rowan Davies, Frank Pfenning |
POPL | 2 |
| 1996 | TPS: A Theorem-Proving System for Classical Type Theory
Peter B. Andrews, Matthew Bishop, Sunil Issar, Daniel Nesmith, Frank Pfenning, Hongwei Xi 0001 |
J. Autom. Reason. | 5 |
| 1995 | Structural Cut EliminationabstractPresents new proofs of cut elimination for intuitionistic, classical and linear sequent calculi. In all cases, the proofs proceed by three nested structural inductions, avoiding the explicit use of multi-sets and termination measures on sequent derivations. This makes them amenable to elegant and concise implementations in Elf, a constraint logic programming language based on the LF logical framework. Frank Pfenning |
LICS | 1 |
| 1994 | Elf: A Meta-Language for Deductive Systems (System Descrition)
Frank Pfenning |
CADE | 1 |
| 1993 | On the Unification Problem for Cartesian Closed CategoriesabstractAn axiomatization of the isomorphisms that hold in all Cartesian closed categories (CCCs), discovered independently by S.V. Soloviev (1983) and by K.B. Bruce and G. Longo (1985), leads to seven equalities. It is shown that the unification problem for this theory is undecidable, thus setting an open question. It is also shown that an important subcase, namely unification modulo the linear isomorphisms, is NP-complete. Furthermore, the problem of matching in CCCs is NP-complete when the subject term is irreducible. CCC-matching and unification form the basis for an elegant and practical solution to the problem of retrieving functions from a library indexed by types investigated by M. Rittri (1990, 1991). It also has potential applications to the problem of polymorphic higher-order unification, which in turn is relevant to theorem proving, logic programming, and type reconstruction in higher-order languages.> Paliath Narendran, Frank Pfenning, Richard Statman |
LICS | 2 |
| 1993 | On the Undecidability of Partial Polymorphic Type Reconstruction
Frank Pfenning |
Fundam. Informaticae | 1 |
| 1992 | Implementing the Meta-Theory of Deductive Systems
Frank Pfenning, Ekkehard Rohwedder |
CADE | 1 |
| 1992 | Compiler Verification in LFabstractA methodology for the verification of compiler correctness based on the LF logical framework as realized within the Elf programming language is presented. This technique is used to specify, implement, and verify a compiler from a simple functional programming language to a variant of the Categorical Abstract Machine (CAM).> John Hannan, Frank Pfenning |
LICS | 2 |
| 1992 | Higher-Order and Modal Logic as a Framework for Explanation-Based Generalization
Scott Dietzen, Frank Pfenning |
Mach. Learn. | 2 |
| 1991 | Unification and Anti-Unification in the Calculus of ConstructionsabstractAlgorithms for unification and anti-unification in the calculus of constructions, where occurrences of free variables (the variables subject to instantiation) are restricted to higher-order patterns, are presented. Most general unifiers and least common anti-instances are shown to exist and are unique up to a simple equivalence. The unification algorithm is used for logic program execution and type and term reconstruction in the current implementation of Elf and has shown itself to be practical.> Frank Pfenning |
LICS | 1 |
| 1991 | Compiling the Polymorphic Lambda-Calculusabstractquantification, side-effects, and assignment.TheseWe report some initial results regarding the efficient compilation of the second-order polymorphic A-calculus (Fz).Our compiler makes strong use of type information and the strong normalization and Church-Rosser properties of F2.Among the conceptual tools we develop is a notion of observational equivalence for F2, which we use to outline a proof that our compiler preserves the observable behavior of programs.Our technique compiles functions of well-understood inductive types to non-functional data structures, and computation is no longer just /reduction.A limited form of partial evaluation with a simple "Eureka" step is used to help circumvent provable inefficiencies of some functions in the pure polymorphic Lcalculus.For example, the usual predecessor function on Church numerals is compiled to a constant-time function. Spiro Michaylov, Frank Pfenning |
PEPM | 2 |
| 1991 | Refinement Types for MLabstractT$'e describe a refinement of ML's type system allowing the specification of recursively defined subtypes of user-defined datatypes.The resulting system of rejirzemeni f,ypes preserves desirable properties of ML such as decidability of type inference, while at the same time allowing more errors to be detected at compile-time.The type system combines abstract interpretation with ideas from the intersection type discipline, but remains closely tied to ML in that refinement types are given only to programs which are already well-typed in ML. Timothy S. Freeman, Frank Pfenning |
PLDI | 2 |
| 1991 | Uniform Proofs as a Foundation for Logic ProgrammingabstractMiller, D., G. Nadathur, F. Pfenning and A. Scedrov, Uniform proofs as a foundation for logic programming, Annals of Pure and Applied Logic 51 (1991) 125–157. A proof-theoretic characterization of logical languages that form suitable bases for Prolog-like programming languages is provided. This characterization is based on the principle that the declarative meaning of a logic program, provided by provability in a logical system, should coincide with its operational meaning, provided by interpreting logical connectives as simple and fixed search instructions. The operational semantics is formalized by the identification of a class of cut-free sequent proofs called uniform proofs. A uniform proof is one that can be found by a goal-directed search that respects the interpretation of the logical connectives as search instructions. The concept of a uniform proof is used to define the notion of an abstract logic programming language, and it is shown that first-order and higher-order Horn clauses with classical provability are examples of such a language. Horn clauses are then generalized to hereditary Harrop formulas and it is shown that first-order and higher-order versions of this new class of formulas are also abstract logic programming languages if the inference rules are those of either intuitionistic or minimal logic. The programming language significance of the various generalizations to first-order Horn clauses is briefly discussed. Dale Miller 0001, Gopalan Nadathur, Frank Pfenning, Andre Scedrov |
Ann. Pure Appl. Log. | 3 |
| 1991 | Metacircularity in the Polymorphic lambda-Calculus
Frank Pfenning, Peter Lee 0001 |
Theor. Comput. Sci. | 1 |
| 1990 | The TPS Theorem Proving System
Peter B. Andrews, Sunil Issar, Daniel Nesmith, Frank Pfenning |
CADE | 4 |
| 1990 | Tutorial on Lambda-Prolog
Amy P. Felty, Elsa L. Gunter, Dale Miller 0001, Frank Pfenning |
CADE | 4 |
| 1990 | Presenting Intuitive Deductions via Symmetric Simplification
Frank Pfenning, Daniel Nesmith |
CADE | 1 |
| 1990 | Types in Logic Programming
Frank Pfenning |
ICLP | 1 |
| 1989 | Higher-Order and Modal Logic as a Framework for Explanation-Based Generalization
Scott Dietzen, Frank Pfenning |
ML | 2 |
| 1989 | Elf: A Language for Logic Definition and Verified MetaprogrammingabstractA description is given of Elf, a metalanguage for proof manipulation environments that are independent of any particular logical system. Elf is intended for metaprograms such as theorem provers, proof transformers, or type inference programs for programming languages with complex type systems. Elf unifies logic definition (in the style of LF, the Edinburgh logical framework) with logic programming (in the style of lambda Prolog). It achieves this unification by giving types an operational interpretation, much the same way that Prolog gives certain formulas (Horn clauses) an operational interpretation. Novel features of Elf include: (1) the Elf search process automatically constructs terms that can represent object-logic proofs, and thus a program need not construct them explicitly; (2) the partial correctness of metaprograms with respect to a given logic can be expressed and proved in Elf itself; and (3) Elf exploits Elliott's (1989) unification algorithm for a lambda -calculus with dependent types.> Frank Pfenning |
LICS | 1 |
| 1988 | The TPS Theorem Proving System
Peter B. Andrews, Sunil Issar, Daniel Nesmith, Frank Pfenning |
CADE | 4 |
| 1988 | Single Axioms in the Implicational Propositional Calculus
Frank Pfenning |
CADE | 1 |
| 1988 | Higher-Order Abstract SyntaxabstractWe describe motivation, design, use, and implementation of higher-order abstract syntax as a central representation for programs, formulas, rules, and other syntactic objects in program manipulation and other formal systems where matching and substitution or unification are central operations. Higher-order abstract syntax incorporates name binding information in a uniform and language generic way. Thus it acts as a powerful link integrating diverse tools in such formal environments. We have implemented higher-order abstract syntax, a supporting matching and unification algorithm, and some clients in Common Lisp in the framework of the Ergo project at Carnegie Mellon University. Frank Pfenning, Conal Elliott |
PLDI | 1 |
| 1986 | The TPS Theorem Proving System
Peter B. Andrews, Frank Pfenning, Sunil Issar, Carl P. Klapper |
CADE | 2 |
| 1984 | Analytic and Non-analytic Proofs
Frank Pfenning |
CADE | 1 |