×

A polynomial algorithm for testing congruence modularity. (English) Zbl 0857.08006

Given a finite algebra \({\mathcal A} = (A,F)\) with carrier \(A\) and set of operations \(F\), we denote by \(\text{ar}(f)\) \((\geq 0)\) the arity of \(f\in F\). Define the size of \({\mathcal A}\) as \(s({\mathcal A}): =\sum_{f\in F} |A|^{\text{ar} (f)} (\text{ar} (f)+1)\). An algorithm is presented which, given any finite algebra \({\mathcal A}\), determines whether its congruence lattice \(\text{Con} ({\mathcal A})\) is modular, and whose complexity is polynomial in \(s({\mathcal A})\). It more generally decides whether a closure system \(C(\Sigma)\) given by a family \(\Sigma\) of “implications” is a modular lattice. Polynomiality can only be achieved by avoiding to compute the whole of \(C(\Sigma)\); it suffices to calculate the join irreducibles and certain relations among them.
Reviewer: M.Wild (Zürich)

MSC:

08B10 Congruence modularity, congruence distributivity
06C05 Modular lattices, Desarguesian lattices
06A15 Galois correspondences, closure operators (in relation to ordered sets)
Full Text: DOI