AlanDeniseEricLauren: Find the minimal subset/submap satisfying some property.

[ algorithms, bsd3, library ] [ Propose Tags ]

Find the minimal subset/submap satisfying some arbitrary property.

[Skip to Readme]


  • ADEL


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],
Dependencies base (>= && <4.9), containers (>= && <0.6), MonadRandom (>= && <0.5), mtl (>=2.2.1 && <2.3), random (>=1.1 && <1.2), random-shuffle (>=0.0.4 && <0.1), vector (>= && <0.12) [details]
License BSD-3-Clause
Copyright 2016 Echo Nolan
Author Echo Nolan
Category Algorithms
Home page
Uploaded by EchoNolan at 2016-08-24T06:15:53Z
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 1963 total (9 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-10-24 [all 11 reports]

Readme for AlanDeniseEricLauren-

[back to package description]

AlanDeniseEricLauren is an implementation of the ADEL algorithm for efficiently finding the minimal subset of an input set satisfying some arbitrary upward-closed property. "Upward-closed" means if the property is true of some set S it is true of all supersets of S. My implementation is trivially extended to maps (dictionaries).

This can be used for e.g. narrowing down bugs by finding the minimal subset of a complex failing test case that still exhibits the issue. In addition, I provide a method for finding the minimal set of changes between a known-good and known-bad example needed to trigger a bug. (Equivalently, a set where the property is false and a set where it's true.)

The ADEL algorithm is due to Philippe Laborie in his paper "An Optimal Iterative Algorithm for Extracting MUCs in a Black-box Constraint Network" published in ECAI 2014. doi:10.3233/978-1-61499-419-0-1051. The paper is available at

The project's homepage is Bug reports and PRs can be submitted there.

As of August 2016, I am looking for work. If your company needs a good programmer, my email is My resume is available here.