Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Michael Codish

dblp:c/MCodish · DBLP profile ↗
← Back
69ranked-venue papers
43as first author
5since 2021 · last 2025
0000-0003-0394-5854ORCID · verified

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

Software engineering, systems software and programming languages · 40 · 27 first-author · 1 since 2021Theory of computation · 31 · 23 first-authorArtificial intelligence and machine learning · 20 · 9 first-author · 5 since 2021Graphics, computer vision, multimedia, augmented reality and games · 6 · 2 first-author · 2 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Theoretical computer science
10 papers
Automated reasoning and model checking · 36% Logic in computer science · 28% Distributed computing theory · 15%
Software engineering, system software, and programming languages
9 papers
Program analysis · 44% Programming languages and type systems · 39% Program verification · 16%
Artificial intelligence
1 paper
Planning, search and constraint satisfaction · 100%

Topics — the 30 heaviest of 37, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Automated reasoning and model checking
satisfiability
1.032024
SAT-Based Techniques for Lexicographically Smallest Finite Models · AAAI 2024
Compiling Model-Based Diagnosis to Boolean Satisfaction · AAAI 2012
The DNA Word Design Problem: A New Constraint Model and New Results · IJCAI 2017
Distributed computing theory
symmetry breaking
0.922025
Complete Symmetry Breaking for Finite Models · AAAI 2025
Breaking Symmetries in Graph Representation · IJCAI 2013
Automated reasoning and model checking › automated reasoning › model finding
finite model finding
0.912025
Complete Symmetry Breaking for Finite Models · AAAI 2025
Logic in computer science
first-order logic
0.912025
Complete Symmetry Breaking for Finite Models · AAAI 2025
Logic in computer science
finite model theory
0.812024
SAT-Based Techniques for Lexicographically Smallest Finite Models · AAAI 2024
Knowledge, reasoning and agents › Planning, search and constraint satisfaction › constraint satisfaction
symmetry breaking
0.412020
Incremental Symmetry Breaking Constraints for Graph Search Problems · AAAI 2020
Graph algorithms and graph theory › graph algorithms
graph search
0.412020
Incremental Symmetry Breaking Constraints for Graph Search Problems · AAAI 2020
Graph algorithms and graph theory
graph representation
0.212013
Breaking Symmetries in Graph Representation · IJCAI 2013
Automated reasoning and model checking › diagnosis
model-based diagnosis
0.112012
Compiling Model-Based Diagnosis to Boolean Satisfaction · AAAI 2012
Automated reasoning and model checking › satisfiability
SAT encoding
0.112012
Compiling Model-Based Diagnosis to Boolean Satisfaction · AAAI 2012
Program analysis › static analysis
abstract interpretation
0.152007
Termination analysis of logic programs through combination of type-based norms · ACM Trans. Program. Lang. Syst. 2007
Sharing and groundness dependencies in logic programs · ACM Trans. Program. Lang. Syst. 1999
Improving Abstract Interpretations by Combining Domains · ACM Trans. Program. Lang. Syst. 1995
Mathematical optimization › constraint programming
constraint modeling
0.112017
The DNA Word Design Problem: A New Constraint Model and New Results · IJCAI 2017
Computational complexity
constraint satisfaction
0.112017
The DNA Word Design Problem: A New Constraint Model and New Results · IJCAI 2017
Program verification
termination analysis
0.112007
Termination analysis of logic programs through combination of type-based norms · ACM Trans. Program. Lang. Syst. 2007
Programming languages and type systems
logic programming
0.041995
Improving Abstract Interpretations by Combining Domains · ACM Trans. Program. Lang. Syst. 1995
Oracle Semantics for Prolog · Inf. Comput. 1995
Modeling Prolog Control · POPL 1992
Program analysis › heap analysis
sharing analysis
0.021999
Sharing and groundness dependencies in logic programs · ACM Trans. Program. Lang. Syst. 1999
Improving Abstract Interpretations by Combining Domains · ACM Trans. Program. Lang. Syst. 1995
Programming languages and type systems › logic programming
prolog
0.021995
Oracle Semantics for Prolog · Inf. Comput. 1995
Modeling Prolog Control · POPL 1992
Program analysis
static analysis
0.021995
Efficient Analysis of Concurrent Constraint Logic Programs · ICALP 1993
Improving Abstract Interpretations by Combining Domains · ACM Trans. Program. Lang. Syst. 1995
Logic in computer science
semantics
0.011995
Oracle Semantics for Prolog · Inf. Comput. 1995
Programming languages and type systems › logic programming
concurrent logic programming
0.011994
Suspension Analyses for Concurrent Logic Programs · ACM Trans. Program. Lang. Syst. 1994
Programming languages and type systems › language semantics › formal semantics › operational semantics
state transition semantics
0.011994
Suspension Analyses for Concurrent Logic Programs · ACM Trans. Program. Lang. Syst. 1994
Program analysis › static analysis › interprocedural analysis
compositional analysis
0.011993
Compositional Analysis of Modular Logic Programs · POPL 1993
Program analysis › static analysis
logic program analysis
0.011993
Compositional Analysis of Modular Logic Programs · POPL 1993
Logic in computer science › program semantics
operational semantics
0.011992
Modeling Prolog Control · POPL 1992
Logic in computer science
program semantics
0.011992
Modeling Prolog Control · POPL 1992
Coding theory
boolean functions
0.011999
Sharing and groundness dependencies in logic programs · ACM Trans. Program. Lang. Syst. 1999
Computational complexity › boolean function analysis
monotone boolean function
0.011999
Sharing and groundness dependencies in logic programs · ACM Trans. Program. Lang. Syst. 1999
Programming languages and type systems › logic programming › concurrent logic programming
concurrent prolog
0.011988
Fully Abstract Denotational Semantics for Flat Concurrent Prolog · LICS 1988
Programming languages and type systems › language semantics › formal semantics
denotational semantics
0.011988
Fully Abstract Denotational Semantics for Flat Concurrent Prolog · LICS 1988
Programming languages and type systems › program equivalence
full abstraction
0.011988
Fully Abstract Denotational Semantics for Flat Concurrent Prolog · LICS 1988

