Amy P. Felty

dblp:f/AmyPFelty · DBLP profile ↗
← Back
50ranked-venue papers
30as first author
4since 2021 · last 2022
0000-0001-7195-2613ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Theory of computation · 28 · 23 first-author · 3 since 2021Artificial intelligence and machine learning · 20 · 15 first-authorSoftware engineering, systems software and programming languages · 10 · 4 first-authorSecurity and privacy · 7Databases, data management, data science and information retrieval · 1 · 1 first-authorGraphics, computer vision, multimedia, augmented reality and games · 1Applied, interdisciplinary, general and emerging computing · 1 · 1 since 2021
YearPublicationVenuePosition
2022 Modelling and Verifying Properties of Biological Neural Networks (Invited Talk)
Amy P. Felty
ITP1
2022 On the use of formal methods to model and verify neuronal archetypes
Elisabetta De Maria, Abdorrahim Bahrami, Thibaud L'Yvonnet, Amy P. Felty, Daniel Gaffé, Annie Ressouche, Franck Grammont
Frontiers Comput. Sci.4
2022 Preface to Special Issue: LSFA 2019 and 2020
Amy P. Felty, Giselle Reis
Math. Struct. Comput. Sci.1
2021 A focused linear logical framework and its application to metatheory of object logics
abstract
Abstract Linear logic (LL) has been used as a foundation (and inspiration) for the development of programming languages, logical frameworks, and models for concurrency. LL’s cut-elimination and the completeness of focusing are two of its fundamental properties that have been exploited in such applications. This paper formalizes the proof of cut-elimination for focused LL. For that, we propose a set of five cut-rules that allows us to prove cut-elimination directly on the focused system. We also encode the inference rules of other logics as LL theories and formalize the necessary conditions for those logics to have cut-elimination. We then obtain, for free, cut-elimination for first-order classical, intuitionistic, and variants of LL. We also use the LL metatheory to formalize the relative completeness of natural deduction and sequent calculus in first-order minimal logic. Hence, we propose a framework that can be used to formalize fundamental properties of logical systems specified as LL theories.
Amy P. Felty, Carlos Olarte, Bruno Xavier
Math. Struct. Comput. Sci.1
2020 Formal Verification of a Certified Policy Language
Amir Eaman, Amy P. Felty
VECoS2
2019 A linear logical framework in hybrid (invited talk)
abstract
We present a linear logical framework implemented within the Hybrid system [Felty and Momigliano 2012]. Hybrid is designed to support the use of higher-order abstract syntax for representing and reasoning about formal systems, implemented in the Coq Proof Assistant. In this work, we extend the system with a linear specification logic, which provides infrastructure for reasoning directly about object languages with linear features.
Amy P. Felty
CPP1
2019 Formalization of Metatheory of the Quipper Quantum Programming Language in a Linear Logic
Mohamed Yousri Mahmoud, Amy P. Felty
J. Autom. Reason.2
2019 A special issue on structural proof theory, automated reasoning and computation in celebration of Dale Miller's 60th birthday
abstract
The genesis of this special issue was in a meeting that took place at Université Paris Diderot on December 15 and 16, 2016. Dale Miller, Professor at École polytechnique, had turned 60 a few days earlier. In a career spanning over three decades and in work conducted in collaboration with several students and colleagues, Dale had had a significant influence in an area that can be described as structural proof theory and its application to computation and reasoning. In recognition of this fact, several of his collaborators thought it appropriate to celebrate the occasion by organizing a symposium on topics broadly connected to his areas of interest and achievements. The meeting was a success in several senses: it was attended by over 35 people, there were 15 technical presentations describing new results, and, quite gratifyingly, we managed to spring the event as a complete surprise to Dale.
David Baelde, Amy P. Felty, Gopalan Nadathur, Alexis Saurin
Math. Struct. Comput. Sci.2
2018 Benchmarks for reasoning with syntax trees containing binders and contexts of assumptions
abstract
A variety of logical frameworks supports the use of higher order abstract syntax in representing formal systems. Although these systems seem superficially the same, they differ in a variety of ways, for example, how they handle acontextof assumptions and which theorems about a given formal system can be concisely expressed and proved. Our contributions in this paper are two-fold: (1) We develop a common infrastructure and language for describing benchmarks for systems supporting reasoning with binders, and (2) we present several concrete benchmarks, which highlight a variety of different aspects of reasoning within a context of assumptions. Our work provides the background for the qualitative comparison of different systems that we have completed in a separate paper. It also allows us to outline future fundamental research questions regarding the design and implementation of meta-reasoning systems.
Amy P. Felty, Alberto Momigliano, Brigitte Pientka
Math. Struct. Comput. Sci.1
2017 A Certified Core Policy Language
abstract
We present the design and implementation of a Certified Core Policy Language (ACCPL) that can be used to express access-control policies. We define formal semantics for ACCPL and use the Coq Proof Assistant to state theorems about this semantics, to develop proofs for those theorems and to machine-check the proofs ensuring correctness guarantees are provided. The main design goal for ACCPL is the ability to reason about the policies written in ACCPL with respect to specific questions such as safety. In addition, ACCPL and the established proofs are integrated such that extensions to expressive power may be explored by also extending identifiable proof statements in the direction of the added expressivity. To this end, ACCPL is small (the syntax and the semantics of ACCPL only take a few pages to describe), although we believe ACCPL supports the core features of many access-control policy languages.
Bahman Sistany, Amy P. Felty
PST2
2017 Preface: Selected Extended Papers of CADE 2015
Amy P. Felty, Aart Middeldorp
J. Autom. Reason.1
2016 Using Expert Systems to Statically Detect "Dynamic" Conflicts in XACML
abstract
Policy specification languages such as XACML often provide mechanisms to resolve dynamic conflicts that occur when trying to determine if a request should be permitted or denied access by a policy. Examples include "deny-overrides" or "first-applicable." Such algorithms are primitive and potentially a risk for corporate computer security. While they can be useful for resolving dynamic conflicts, they are not justified for conflicts that can be easily detected statically. It is better to find those at compile time and remove them before run time. Many different approaches have been used for static conflict detection. However, most of them do not scale well because they rely on pair-wise comparison of the access control logic of policies and rules. We propose an extension of a Prolog-based expert system approach due to Eronen and Zitting. This approach uses constraint logic programming techniques (CLP), which are well-adapted to hierarchical XACML policy logic and avoid pair-wise comparisons altogether by taking advantage of Prolog's built-in powerful indexing system. We demonstrate that expert systems can indeed detect conflicts statically, even those that are generally believed to only be detectable at run time, by inferring the values of attributes that would cause a conflict. As a result, relying on the XACML policy combining algorithms can be avoided in most cases except in federated systems. Finally we provide performance measurements for two different architectures represented in Prolog and give some analysis.
Bernard Stepien, Amy P. Felty
ARES2
2016 A verified algorithm for detecting conflicts in XACML access control rules
abstract
We describe the formalization of a correctness proof for a conflict detection algorithm for XACML (eXtensible Access Control Markup Language). XACML is a standardized declarative access control policy language that is increasingly used in industry. In practice it is common for rule sets to grow large, and contain unintended errors, often due to conflicting rules. A conflict occurs in a policy when one rule permits a request and another denies that same request. Such errors can lead to serious risks involving both allowing access to an unauthorized user as well as denying access to someone who needs it. Removing conflicts is thus an important aspect of debugging policies, and the use of a verified algorithm provides the highest assurance in a domain where security is important. In this paper, we focus on several complex XACML constructs, including time ranges and integer intervals, as well as ways to combine any number of functions using the boolean operators and, or, and not. The latter are the most complex, and add significant expressive power to the language. We propose an algorithm to find conflicts and then use the Coq Proof Assistant to prove the algorithm correct. We develop a library of tactics to help automate the proof.
Michel St-Martin, Amy P. Felty
CPP2
2015 The Next 700 Challenge Problems for Reasoning with Higher-Order Abstract Syntax Representations - Part 2 - A Survey
Amy P. Felty, Alberto Momigliano, Brigitte Pientka
J. Autom. Reason.1
2014 Challenges of Composing XACML Policies
abstract
XACML (extensible Access Control Mark-up Language) is a declarative access control policy language that has unique language constructs for factoring out access control logic. These constructs make the specification of access control requirements more compact than decision trees, which can be considered the most natural way to specify access control logic. However, many publications report that performance of XACML policy decision point (PDP) engines is greatly affected by the structure of policy sets. In this paper we first explore the causes of potential inefficiencies of XACML policies, and then propose a procedure to re-structure policy sets vertically by modifying the distribution of access control logic among different configurations of structural elements, in order to remove much of this inefficiency. This is in contrast to horizontal re-ordering of constant structural elements. Our procedure can be applied regardless of the complexity and structure of the original policy set. We also compare the performance of policy sets that take advantage of the expressive power of XACML targets to decision trees.
Bernard Stepien, Amy P. Felty, Stan Matwin
ARES2
2012 An Algorithm for Compression of XACML Access Control Policy Sets by Recursive Subsumption
abstract
Policy administrators increasingly face the challenge of managing large policy bases, and this need becomes more acute with the growing importance of fine-grained access control models, e.g. ABAC. We have shown in previous work that simple policies mostly based on conjunctions of single attribute conditions, can be merged into more complex conditions composed of combinations of conjunctions and disjunctions of attribute/value pairs. Here, we propose an algorithm that uses a recursive process of subsumption applied on the original set of policies that results in a complex and short policy, often significantly compressing the original policy. We present this algorithm, and discuss the advantages of this approach, i.e. its performance when working on the policy structures encountered in real-life policy sets, its scalability, and its ability to deal with large alphabet sets.
Bernard Stepien, Stan Matwin, Amy P. Felty
ARES3
2012 Hybrid - A Definitional Two-Level Approach to Reasoning with Higher-Order Abstract Syntax
Amy P. Felty, Alberto Momigliano
J. Autom. Reason.1
2011 Advantages of a non-technical XACML notation in role-based models
abstract
As applications requiring access control and the environments in which they operate in become more complex, an acute need for better ways to manage access control rules has arisen. Decentralized access control, for example, requires sophisticated techniques for conflict detection and for managing rules across multiple applications with different rule formats. XACML is an OASIS standard whose interoperability qualities help in solving the latter problem. XACML has its own limitations, however. In particular, although it has the expressive power to specify very complex conditions like those needed in the ABAC (Attribute Based Access Control) model, users tend to avoid using its full power because of its verbosity. In this paper, we show how a non-technical notation we have proposed in our earlier work resolves this difficulty and allows users to work with a very compact and readable form of XACML rules, thus allowing them to take advantage of XACML's full expressive power. This expressive power can be exploited to write policies that are better organized. It can be easier, for example, to write a single possibly complex rule to cover a particular aspect of a policy as opposed to distributing the complexity over several rules with simpler conditions. As a result, policies are smaller, more compact, and easier to understand. Policy development becomes more manageable, allowing users to concentrate on the more central issue of choosing the model (RBAC, ABAC, PBAC or other) that is best suited to a particular application and policy. We show that using the full expressive power to better organize policies has a significant positive impact on PDP performance.
Bernard Stepien, Stan Matwin, Amy P. Felty
PST3
2011 An implementation of a verification condition generator for foundational proof-carrying code
abstract
Proof-carrying code (PCC) is a technique that addresses the problem of mobile code safety. It is a mechanism in which a code producer provides both code and a proof certifying that the code will run safely on a code consumer's machine. The code consumer or the host system will validate the proof against a safety policy before executing the source code. Foundational proof-carrying code (FPCC) aims to minimize the amount of code that must be trusted (the “trusted computing base” or TCB) with the goal of providing more flexibility and increased security. In both PCC and FPCC, the verification-condition generator (VCG) constructs the statement of the safety theorem from the source code, and is an important part of the TCB. This paper presents an implementation of a VCG based on a sound set of Hoare-style rules for machine instructions in the context of FPCC. The implementation in OCaml is described and examples illustrating the approach are given. The output of our VCG is a list of verification conditions that are directly inserted into a proof script that serves as input to the Coq proof assistant, and represents an important part of the safety proofs of our programs. We also present examples showing how these verification conditions are used to complete the proofs of safety. This work represents an important step in automating proofs for PCC.
Jiangong Weng, Amy P. Felty
PST2
2010 Strategies for Reducing Risks of Inconsistencies in Access Control Policies
abstract
Managing access control policies is a complex task. We argue that much of the complexity is unnecessary and mostly due to historical reasons. There are number of legacy policy specification languages that all have limitations of some kind. These limitations have forced policy implementers to use certain styles of writing policies, often resulting in inconsistencies. The detection and resolution of these inconsistencies has been widely researched and many solutions have been found. This paper highlights new possibilities for avoiding inconsistencies, drawing on the expressive power allowed in the condition field of rules in modern languages such as XACML. In particular, we show that making use of this expressive power has many advantages-it allows organizations to considerably reduce the number of policies and rules required to protect company assets; it provides improved views and summaries of related policies; and it allows increased scalability of analysis tools, such as tools that detect inconsistencies and tools that perform audits to verify compliance to regulations. Such tools are increasingly important in the current environment where the number of regulations governing company security continues to grow. In addition, we show how our user-friendly representation for the XACML language facilitates the use of complex conditions by increasing their readability. This increased readability has the additional benefit of allowing non-technical users to better understand the implementation of their policies. These factors all contribute to a lower risk of inconsistencies in policies.
Bernard Stepien, Stan Matwin, Amy P. Felty
ARES3
2010 Reasoning with Higher-Order Abstract Syntax and Contexts: A Comparison
Amy P. Felty, Brigitte Pientka
ITP1
2009 Reasoning with hypothetical judgments and open terms in hybrid
abstract
Hybrid is a system developed to specify and reason about logics, programming languages, and other formal systems expressed in higher-order abstract syntax (HOAS). An important goal of Hybrid is to exploit the advantages of HOAS within the well-understood setting of higher-order logic as implemented by systems such as Isabelle and Coq. In this paper, we add new capabilities for reasoning by induction on encodings of object-level inference rules. Elegant and succinct specifications of such inference rules can often be given using hypothetical and parametric judgments, which are represented by embedded implication and universal quantification. Induction over such judgments is well-known to be problematic. In previous work, we showed how to express this kind of judgment using a two-level approach, but reasoning by induction on such judgments was restricted to closed terms. The new capabilities we add include techniques for adding arbitrary "new" variables to contexts and inductively reasoning about open terms. Very little overhead is required, namely a small library of definitions and lemmas, yet the reasoning power of the system and the class of properties that can be proved is significantly increased. We illustrate the approach using PCF, a simple programming language that serves as the core of a variety of functional languages. We encode the typing judgment, and prove by induction on this judgment that well-typed PCF terms have unique types.
Amy P. Felty, Alberto Momigliano
PPDP1
2008 Genetic programming with polymorphic types and higher-order functions
abstract
This article introduces our new approach to program rep-resentation for genetic programming (GP). We replace the usual s-expression representation scheme by a strongly-typed abstraction-based representation scheme. This allows us to represent many typical computational structures by abstrac-tions rather than by functions defined in the GP system’s terminal set. The result is a generic GP system that is able to express programming structures such as recursion and data types without explicit definitions. We demonstrate the expressive power of this approach by evolving simple boolean programs without defining a set of terminals. We also evolve programs that exhibit recursive behavior without explicitly defining recursion specific syntax in the terminal set. In this article, we present our approach and experimen-tal results.
Franck Binard, Amy P. Felty
GECCO2
2007 Tutorial Examples of the Semantic Approach to Foundational Proof-Carrying Code
Amy P. Felty
Fundam. Informaticae1
2005 Privacy-Sensitive Information Flow with JML
Guillaume Dufay, Amy P. Felty, Stan Matwin
CADE2
2005 A Tutorial Example of the Semantic Approach to Foundational Proof-Carrying Code
Amy P. Felty
RTA1
2004 Dependent types ensure partial correctness of theorem provers
abstract
Static type systems in programming languages allow many errors to be detected at compile time that wouldn't be detected until runtime otherwise. Dependent types are more expressive than the type systems in most programming languages, so languages that have them should allow programmers to detect more errors earlier. In this paper, using the Twelf system, we show that dependent types in the logic programming setting can be used to ensure partial correctness of programs which implement theorem provers, and thus avoid runtime errors in proof search and proof construction. We present two examples: a tactic-style interactive theorem prover and a union-find decision procedure.
Andrew W. Appel, Amy P. Felty
J. Funct. Program.2
2004 Polymorphic Lemmas and Definitions in lambda-Prolog and Twelf
abstract
$\lambda$ Prolog is known to be well-suited for expressing and implementing logics and inference systems. We show that lemmas and definitions in such logics can be implemented with a great economy of expression. We encode a higher-order logic using an encoding that maps both terms and types of the object logic (higher-order logic) to terms of the metalanguage ( $\lambda$ Prolog). We discuss both the Terzo and Teyjus implementations of $\lambda$ Prolog. We also encode the same logic in Twelf and compare the features of these two metalanguages for our purposes.
Andrew W. Appel, Amy P. Felty
Theory Pract. Log. Program.2
2003 Preface
Amy P. Felty
J. Autom. Reason.1
2003 Feature specification and automated conflict detection
abstract
Large software systems, especially in the telecommunications field, are often specified as a collection of features. We present a formal specification language for describing features, and a method of automatically detecting conflicts ("undesirable interactions") amongst features at the specification stage. Conflict detection at this early stage can help prevent costly and time consuming problem fixes during implementation. Features are specified using temporal logic; two features conflict essentially if their specifications are mutually inconsistent under axioms about the underlying system behavior. We show how this inconsistency check may be performed automatically with existing model checking tools. In addition, the model checking tools can be used to provide witness scenarios, both when two features conflict as well as when the features are mutually consistent. Both types of witnesses are useful for refining the specifications. We have implemented a conflict detection tool, FIX (Feature Interaction eXtractor), which uses the model checker COSPAN for the inconsistency check. We describe our experience in applying this tool to a collection of telecommunications feature specifications obtained from the Telcordia (Bellcore) standards. Using FIX, we were able to detect most known interactions and some new ones, fully automatically, in a few hours processing time.
Amy P. Felty, Kedar S. Namjoshi
ACM Trans. Softw. Eng. Methodol.1
2002 Privacy-Oriented Data Mining by Proof Checking
Amy P. Felty, Stan Matwin
PKDD1
2001 Current Trends in Logical Frameworks and Metalanguages
David A. Basin, Amy P. Felty
J. Autom. Reason.2
2000 A Semantic Model of Types and Machine Instructions for Proof-Carrying Code
abstract
Proof-carrying code is a framework for proving the safety of machine-language programs with a machinecheckable proof. Such proofs have previously defined type-checking rules as part of the logic. We show a universal type framework for proof-carrying code that will allow a code producer to choose a programming language, prove the type rules for that language as lemmas in higher-order logic, then use those lemmas to prove the safety of a particular program. We show how to handle traversal, allocation, and initialization of values in a wide variety of types, including functions, records, unions, existentials, and covariant recursive types. 1 Introduction When a host computer runs an untrusted program, the host may want some assurance that the program does no harm: does not access unauthorized resources, read private data, or overwrite valuable data. Proof-carrying code [Nec97] is a technique for providing such assurances. With PCC, the host -- called the "code consumer" -- specifies a sa...
Andrew W. Appel, Amy P. Felty
POPL2
2000 The calculus of constructions as a framework for proof search with set variable instantiation
abstract
We show how a procedure developed by Bledsoe for automatically finding substitution instances for set variables in higher-order logic can be adapted to provide increased automation in proof search in the Calculus of Constructions (CC). Bledsoe's procedure operates on an extension of first-order logic that allows existential quantification over set variables. This class of variables can also be identified in CC. The existence of a correspondence between higher-order logic and higher-order type theories such as CC is well-known. CC can be viewed as an extension of higher-order logic where the basic terms of the language, the simply-typed λ-terms, are replaced with terms containing dependent types. We show how Bledsoe's techniques can be incorporated into a reformulation of a search procedure for CC given by Dowek and extended to handle terms with dependent types. We introduce a notion of search context for CC which allows us to separate the operations of assumption introduction and backchaining. Search contexts allow a smooth integration of the step which finds solutions to set variables. We discuss how the procedure can be restricted to obtain procedures for set variable instantiation in sublanguages of CC such as the Logical Framework (LF) and higher-order hereditary Harrop formulas (hohh). The latter serves as the logical foundation of the λProlog logic programming language.
Amy P. Felty
Theor. Comput. Sci.1
1999 Formal Metatheory using Implicit Syntax, and an Application to Data Abstraction for Asynchronous Systems
Amy P. Felty, Douglas J. Howe, Abhik Roychoudhury
CADE1
1999 Lightweight Lemmas in lambda-Prolog
Andrew W. Appel, Amy P. Felty
ICLP2
1999 Cache Coherency in SCI: Specification and a Sketch of Correctness
abstract
Abstract. SCI – Scalable Coherent Interface – is an IEEE standard for specifying communication between multiprocessors in a shared memory model. In this paper we model part of SCI by a program written in a UNITY-like programming language. This part of SCI is formally specified in Manna and Pnueli's Linear Time Temporal Logic (LTL). We give a sketch of our proof that the program satisfies its specification. The proof has been carried out within LTL. It uses history variables. Structuring of the proof has been achieved by careful formulation of lemmata and the use of auxiliary predicates as an abstraction mechanism.
Amy P. Felty, Frank A. Stomp
Formal Aspects Comput.1
1998 Protocol Verification in Nuprl
Amy P. Felty, Douglas J. Howe, Frank A. Stomp
CAV1
1997 Hybrid Interactive Theorem Proving Using Nuprl and HOL
Amy P. Felty, Douglas J. Howe
CADE1
1997 Interactive Theorem Proving with Temporal Logic
Amy P. Felty, Laurent Théry
J. Symb. Comput.1
1996 Proof Search with Set Variable Instantiation in the Calculus of Constructions
Amy P. Felty
CADE1
1994 Tactic Theorem Proving with Refinement-Tree Proofs and Metavariables
Amy P. Felty, Douglas J. Howe
CADE1
1994 Generalization and Reuse of Tactic Proofs
Amy P. Felty, Douglas J. Howe
LPAR1
1993 Encoding the Calculus of Constructions in a Higher-Order Logic
abstract
The author presents an encoding of the calculus of constructions (CC) in a higher-order intuitionistic logic (I) in a direct way, so that correct typing in CC corresponds to intuitionistic provability in a sequent calculus for I. In addition, she demonstrates a direct correspondence between proofs in these two systems. The logic I is an extension of hereditary Harrop formulas (hh), which serve as the logical foundation of the logic programming language lambda Prolog. Like hh, I has the uniform proof property, which allows a complete nondeterministic search procedure to be described in a straightforward manner. Via the encoding, this search procedure provides a goal directed description of proof checking and proof search in CC.>
Amy P. Felty
LICS1
1993 Implementing Tactics and Tacticals in a Higher-Order Logic Programming Language
Amy P. Felty
J. Autom. Reason.1
1990 Tutorial on Lambda-Prolog
Amy P. Felty, Elsa L. Gunter, Dale Miller 0001, Frank Pfenning
CADE1
1990 Encoding a Dependent-Type Lambda-Calculus in a Logic Programming Language
Amy P. Felty, Dale Miller 0001
CADE1
1988 Lambda-Prolog: An Extended Logic Programming Language
Amy P. Felty, Elsa L. Gunter, John Hannan, Dale Miller 0001, Gopalan Nadathur, Andre Scedrov
CADE1
1988 Specifying Theorem Provers in a Higher-Order Logic Programming Language
Amy P. Felty, Dale Miller 0001
CADE1
1986 An Integration of Resolution and Natural Deduction Theorem Proving
Dale Miller 0001, Amy P. Felty
AAAI2