Andy King

dblp:k/AndyKing · DBLP profile ↗
← Back
66ranked-venue papers
11as first author
6since 2021 · last 2025
0000-0001-5806-4822ORCID · verified

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

Software engineering, systems software and programming languages · 51 · 10 first-author · 3 since 2021Theory of computation · 24 · 6 first-author · 2 since 2021Artificial intelligence and machine learning · 2Systems, architecture and hardware · 2Databases, data management, data science and information retrieval · 1
YearPublicationVenuePosition
2025 Abstract Subtyping for Asynchronous Multiparty Sessions
abstract
Session subtyping answers the question of whether a program in a communicating system can be safely substituted for another, when their communication behaviour is described by session types. Asynchronous session subtyping is undecidable, even for two participants, hence the interest in sound, but incomplete, subtyping algorithms. Asynchronous multiparty subtyping can be formulated by decomposing session types into single input and output types which preclude, respectively, external and internal choice. This paper shows how abstract interpretation can sit atop this approach and how it leads to an algorithm that can prove subtyping for intricate communication patterns.
Laura Bocchi, Andy King, Maurizio Murgia 0001, Simon J. Thompson
CONCUR2
2025 Timeout Asynchronous Session Types: Safe Asynchronous Mixed-Choice For Timed Interactions
abstract
Mixed-choice has long been barred from models of asynchronous communication since it compromises the decidability of key properties of communicating finite-state machines. Session types inherit this restriction, which precludes them from fully modelling timeouts -- a core property of web and cloud services. To address this deficiency, we present (binary) Timeout Asynchronous Session Types (TOAST) as an extension to (binary) asynchronous timed session types, that permits mixed-choice. TOAST deploys timing constraints to regulate the use of mixed-choice so as to preserve communication safety. We provide a new behavioural semantics for TOAST which guarantees progress in the presence of mixed-choice. Building upon TOAST, we provide a calculus featuring process timers which is capable of modelling timeouts using a receive-after pattern, much like Erlang, and capture the correspondence with TOAST specifications via a type system for which we prove subject reduction.
Jonah Pears, Laura Bocchi, Maurizio Murgia 0001, Andy King
Log. Methods Comput. Sci.4
2024 Asynchronous Subtyping by Trace Relaxation
abstract
Abstract Session subtyping answers the question of whether a program in a communicating system can be safely substituted for another, when their communication behaviours are described by session types. Asynchronous session subtyping is undecidable, hence the interest in devising sound, although incomplete, subtyping algorithms. State-of-the-art algorithms are formulated in terms of a data-structure called input trees. We show how input trees can be replaced by sets of traces, which opens up opportunities for applying techniques abstract interpretation techniques to the problem of asynchronous session subtyping. Sets of traces can be relaxed (enlarged) whilst still allowing subtyping to be observed, and one can choose relaxations that can be finitely represented, even when the input trees are arbitrarily large. We instantiate this strategy using regular expressions and show that it allows subtyping to be mechanically proven for communication patterns that were previously out of reach.
Laura Bocchi, Andy King, Maurizio Murgia 0001
TACAS (1)2
2023 Safe Asynchronous Mixed-Choice for Timed Interactions
Jonah Pears, Laura Bocchi, Andy King
COORDINATION3
2023 Polynomial Analysis of Modular Arithmetic
Thomas Seed, Chris Coppins, Andy King, Neil Evans
SAS3
2021 Backjumping is Exception Handling
abstract
Abstract ISO Prolog provides catch and throw to realize the control flow of exception handling. This pearl demonstrates that catch and throw are inconspicuously amenable to the implementation of backjumping. In fact, they have precisely the semantics required: rewinding the search to a specific point and carrying of a preserved term to that point. The utility of these properties is demonstrated through an implementation of graph coloring with backjumping and a backjumping SAT solver that applies conflict-driven clause learning.
Edward Robbins 0001, Andy King, Jacob M. Howe
Theory Pract. Log. Program.2
2020 Reducing Bit-Vector Polynomials to SAT Using Gröbner Bases
Thomas Seed, Andy King, Neil Evans
SAT2
2020 Mind the Gap: Bit-vector Interpolation recast over Linear Integer Arithmetic
abstract
Much of an interpolation engine for bit-vector (BV) arithmetic can be constructed by observing that BV arithmetic can be modeled with linear integer arithmetic (LIA). Two BV formulae can thus be translated into two LIA formulae and then an interpolation engine for LIA used to derive an interpolant, albeit one expressed in LIA. The construction is completed by back-translating the LIA interpolant into a BV formula whose models coincide with those of the LIA interpolant. This paper develops a back-translation algorithm showing, for the first time, how back-translation can be universally applied, whatever the LIA interpolant. This avoids the need for deriving a BV interpolant by bit-blasting the BV formulae, as a backup process when back-translation fails. The new back-translation process relies on a novel geometric technique, called gapping, the correctness and practicality of which are demonstrated.
Takamasa Okudono, Andy King
TACAS (1)2
2019 Incrementally closing octagons
abstract
The octagon abstract domain is a widely used numeric abstract domain expressing relational information between variables whilst being both computationally efficient and simple to implement. Each element of the domain is a system of constraints where each constraint takes the restricted form $$\pm \, x_i \pm x_j \le c$$ ±xi±xj≤c. A key family of operations for the octagon domain are closure algorithms, which check satisfiability and provide a normal form for octagonal constraint systems. We present new quadratic incremental algorithms for closure, strong closure and integer closure and proofs of their correctness. We highlight the benefits and measure the performance of these new algorithms.
Aziem Chawdhary, Edward Robbins 0001, Andy King
Formal Methods Syst. Des.3
2019 Incremental Closure for Systems of Two Variables Per Inequality
abstract
Subclasses of linear inequalities where each inequality has at most two variables are popular in abstract interpretation and model checking, because they strike a balance between what can be described and what can be efficiently computed. This paper focuses on the TVPI class of inequalities, for which each coefficient of each two variable inequality is unrestricted. An implied TVPI inequality can be generated from a pair of TVPI inequalities by eliminating a given common variable (echoing resolution on clauses). This operation, called result, can be applied to derive TVPI inequalities which are entailed (implied) by a given TVPI system. The key operation on TVPI is calculating closure: satisfiability can be observed from a closed system and a closed system also simplifies the calculation of other operations. A closed system can be derived by repeatedly applying the result operator. The process of adding a single TVPI inequality to an already closed input TVPI system and then finding the closure of this augmented system is called incremental closure. This too can be calculated by the repeated application of the result operator. This paper studies the calculus defined by result, the structure of result derivations, and how derivations can be combined and controlled. A series of lemmata on derivations are presented that, collectively, provide a pathway for synthesising an algorithm for incremental closure. The complexity of the incremental closure algorithm is analysed and found to be O((n2+m2)lg⁡(m)), where n is the number of variables and m the number of inequalities of the input TVPI system.
Jacob M. Howe, Andy King, Axel Simon
Theor. Comput. Sci.2
2018 Closing the Performance Gap Between Doubles and Rationals for Octagons
Aziem Chawdhary, Andy King
SAS2
2018 Preface: Functional and Logic Programming (FLOPS 2016)
Oleg Kiselyov, Andy King
Sci. Comput. Program.2
2017 Compact Difference Bound Matrices
Aziem Chawdhary, Andy King
APLAS2
2017 Theory learning with symmetry breaking
abstract
This paper investigates the use of a Prolog coded SMT solver in tackling a well known constraints problem, namely packing a given set of consecutive squares into a given rectangle, and details the developments in the solver that this motivates. The packing problem has a natural model in the theory of quantifier-free integer difference logic, a theory supported by many SMT solvers. The solver used in this work exploits a data structure consisting of an incremental Floyd-Warshall matrix paired with a watch matrix that monitors the entailment status of integer difference constraints. It is shown how this structure can be used to build unsatisfiable theory cores on the fly, which in turn allows theory learning to be incorporated into the solver. Further, it is shown that a problem-specific and non-standard approach to learning can be taken where symmetry breaking is incorporated into the learning stage, magnifying the effect of learning. It is argued that the declarative framework allows the solver to be used in this white box manner and is a strength of the solver. The approach is experimentally evaluated.
Jacob M. Howe, Edward Robbins 0001, Andy King
PPDP3
2017 Partial evaluation of string obfuscations for Java malware detection
abstract
Abstract The fact that Java is platform independent gives hackers the opportunity to write exploits that can target users on any platform, which has a JVM implementation. Metasploit is a well-known source of Java exploits and to circumvent detection by anti virus (AV) software, obfuscation techniques are routinely applied to make an exploit more difficult to recognise. Popular obfuscation techniques for Java include string obfuscation and applying reflection to hide method calls; two techniques that can either be used together or independently. This paper shows how to apply partial evaluation to remove these obfuscations and thereby improve AV matching. The paper presents a partial evaluator for Jimple, which is an intermediate language for JVM bytecode designed for optimisation and program analysis, and demonstrates how partially evaluated Jimple code, when transformed back into Java, improves the detection rates of a number of commercial AV products.
Aziem Chawdhary, Ranjeet Singh, Andy King
Formal Aspects Comput.3
2017 Optimising the Volgenant-Jonker algorithm for approximating graph edit distance
abstract
Although it is agreed that the Volgenant–Jonker (VJ) algorithm provides a fast way to approximate graph edit distance (GED), until now nobody has reported how the VJ algorithm can be tuned for this task. To this end, we revisit VJ and propose a series of refinements that improve both the speed and memory footprint without sacrificing accuracy in the GED approximation . We quantify the effectiveness of these optimisations by measuring distortion between control–flow graphs: a problem that arises in malware matching. We also document an unexpected behavioural property of VJ in which the time required to find shortest paths to unassigned vertices decreases as graph size increases, and explain how this phenomenon relates to the birthday paradox.
Aziem Chawdhary, Andy King
Pattern Recognit. Lett.3
2016 From MinX to MinC: semantics-driven decompilation of recursive datatypes
abstract
Reconstructing the meaning of a program from its binary executable is known as reverse engineering; it has a wide range of applications in software security, exposing piracy, legacy systems, etc. Since reversing is ultimately a search for meaning, there is much interest in inferring a type (a meaning) for the elements of a binary in a consistent way. Unfortunately existing approaches do not guarantee any semantic relevance for their reconstructed types. This paper presents a new and semantically-founded approach that provides strong guarantees for the reconstructed types. Key to our approach is the derivation of a witness program in a high-level language alongside the reconstructed types. This witness has the same semantics as the binary, is type correct by construction, and it induces a (justifiable) type assignment on the binary. Moreover, the approach effectively yields a type-directed decompiler. We formalise and implement the approach for reversing MinX, an abstraction of x86, to MinC, a type-safe dialect of C with recursive datatypes. Our evaluation compiles a range of textbook C algorithms to MinX and then recovers the original structures.
Edward Robbins 0001, Andy King, Tom Schrijvers
POPL2
2016 Introduction to the 32nd International Conference on Logic Programming Special Issue
abstract
The main track of the Thirty Second International Conference on Logic Programming (ICLP) took place in New York City, USA, from the 18th to the 21st October 2016. It seems fitting to hold a significant, power of two, ICLP in New York because the city has a long and distinguished association with logic programming: XSB was developed at Stony Brook, as was HiLog before that, and SB-Prolog before that. Moreover, Picat was developed at the City University of New York, as was B-Prolog, and other logic programming-based systems, such as Ergo. New York has also been (and is) the cradle of several start-ups based on logic programming.
Manuel Carro, Andy King
Theory Pract. Log. Program.2
2015 Theory propagation and reification
Edward Robbins 0001, Jacob M. Howe, Andy King
Sci. Comput. Program.3
2014 Simple and Efficient Algorithms for Octagons
Aziem Chawdhary, Edward Robbins 0001, Andy King
APLAS3
2014 Partial Evaluation for Java Malware Detection
Ranjeet Singh, Andy King
LOPSTR2
2014 Preface for SCP special issue on Principles and Practice of Declarative Programming
Andy King
Sci. Comput. Program.1
2013 Proofs you can believe in: proving equivalences between Prolog semantics in Coq
abstract
Basing program analyses on formal semantics has a long and successful tradition in the logic programming paradigm. These analyses rely on results about the relative correctness of mathematically sophisticated semantics, and authors of such analyses often invest considerable effort into establishing these results. The development of interactive theorem provers such as Coq and their recent successes both in the field of program verification as well as in mathematics, poses the question whether these tools can be usefully deployed in logic programming. This paper presents formalisations in Coq of several general results about the correctness of semantics in different styles; forward and backward, top-down and bottom-up. The results chosen are paradigmatic of the kind of correctness theorems that semantic analyses rely on and are therefore well-suited to explore the possibilities afforded by the application of interactive theorem provers to this task, as well as the difficulties likely to be encountered in the endeavour. It turns out that the advantages offered by moving to a functional setting, including the possibility to apply higher-order abstract syntax, are considerable.
Jael Kriener, Andy King, Sandrine Blazy
PPDP2
2013 Theory propagation and rational-trees
abstract
SAT Modulo Theories (SMT) is the problem of determining the satisfiability of a formula in which constraints, drawn from a given constraint theory T, are composed with logical connectives. The DPLL(T) approach to SMT has risen to prominence as a technique for solving these quantifier-free problems. The key idea in DPLL(T) is to closely couple unit propagation in the propositional part of the problem with theory propagation in the constraint component. In this paper it is demonstrated how reification provides a natural way for orchestrating this in the setting of logic programming. This allows an elegant implementation of DPLL(T) solvers in Prolog. The work is motivated by a problem in reverse engineering, that of type recovery from binaries. The solution to this problem requires an SMT solver where the theory is that of rational-tree constraints, a theory not supported in off-the-shelf SMT solvers, but realised as unification in many Prolog systems. The solver is benchmarked against a number of type recovery problems, and compared against a lazy-basic SMT solver built on PicoSAT.
Edward Robbins 0001, Jacob M. Howe, Andy King
PPDP3
2013 Abstract interpretation of microcontroller code: Intervals meet congruences
Jörg Brauer, Andy King, Stefan Kowalewski
Sci. Comput. Program.2
2012 Range Analysis of Binaries with Minimal Effort
Edd Barrett, Andy King
FMICS2
2012 Loop Leaping with Closures
Sebastian Biallas, Jörg Brauer, Andy King, Stefan Kowalewski
SAS3
2012 Polyhedral Analysis Using Parametric Objectives
Jacob M. Howe, Andy King
SAS2
2012 A pearl on SAT and SMT solving in Prolog
Jacob M. Howe, Andy King
Theor. Comput. Sci.2
2011 Existential Quantification as Incremental SAT
Jörg Brauer, Andy King, Jael Kriener
CAV2
2011 Transfer Function Synthesis without Quantifier Elimination
Jörg Brauer, Andy King
ESOP2
2011 RedAlert: Determinacy inference for Prolog
abstract
Abstract This paper revisits the problem of determinacy inference addressing the problem of how to uniformly handlecut. To this end a new semantics is introduced forcut, which is abstracted to systematically derive a backward analysis that derives conditions sufficient for a goal to succeed at most once. The method is conceptionally simpler and easier to implement than the existing techniques, while improving the latter's handling ofcut. Formal arguments substantiate correctness and experimental work, and a tool called ‘RedAlert’ demonstrates the method's generality and applicability.
Jael Kriener, Andy King
Theory Pract. Log. Program.2
2010 Range Analysis of Microcontroller Code Using Bit-Level Congruences
Jörg Brauer, Andy King, Stefan Kowalewski
FMICS2
2010 Automatic Abstraction for Intervals Using Boolean Formulae
Jörg Brauer, Andy King
SAS2
2010 Automatic Abstraction for Congruences
Andy King, Harald Søndergaard
VMCAI1
2009 Integer Polyhedra for Program Analysis
Philip J. Charles, Jacob M. Howe, Andy King
AAIM3
2009 Logahedra: A New Weakly Relational Domain
Jacob M. Howe, Andy King
ATVA2
2009 Untangling Reverse Engineering with Logic and Abstraction
Andy King
ICLP1
2008 Inferring Congruence Equations Using SAT
Andy King, Harald Søndergaard
CAV1
2008 An Anytime Algorithm for Generalized Symmetry Detection in ROBDDs
abstract
Detecting symmetries have many applications in logic synthesis, which include, among other things, technology mapping, deciding equivalence of Boolean functions when the input correspondence is unknown, and finding support-reducing bound sets. Mishchenko showed how to efficiently detect symmetries in reduced ordered binary decision diagrams (ROBDDs) without the need for checking equivalence of all cofactor pairs. This work resulted in practical algorithms for detecting classical and generalized symmetries. Both the classical and generalized symmetry-detection algorithms are monolithic in the sense that they only return a meaningful answer when they are left to run to completion. In this paper, we present anytime algorithms for detecting both classical and generalized symmetries, which output pairs of symmetric variables until a prescribed time bound is exceeded. These anytime algorithms are complete in that, given sufficient time, they are guaranteed to find all symmetric pairs. Anytime generality is not gained at the expense of efficiency because this approach requires only very modest data-structure support and offers unique opportunities for optimization, so that the resulting algorithms are competitive with their monolithic counterparts.
Neil Kettle, Andy King
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.2
2008 Inferring non-suspension conditions for logic programs with dynamic scheduling
abstract
A logic program consists of a logic component and a control component. The former is a specification in predicate logic whereas the latter defines the order of subgoal selection. The order of subgoal selection is often controlled with delay declarations that specify that a subgoal is to suspend until some condition on its arguments is satisfied. Reasoning about delay declarations is notoriously difficult for the programmer and it is not unusual for a program and a goal to reduce to a state that contains a subgoal that suspends indefinitely. Suspending subgoals are usually unintended and often indicate an error in the logic or the control. A number of abstract interpretation schemes have therefore been proposed for checking that a given program and goal cannot reduce to such a state. This article considers a reversal of this problem, advocating an analysis that for a given program infers a class of goals that do not lead to suspension. This article shows that this more general approach can have computational, implementational and user-interface advantages. In terms of user-interface, this approach leads to a lightweight point-and-click mode of operation in which, after directing the analyser at a file, the user merely has to inspect the results inferred by the analysis. In terms of implementation, the analysis can be straightforwardly realized as two simple fixpoint computations. In terms of computation, by modeling n ! different schedulings of n subgoals with a single Boolean function, it is possible to reason about the suspension behavior of large programs. In particular, the analysis is fast enough to be applied repeatedly within the program development cycle. The article also demonstrates that the method is precise enough to locate bugs in existing programs.
Samir Genaim, Andy King
ACM Trans. Comput. Log.2
2007 Taming the Wrapping of Integer Arithmetic
Axel Simon, Andy King
SAS2
2006 Widening Polyhedra with Landmarks
Axel Simon, Andy King
APLAS2
2006 An anytime symmetry detection algorithm for ROBDDs
abstract
Detecting symmetries is crucial to logic synthesis, technology mapping, detecting function equivalence under unknown input correspondence, and ROBDD minimization. State-of-the-art is represented by Mishchenko's algorithm. In this paper, we present an efficient anytime algorithm for detecting symmetries in Boolean functions represented as ROBDDs, that output pairs of symmetric variables until a prescribed time bound is exceeded. The algorithm is complete in that given sufficient time it is guaranteed to find all symmetric pairs. The complexity of this algorithm is in O(n4+ n|G| + |G|3) where n is the number of variables and |G| the number of nodes in the ROBDD, and it is thus competitive with Mishchenko's O(|G|3) algorithm in the worst-case since n Lt |G|. However, our algorithm performs significantly better because the anytime approach only requires lightweight data structure support and it offers unique opportunities for optimization
Neil Kettle, Andy King
ASP-DAC2
2006 Detecting Determinacy in Prolog Programs
Andy King, Lunjin Lu, Samir Genaim
ICLP1
2006 Collapsing Closures
abstract
A description in the Jacobs and Langen domain is a set of sharing groups where each sharing group is a set of program variables. The presence of a sharing group in a description indicates that all the variables in the group can be bound to terms that contain a common variable. The expressiveness of the domain, alas, is compromised by its intractability. Not only are descriptions potentially exponential in size, but abstract unification is formulated in terms of an operation, called closure under union, that is also exponential. This paper shows how abstract unification can be reformulated so that closures can be collapsed in two senses. Firstly, one closure operation can be folded into another so as to reduce the total number of closures that need to be computed. Secondly, the remaining closures can be applied to smaller descriptions. Therefore, although the operation remains exponential, the overhead of closure calculation is reduced. Experimental evaluation suggests that the cost of analysis can be substantially reduced by collapsing closures.
Andy King, Lunjin Lu
ICLP2
2006 Widening ROBDDs with Prime Implicants
Neil Kettle, Andy King, Tadeusz Strzemecki
TACAS2
2006 Control Generation by Program Transformation
Andy King, Jonathan C. Martin
Fundam. Informaticae1
2005 Determinacy Inference for Logic Programs
Lunjin Lu, Andy King
ESOP2
2005 Exploiting Sparsity in Polyhedral Analysis
Axel Simon, Andy King
SAS2
2005 Computing convex hulls with a linear solver
abstract
A programming tactic involving polyhedra is reported that has been widely applied in the polyhedral analysis of (constraint) logic programs. The method enables the computations of convex hulls that are required for polyhedral analysis to be coded with linear constraint solving machinery that is available in many Prolog systems.
Florence Benoy, Andy King, Frédéric Mesnard
Theory Pract. Log. Program.2
2003 Goal-Independent Suspension Analysis for Logic Programs with Dynamic Scheduling
Samir Genaim, Andy King
ESOP2
2003 Forward versus Backward Verification of Logic Programs
Andy King, Lunjin Lu
ICLP1
2003 Efficient Groundness Analysis in Prolog
abstract
Boolean functions can be used to express the groundness of, and trace grounding dependencies between, program variables in (constraint) logic programs. In this paper, a variety of issues pertaining to the efficient Prolog implementation of groundness analysis are investigated, focusing on the domain of definite Boolean functions, Def. The systematic design of the representation of an abstract domain is discussed in relation to its impact on the algorithmic complexity of the domain operations; the most frequently called operations should be the most lightweight. This methodology is applied to Def, resulting in a new representation, together with new algorithms for its domain operations utilising previously unexploited properties of Def – for instance, quadratic-time entailment checking. The iteration strategy driving the analysis is also discussed and a simple, but very effective, optimisation of induced magic is described. The analysis can be implemented straightforwardly in Prolog and the use of a non-ground representation results in an efficient, scalable tool which does not require widening to be invoked, even on the largest benchmarks. An extensive experimental evaluation is given.
Jacob M. Howe, Andy King
Theory Pract. Log. Program.2
2003 Three Optimisations for Sharing
abstract
To improve precision and efficiency, sharing analysis should track both freeness and linearity. The abstract unification algorithms for these combined domains are suboptimal, hence there is scope for improving precision. This paper proposes three optimisations for tracing sharing in combination with freeness and linearity. A novel connection between equations and sharing abstractions is used to establish correctness of these optimisations even in the presence of rational trees. A method for pruning intermediate sharing abstractions to improve efficiency is also proposed. The optimisations are lightweight and therefore some, if not all, of these optimisations will be of interest to the implementor.
Jacob M. Howe, Andy King
Theory Pract. Log. Program.2
2002 Backward Type Inference Generalises Type Checking
Lunjin Lu, Andy King
SAS2
2002 A Backward Analysis for Constraint Logic Programs
abstract
One recurring problem in program development is that of understanding how to re-use code developed by a third party. In the context of (constraint) logic programming, part of this problem reduces to figuring out how to query a program. If the logic program does not come with any documentation, then the programmer is forced to either experiment with queries in an ad hoc fashion or trace the control-flow of the program (backward) to infer the modes in which a predicate must be called so as to avoid an instantiation error. This paper presents an abstract interpretation scheme that automates the latter technique. The analysis presented in this paper can infer moding properties which if satisfied by the initial query, come with the guarantee that the program and query can never generate any moding or instantiation errors. Other applications of the analysis are discussed. The paper explains how abstract domains with certain computational properties (they condense) can be used to trace control-flow backward (right-to-left) to infer useful properties of initial queries. A correctness argument is presented and an implementation is reported.
Andy King, Lunjin Lu
Theory Pract. Log. Program.1
2001 Positive Boolean Functions as Multiheaded Clauses
Jacob M. Howe, Andy King
ICLP2
2001 Verifying Termination and Error-Freedom of Logic Programs with block Declarations
abstract
We present verification methods for logic programs with delay declarations. The verified properties are termination and freedom from errors related to built-ins. Concerning termination, we present two approaches. The first approach tries to eliminate the well-known problem of speculative output bindings. The second approach is based on identifying the predicates for which the textual position of an atom using this predicate is irrelevant with respect to termination. Three features are distinctive of this work: it allows for predicates to be used in several modes; it shows that block declarations, which are a very simple delay construct, are sufficient to ensure the desired properties; it takes the selection rule into account, assuming it to be as in most Prolog implementations. The methods can be used to verify existing programs and assist in writing new programs.
Jan-Georg Smaus, Patricia M. Hill, Andy King
Theory Pract. Log. Program.3
2000 Abstract Domains for Universal and Existential Properties
Andrew Heaton, Patricia M. Hill, Andy King
ESOP3
2000 Implementing Groundness Analysis with Definite Boolean Functions
Jacob M. Howe, Andy King
ESOP2
2000 Abstracting numeric constraints with Boolean functions
Jacob M. Howe, Andy King
Inf. Process. Lett.2
1999 Quotienting Share for Dependency Analysis
Andy King, Jan-Georg Smaus, Patricia M. Hill
ESOP1
1997 Domain Construction for Mode Analysis of Typed Logic Programs
Jan-Georg Smaus, Patricia M. Hill, Andy King
ICLP3
1994 A Synergistic Analysis for Sharing and Groundness with Traces Linearity
Andy King
ESOP1
1994 Depth-k Sharing and Freeness
Andy King, Paul Soper
ICLP1