Methods — techniques the papers use, named apart from their topics

symmetry breaking · 1.0model counting · 0.9SAT solving · 0.9parallel search · 0.9incremental symmetry breaking constraints · 0.9propagation technique · 0.8SAT solver · 0.8clustering · 0.3boolean satisfiability solving · 0.3preprocessing · 0.1abstract interpretation · 0.1type-based norms · 0.1reduced product · 0.0domain factorization · 0.0binary decision diagrams · 0.0operational semantics · 0.0denotational semantics · 0.0
YearPublicationVenuePosition
2025 Complete Symmetry Breaking for Finite Models
abstract
This paper introduces a SAT-based technique that calculates a compact and complete symmetry-break for finite model finding, with the focus on structures with a single binary operation (magmas). Classes of algebraic structures are typically described as first-order logic formulas and the concrete algebras are models of these formulas. Such models include an enormous number of isomorphic, i.e. symmetric, algebras. A complete symmetry-break is a formula that has as models, exactly one canonical representative from each equivalence class of algebras. Thus, we enable answering questions about properties of the models so that computation and search are restricted to the set of canonical representations. For instance, we can answer the question: How many non-isomorphic semigroups are there of size n? Such questions can be answered by counting the satisfying assignments of a SAT formula, which already filters out non-isomorphic models. The introduced technique enables us calculating numbers of algebraic structures not present in the literature and going beyond the possibilities of pure enumeration approaches.
Marek Danco, Mikolás Janota, Michael Codish, João Jorge Araújo
AAAI3
2025 Breaking Symmetries with Involutions
abstract
Symmetry breaking for graphs and other combinatorial objects is notoriously hard. On the one hand, complete symmetry breaks are exponential in size. On the other hand, current, state-of-the-art, partial symmetry breaks are often considered too weak to be of practical use. Recently, the concept of graph patterns has been introduced and provides a concise representation for (large) sets of non-canonical graphs, i.e.\ graphs that are not lex-leaders and can be excluded from search. In particular, four (specific) graph patterns apply to identify about 3/4 of the set of all non-canonical graphs. Taking this approach further we discover that graph patterns that derive from permutations that are involutions play an important role in the construction of symmetry breaks for graphs. We take advantage of this to guide the construction of partial and complete symmetry breaking constraints based on graph patterns. The resulting constraints are small in size and strong in the number of symmetries they break.
Michael Codish, Mikolás Janota
CP1
2025 Breaking Symmetries from a Set-Covering Perspective
Michael Codish, Mikolás Janota
CPAIOR (1)1
2024 SAT-Based Techniques for Lexicographically Smallest Finite Models
abstract
This paper proposes SAT-based techniques to calculate a specific normal form of a given finite mathematical structure (model). The normal form is obtained by permuting the domain elements so that the representation of the structure is lexicographically smallest possible. Such a normal form is of interest to mathematicians as it enables easy cataloging of algebraic structures. In particular, two structures are isomorphic precisely when their normal forms are the same. This form is also natural to inspect as mathematicians have been using it routinely for many decades. We develop a novel approach where a SAT solver is used in a black-box fashion to compute the smallest representative. The approach constructs the representative gradually and searches the space of possible isomorphisms, requiring a small number of variables. However, the approach may lead to a large number of SAT calls and therefore we devise propagation techniques to reduce this number. The paper focuses on finite structures with a single binary operation (encompassing groups, semigroups, etc.). However, the approach is generalizable to arbitrary finite structures. We provide an implementation of the proposed algorithm and evaluate it on a variety of algebraic structures.
Mikolás Janota, Choiwah Chow, João Araújo 0002, Michael Codish, Petr Vojtechovský
AAAI4
2023 Breaking Symmetries with High Dimensional Graph Invariants and Their Combination
Avraham Itzhakov, Michael Codish
CPAIOR2
2020 Incremental Symmetry Breaking Constraints for Graph Search Problems
abstract
This paper introduces incremental symmetry breaking constraints for graph search problems which are complete and compact. We show that these constraints can be computed incrementally: A symmetry breaking constraint for order n graphs can be extended to one for order n + 1 graphs. Moreover, these constraints induce a special property on their canonical solutions: An order n canonical graph contains a canonical subgraph on the first k vertices for every 1 ≤ k ≤ n. This facilitates a “generate and extend” paradigm for parallel graph search problem solving: To solve a graph search problem φ on order n graphs, first generate the canonical graphs of some order k < n. Then, compute canonical solutions for φ by extending, in parallel, each canonical order k graph together with suitable symmetry breaking constraints. The contribution is that the proposed symmetry breaking constraints enable us to extend the order k canonical graphs to order n canonical solutions. We demonstrate our approach through its application on two hard graph search problems.
Avraham Itzhakov, Michael Codish
AAAI2
2019 Sorting networks: To the end and back again
Michael Codish, Luís Cruz-Filipe, Thorsten Ehlers, Mike Müller, Peter Schneider-Kamp
J. Comput. Syst. Sci.1
2017 The DNA Word Design Problem: A New Constraint Model and New Results
abstract
A fundamental problem in coding theory concerns the computation of the maximum cardinality of a set S of length n code words over an alphabet of size q, such that every pair of code words has Hamming distance at least d, and the set of additional constraints U on S is satisfied. This problem has application in several areas, one of which is the design of DNA codes where q=4 and the alphabet is {A,C,G,T}. We describe a new constraint model for this problem and demonstrate that it improves on previous solutions (computes better lower bounds) for various instances of the problem. Our approach is based on a clustering of DNA words into small sets of words. Solutions are then obtained as the union of such clusters. Our approach is SAT based: we specify constraints on clusters of DNA words and solve these using a Boolean satisfiability solver.
Michael Codish, Michael Frank 0002, Vitaly Lagoon
IJCAI1
2017 Optimizing sorting algorithms by using sorting networks
abstract
Abstract In this paper, we show how the theory of sorting networks can be applied to synthesize optimized general-purpose sorting libraries. Standard sorting libraries are often based on combinations of the classic Quicksort algorithm, with insertion sort applied as base case for small, fixed, numbers of inputs. Unrolling the code for the base case by ignoring loop conditions eliminates branching, resulting in code equivalent to a sorting network. By replacing it with faster sorting networks, we can improve the performance of these algorithms. We show that by considering the number of comparisons and swaps alone we are not able to predict any real advantage of this approach. However, significant speed-ups are obtained when taking advantage of instruction level parallelism and non-branching conditional assignment instructions, both of which are common in modern CPU architectures. Furthermore, a close control of how often registers have to be spilled to memory gives us a complete explanation of the performance of different sorting networks, allowing us to choose an optimal one for each particular architecture. Our experimental results show that using code synthesized from these efficient sorting networks as the base case for Quicksort libraries results in significant real-world speed-ups.
Michael Codish, Luís Cruz-Filipe, Markus E. Nebel, Peter Schneider-Kamp
Formal Aspects Comput.1
2017 Optimal-depth sorting networks
Daniel Bundala, Michael Codish, Luís Cruz-Filipe, Peter Schneider-Kamp, Jakub Závodný
J. Comput. Syst. Sci.2
2016 Breaking Symmetries in Graphs: The Nauty Way
Michael Codish, Graeme Gange, Avraham Itzhakov, Peter J. Stuckey
CP1
2016 Sorting nine inputs requires twenty-five comparisons
Michael Codish, Luís Cruz-Filipe, Michael Frank 0002, Peter Schneider-Kamp
J. Comput. Syst. Sci.1
2016 Preface for special section from FLOPS 2014
abstract
The 12th International Symposium on Functional and Logic Programming was held in Kanazawa, Japan, June 4–6, 2014. The aim of the Functional and Logic Programming series of conferences is to bring together researchers interested in declarative programming including functional programming and logic programming. The series aims to promote cross-fertilization and integration between the two paradigms and it is traditionally organized and held in Japan.
Michael Codish, Eijiro Sumii
J. Funct. Program.1
2016 Logic Programming with Graph Automorphism: Integrating nauty with Prolog (Tool Description)
abstract
Abstract This paper presents thepl-nautylibrary, a Prolog interface to thenautygraph-automorphism tool. Adding the capabilities ofnautyto Prolog combines the strength of the “generate and prune” approach that is commonly used in logic programming and constraint solving, with the ability to reduce symmetries while reasoning over graph objects. Moreover, it enables the integration ofnautyin existing tool-chains, such as SAT-solvers or finite domain constraints compilers which exist for Prolog. The implementation consists of two components:pl-nauty, an interface connectingnauty's C library with Prolog, andpl-gtools, a Prolog framework integrating the software component ofnauty, calledgtools, with Prolog. The complete tool is available as a SWI-Prolog module. We provide a series of usage examples including two that apply to generate Ramsey graphs.
Michael Frank 0002, Michael Codish
Theory Pract. Log. Program.2
2015 Sorting Networks: The End Game
Michael Codish, Luís Cruz-Filipe, Peter Schneider-Kamp
LATA1
2015 Applying Sorting Networks to Synthesize Optimized Sorting Libraries
Michael Codish, Luís Cruz-Filipe, Markus E. Nebel, Peter Schneider-Kamp
LOPSTR1
2014 Twenty-Five Comparators Is Optimal When Sorting Nine Inputs (and Twenty-Nine for Ten)
abstract
This paper describes a computer-assisted non-existence proof of 9-input sorting networks consisting of 24 comparators, hence showing that the 25-comparator sorting network found by Floyd in 1964 is optimal. As a corollary, we obtain that the 29-comparator network found by Waksman in 1969 is optimal when sorting 10 inputs. This closes the two smallest open instances of the optimal-size sorting network problem, which have been open since the results of Floyd and Knuth from 1966 proving optimality for sorting networks of up to 8 inputs. The proof involves a combination of two methodologies: one based on exploiting the abundance of symmetries in sorting networks, and the other based on an encoding of the problem to that of satisfiability of propositional logic. We illustrate that, while each of these can single-handedly solve smaller instances of the problem, it is their combination that leads to the more efficient solution that scales to handle 9 inputs.
Michael Codish, Luís Cruz-Filipe, Michael Frank 0002, Peter Schneider-Kamp
ICTAI1
2014 Simplifying Pseudo-Boolean Constraints in Residual Number Systems
Yoav Fekete, Michael Codish
SAT2
2014 A Novel SAT-Based Approach to Model Based Diagnosis
abstract
This paper introduces a novel encoding of Model Based Diagnosis (MBD) to Boolean Satisfaction (SAT) focusing on minimal cardinality diagnosis. The encoding is based on a combination of sophisticated MBD preprocessing algorithms and the application of a SAT compiler which optimizes the encoding to provide more succinct CNF representations than obtained with previous works. Experimental evidence indicates that our approach is superior to all published algorithms for minimal cardinality MBD. In particular, we can determine, for the first time, minimal cardinality diagnoses for the entire standard ISCAS-85 and 74XXX benchmarks. Our results open the way to improve the state-of-the-art on a range of similar MBD problems.
Amit Metodi, Roni Stern, Meir Kalech, Michael Codish
J. Artif. Intell. Res.4
2013 Breaking Symmetries in Graph Representation
Michael Codish, Alice Miller 0001, Patrick Prosser, Peter J. Stuckey
IJCAI1
2013 Boolean Equi-propagation for Concise and Efficient SAT Encodings of Combinatorial Problems
abstract
We present an approach to propagation-based SAT encoding of combinatorial problems, Boolean equi-propagation, where constraints are modeled as Boolean functions which propagate information about equalities between Boolean literals. This information is then applied to simplify the CNF encoding of the constraints. A key factor is that considering only a small fragment of a constraint model at one time enables us to apply stronger, and even complete, reasoning to detect equivalent literals in that fragment. Once detected, equivalences apply to simplify the entire constraint model and facilitate further reasoning on other fragments. Equi-propagation in combination with partial evaluation and constraint simplification provide the foundation for a powerful approach to SAT-based finite domain constraint solving. We introduce a tool called BEE (Ben-Gurion Equi-propagation Encoder) based on these ideas and demonstrate for a variety of benchmarks that our approach leads to a considerable reduction in the size of CNF encodings and subsequent speed-ups in SAT solving times.
Amit Metodi, Michael Codish, Peter J. Stuckey
J. Artif. Intell. Res.2
2012 Compiling Model-Based Diagnosis to Boolean Satisfaction
abstract
This paper introduces an encoding of Model Based Diagnosis (MBD) to Boolean Satisfaction (SAT) focusing on minimal cardinality diagnosis. The encoding is based on a combination of sophisticated MBD preprocessing algorithms and SAT compilation techniques which together provide concise CNF formula. Experimental evidence indicates that our approach is superior to all published algorithms for minimal cardinality MBD. In particular, we can determine, for the first time, minimal cardinality diagnoses for the entire standard ISCAS-85 benchmark. Our results open the way to improve the state-of-the-art on a range of similar MBD problems.
Amit Metodi, Roni Stern, Meir Kalech, Michael Codish
AAAI4
2012 SAT Solving for Termination Proofs with Recursive Path Orders and Dependency Pairs
Michael Codish, Jürgen Giesl, Peter Schneider-Kamp, René Thiemann
J. Autom. Reason.1
2012 Compiling finite domain constraints to SAT with BEE
abstract
Abstract We presentBEE, a compiler which enables to encode finite domain constraint problems to CNF. UsingBEEboth eases the encoding process for the user and also performs transformations to simplify constraints and optimize their encoding to CNF. These optimizations are based primarily on equi-propagation and on partial evaluation, and also on the idea that a given constraint may have various possible CNF encodings. Often, the better encoding choice is made after constraint simplification.BEEis written in Prolog and integrates directly with a SAT solver through a suitable Prolog interface. We demonstrate that constraint simplification is often highly beneficial when solving hard finite domain constraint problems. ABEEimplementation is available with this paper.
Amit Metodi, Michael Codish
Theory Pract. Log. Program.2
2011 Boolean Equi-propagation for Optimized SAT Encoding
Amit Metodi, Michael Codish, Vitaly Lagoon, Peter J. Stuckey
CP2
2011 Optimal Base Encodings for Pseudo-Boolean Constraints
Michael Codish, Yoav Fekete, Carsten Fuhs, Peter Schneider-Kamp
TACAS1
2011 SAT-based termination analysis using monotonicity constraints over the integers
abstract
Abstract We describe an algorithm for proving termination of programs abstracted to systems of monotonicity constraints in the integer domain. Monotonicity constraints are a nontrivial extension of the well-known size-change termination method. While deciding termination for systems of monotonicity constraints is PSPACE complete, we focus on a well-defined and significant subset, which we call MCNP (for “monotonicity constraints in NP”), designed to be amenable to a SAT-based solution. Our technique is based on the search for a special type of ranking function defined in terms of bounded differences between multisets of integer values. We describe the application of our approach as the back end for the termination analysis of Java Bytecode. At the front end, systems of monotonicity constraints are obtained by abstracting information, using two different termination analyzers:AProVEandCOSTA. Preliminary results reveal that our approach provides a good trade-off between precision and cost of analysis.
Michael Codish, Igor Gonopolskiy, Amir M. Ben-Amram, Carsten Fuhs, Jürgen Giesl
Theory Pract. Log. Program.1
2009 A declarative encoding of telecommunications feature subscription in SAT
abstract
This paper describes the encoding of a telecommunications feature subscription configuration problem to propositional logic and its solution using a state-of-the-art Boolean satisfaction solver. The transformation of a problem instance to a corresponding propositional formula in conjunctive normal form is obtained in a declarative style. An experimental evaluation indicates that our encoding is considerably faster than previous approaches based on the use of Boolean satisfaction solvers. The key to obtaining such a fast solver is the careful design of the Boolean representation and of the basic operations in the encoding. The choice of a declarative programming style makes the use of complex circuit designs relatively easy to incorporate into the encoder and to fine tune the application.
Michael Codish, Samir Genaim, Peter J. Stuckey
PPDP1
2008 Telecommunications Feature Subscription as a Partial Order Constraint Problem
Michael Codish, Vitaly Lagoon, Peter J. Stuckey
ICLP1
2008 A SAT-Based Approach to Size Change Termination with Global Ranking Functions
Amir M. Ben-Amram, Michael Codish
TACAS2
2008 Logic programming with satisfiability
abstract
Abstract This paper presents a Prolog interface to the MiniSat satisfiability solver. Logic programming with satisfiability combines the strengths of the two paradigms: logic programming for encoding search problems into satisfiability on the one hand and efficient SAT solving on the other. This synergy between these two exposes a programming paradigm that we propose here as a logic programming pearl. To illustrate logic programming with SAT solving, we give an example Prolog program that solves instances of Partial MAXSAT.
Michael Codish, Vitaly Lagoon, Peter J. Stuckey
Theory Pract. Log. Program.1
2007 Propagation = Lazy Clause Generation
Olga Ohrimenko, Peter J. Stuckey, Michael Codish
CP3
2007 Proving Termination with (Boolean) Satisfaction
Michael Codish
LOPSTR1
2007 Termination analysis of logic programs through combination of type-based norms
abstract
This article makes two contributions to the work on semantics-based termination analysis for logic programs. The first involves a novel notion of type - based norm where for a given type, a corresponding norm is defined to count in a term the number of subterms of that type. This provides a collection of candidate norms, one for each type defined in the program. The second enables an analyzer to base termination proofs on the combination of several different norms. This is useful when different norms are better suited to justify the termination of different parts of the program. Application of the two contributions together consists in considering the combination of the type-based candidate norms for a given program. This results in a powerful and practical technique. Both contributions have been introduced into a working termination analyzer. Experimentation indicates that they yield state-of-the-art results in a fully automatic analysis tool, improving with respect to methods that do not use both types and combined norms.
Maurice Bruynooghe, Michael Codish, John P. Gallagher, Samir Genaim, Wim Vanhoof
ACM Trans. Program. Lang. Syst.2
2006 Size-Change Termination Analysis in k-Bits
Michael Codish, Vitaly Lagoon, Peter Schachte, Peter J. Stuckey
ESOP1
2006 SAT Solving for Argument Filterings
Michael Codish, Peter Schneider-Kamp, Vitaly Lagoon, René Thiemann, Jürgen Giesl
LPAR1
2006 Solving Partial Order Constraints for LPO Termination
Michael Codish, Vitaly Lagoon, Peter J. Stuckey
RTA1
2005 Testing for Termination with Monotonicity Constraints
Michael Codish, Vitaly Lagoon, Peter J. Stuckey
ICLP1
2005 Inferring Termination Conditions for Logic Programs using Backwards Analysis
abstract
This paper focuses on the inference of modes for which a logic program is guaranteed to terminate. This generalises traditional termination analysis where an analyser tries to verify termination for a specified mode. Our contribution is a methodology in which components of traditional termination analysis are combined with backwards analysis to obtain an analyser for termination inference. We identify a condition on the components of the analyser which guarantees that termination inference will infer all modes which can be checked to terminate. The application of this methodology to enhance a traditional termination analyser to perform also termination inference is demonstrated.
Samir Genaim, Michael Codish
Theory Pract. Log. Program.2
2002 Reuse of Results in Termination Analysis of Typed Logic Programs
Maurice Bruynooghe, Michael Codish, Samir Genaim, Wim Vanhoof
SAS2
2001 The Def-inite Approach to Dependency Analysis
Samir Genaim, Michael Codish
ESOP2
2001 Higher-Precision Groundness Analysis
Michael Codish, Samir Genaim, Harald Søndergaard, Peter J. Stuckey
ICLP1
2001 Inferring Termination Conditions for Logic Programs Using Backwards Analysis
Samir Genaim, Michael Codish
LPAR2
2001 Worst-case groundness analysis using definite boolean functions
abstract
This note illustrates theoretical worst-case scenarios for groundness analyses obtained through abstract interpretation over the abstract domains of definite (Def) and positive (Pos) Boolean functions. For Def, an example is given for which any Def-based abstract interpretation for groundness analysis follows a chain which is exponential in the number of argument positions as well as in the number of clauses but sub-exponential in the size of the program. For Pos, we strengthen a previous result by illustrating an example for which any Pos-based abstract interpretation for groundness analysis follows a chain which is exponential in the size of the program. It remains an open problem to determine if the worst case for Def is really as bad as that for Pos.
Samir Genaim, Jacob M. Howe, Michael Codish
Theory Pract. Log. Program.3
2000 Type dependencies for logic programs using ACI-unification
Michael Codish, Vitaly Lagoon
Theor. Comput. Sci.1
1999 Sharing and groundness dependencies in logic programs
abstract
We investigate Jacobs and Langen's Sharing domain, introduced for the analysis of variable sharing in logic programs, and show that it is isomorphic to Marriott and Søndergaard's Pos domain, introduced for the analysis of groundness dependencies. Our key idea is to view the sets of variables in a Sharing domain element as the models of a corresponding Boolean function. This leads to a recasting of sharing analysis in terms of the property of “not being affected by the binding of a single variable.” Such an “unaffectedness dependency” analysis has close connections with groundness dependency analysis using positive Boolean functions. This new view improves our understanding of sharing analysis, and leads to an elegant expression of its combination with groundness dependency analysis based on the reduced product of Sharing and Pos. It also opens up new avenues for the efficient implementation of sharing analysis, for example using reduced order binary decision diagrams, as well as efficient implementation of the reduced product, using domain factorizations.
Michael Codish, Harald Søndergaard, Peter J. Stuckey
ACM Trans. Program. Lang. Syst.1
1998 Semantics-Based Program Analysis for Logic-Based Languages Using XSB
Michael Codish, Bart Demoen, Konstantinos Sagonas
Int. J. Softw. Tools Technol. Transf.1
1997 Sharing Analysis Using Set Logic Programs
Francisco Bueno, Michael Codish, Vitaly Lagoon
ICLP2
1997 Efficient Goal Directed Bottom-up Evaluation of Logic Programs
Michael Codish
ICLP1
1997 XSB as the Natural Habitat for General Purpose Program Analysis
Michael Codish, Bart Demoen, Konstantinos Sagonas
ICLP1
1997 An Algebraic Approach to Sharing Analysis of Logic Programs
Michael Codish, Vitaly Lagoon, Francisco Bueno
SAS1
1996 Proving Implications by Algebraic Approximation
Michael Codish, Grigory Mashevitzky
Theor. Comput. Sci.1
1995 Oracle Semantics for Prolog
Roberto Barbuti, Michael Codish, Roberto Giacobazzi, Michael J. Maher
Inf. Comput.2
1995 Improving Abstract Interpretations by Combining Domains
abstract
This article considers static analysis based on abstract interpretation of logic programs over combined domains. It is known that analyses over combined domains provide more information potentially than obtained by the independent analyses. However, the construction of a combined analysis often requires redefining the basic operations for the combined domain. A practical approach to maintain precision in combined analyses of logic programs which reuses the individual analyses and does not redefine the basic operations is illustrated. The advantages of the approach are that (1) proofs of correctness for the new domains are not required and (2) implementations can be reused. The approach is demonstrated by showing that a combined sharing analysis—constructed from “old” proposals—compares well with other “new” proposals suggested in recent literature both from the point of view of efficiency and accuracy.
Michael Codish, Anne Mulkers, Maurice Bruynooghe, Maria Garcia de la Banda, Manuel V. Hermenegildo
ACM Trans. Program. Lang. Syst.1
1994 Goal Dependent versus Goal Independent Analysis of Logic Programs
Michael Codish, Maria Garcia de la Banda, Maurice Bruynooghe, Manuel V. Hermenegildo
LPAR1
1994 Deriving Polymorphic Type Dependencies for Logic Programs Using Multiple Incarnations of Prop
Michael Codish, Bart Demoen
SAS1
1994 Bottom-up Abstract Interpretation of Logic Programs
Michael Codish, Dennis Dams, Eyal Yardeni
Theor. Comput. Sci.1
1994 Suspension Analyses for Concurrent Logic Programs
abstract
Concurrent logic languages specify reactive systems which consist of collections of communicating processes. The presence of unintended suspended computations is a common programming error which is difficult to detect using standard debugging and testing techniques. We develop a number of analyses, based on abstract interpretation, which succeed if a program is definitely suspension free. If an analysis fails, the program may, or may not, be suspension free. Examples demonstrate that the analyses are practically useful. They are conceptually simple and easy to justify because they are based directly on the transition system semantics of concurrent logic programs. A naive analysis must consider all scheduling policies . However, it is proven that for our analyses it suffices to consider only one scheduling policy, allowing for efficient implementation.
Michael Codish, Moreno Falaschi, Kim Marriott
ACM Trans. Program. Lang. Syst.1
1993 Efficient Analysis of Concurrent Constraint Logic Programs
Michael Codish, Moreno Falaschi, Kim Marriott, William H. Winsborough
ICALP1
1993 Freeness Analysis for Logic Programs - And Correctness?
Michael Codish, Dennis Dams, Gilberto Filé, Maurice Bruynooghe
ICLP1
1993 Freeness Analysis in the Presence of Numerical Constraints
Veroniek Dumortier, Gerda Janssens, Maurice Bruynooghe, Michael Codish
ICLP4
1993 Improving Abstract Interpretations by Combining Domains
abstract
In this paper we consider static analyses based on abstract interpretation of logic programs over combined domains. It is known that analyses over combined domains potentially provide more information than obtainable by performing the independent abstract interpretations. However, the construction of a combined analysis often requires redefining the basic operations for the combined domain. We demonstrate for logic programs that in practice it is possible to obtain precision in a combined analysis without redefining the basic operations. We also propose a way of performing the combination which can be more precise than the straightforward application of the classical “reduced product” approach, while keeping the original components of the basic operations. The advantage of the approach is that proofs of correctness for the new domains are not required and implementations can be reused. We illustrate our results by showing that a combined sharing analysis—constructed from “old” proposals—compares well with other “new” proposals suggested in recent literature both from the point of view of efficiency and accuracy.
Michael Codish, Anne Mulkers, Maurice Bruynooghe, Maria Garcia de la Banda, Manuel V. Hermenegildo
PEPM1
1993 Compositional Analysis of Modular Logic Programs
abstract
This paper describes a semantic basis for a compositional approach to the analysis of logic programs. A logic program is viewed as consisting of a set of modules, each module defining a subset of the program's predicates. Analyses are constructed by considering abstract interpretations of a compositional semantics. The abstract meaning of a module corresponds to its analysis and composition of abstract meanings corresponds to composition of analyses. Such an approach is essential for large program development so that altering one module does not require re-analysis of the entire program. We claim that for a substantial class of programs, compositional analyses which are based on a notion of abstract unfolding provide the same precision as non-compositional analysis. A compositional analysis for ground dependencies is included to illustrate the approach. To the best of our knowledge this is the first account of a compositional framework for the analysis of logic programs.
Michael Codish, Saumya K. Debray, Roberto Giacobazzi
POPL1
1993 Modelling Prolog Control
abstract
The goal of this paper is to construct a semantic basis for the abstract interpretation of Prolog programs. Prolog is a well-known logic programming language which applies a depth-first search strategy in order to provide a practical approximation of Horn clause logic. While pure logic programming has clean fixpoint, model-theoretic and operational semantics the situation for Prolog is different. Difficulties in capturing the declarative meaning of Prolog programs have led to various semantic definitions which attempt to encode the search strategy in different mathematical frameworks. However, semantic based analyses of Prolog are typically achieved by abstracting the more simple but less precise declarative semantics of pure logic programs. We propose instead to model Prolog control in a simple constraint logic language which is presented together with its declarative and operational semantics. This enables us to maintain the usual approach to declarative semantics of logic programs while capturing control aspects such as search strategy and selection rule.
Roberto Barbuti, Michael Codish, Roberto Giacobazzi, Giorgio Levi
J. Log. Comput.2
1992 Modeling Prolog Control
Roberto Barbuti, Michael Codish, Roberto Giacobazzi, Giorgio Levi
POPL2
1991 Derivation and Safety of an Abstract Unification Algorithm for Groundness and Aliasing Analysis
Michael Codish, Dennis Dams, Eyal Yardeni
ICLP1
1991 Suspension Analysis for Concurrent Logic Programs
Michael Codish, Moreno Falaschi, Kim Marriott
ICLP1
1988 Fully Abstract Denotational Semantics for Flat Concurrent Prolog
abstract
A denotational, hence, compositional semantics for a subset of Concurrent Prolog is developed and related to an operational semantics. The denotational semantics makes divergence and the resultant substitutions of finite computations together with the termination mode-success, failure, or deadlock-observable. Relative to this notion of observation it is proved that the denotational semantics is fully abstract in the sense that it records the minimal amount of extra information beyond the observables to make it compositional. Full abstraction is an important property because it quantifies the information that one needs in order to reason about individual program-parts independently. This is believed to be the first such result in the area of concurrent logic programming.>
Rob Gerth, Michael Codish, Yossi Lichtenstein, Ehud Shapiro
LICS2
1986 Compiling OR-parallelism into AND-parallelism
Michael Codish, Ehud Shapiro
ICLP1