Removing redundancy from a clause

https://doi.org/10.1016/0004-3702(93)90069-NGet rights and content

Abstract

This paper deals with the problem of removing redundant literals from a given clause. We first consider condensing, a weak type of redundancy elimination. A clause is condensed if it does not subsume any proper subset of itself. It is often useful (and sometimes necessary) to replace a non-condensed clause C by a condensation, i.e., by a condensed subset of C which is subsumed by C. After studying the complexity of an existing clause condensing algorithm, we present a more efficient algorithm and provide arguments for the optimality of the new method. We prove that testing whether a given clause is condensed is co-NP-complete and show that several problems related to clause condensing belong to complexity classes that are, probably, slightly harder than NP. We also consider a stronger version of redundancy elimination: a clause C is strongly condensed iff it does not contain any proper subset C′ such that C logically implies C′. We show that the problem of testing whether a clause is strongly condensed is undecidable.

References (28)

  • W.F. Clocksin et al.
  • M. Garey et al.
  • G. Gottlob

    On the complexity of clause condensing

  • Cited by (50)

    • On the query complexity of selecting minimal sets for monotone predicates

      2016, Artificial Intelligence
      Citation Excerpt :

      In the case of positive answers, the SAT solver also returns a satisfying truth assignment (i.e. a witness). The ability of the SAT solver to return a witness on positive answers can have a profound impact on query complexity characterizations of function problems (related results have actually been investigated in the past, e.g. [16,17]). This article shows that for some function problems, the availability of witnesses enables reducing the worst case number of oracle queries from polynomial to logarithmic.

    • On redundant topological constraints

      2015, Artificial Intelligence
      Citation Excerpt :

      Redundancy checking is an important task in AI research, in particular in knowledge representation and reasoning. For example, Ginsberg [21] and Schmolze and Snyder [44] designed algorithms for checking redundancy of knowledge bases; Gottlob and Fermüller [22] and Liberatore [32] analysed the computational properties of removing redundancy from a clause and a CNF formula, respectively; and Grimm and Wissmann [23] considered checking redundancy of ontologies. An extended abstract [15] of this paper was presented in KR-2014.

    View all citing articles on Scopus

    This paper improves and extends earlier results of the first author presented in [9]. The work has been carried out in the context of the Christian Doppler Research Laboratory for Expert Systems.

    View full text