Digraph homomorphism problems and weak near unanimity polymorphisms
Abstract
We consider the problem of finding a homomorphism from an input digraph to a fixed digraph . We show that if admits a weak near unanimity polymorphism then deciding whether admits a homomorphism to (HOM()) is polynomial time solvable. This gives a proof of the dichotomy conjecture (now dichotomy theorem) by Feder and Vardi [29]. Our approach is combinatorial, and it is simpler than the two algorithms found by Bulatov [9] and Zhuk [50] in 2017. We have implemented our algorithm and show some experimental results. We use our algorithm together with the recent result [38] for recognition of Maltsev polymorphisms and decide in polynomial time if a given relational structure admits a weak near unanimity polymorphism.
1 Introduction
For a digraph , let denote the vertex set of and let denote the arcs (aka edges) of . An arc is often written as simply to shorten expressions. Let denote the number of vertices in .
A homomorphism of a digraph to a digraph is a mapping of the vertex set of to the vertex set of so that for every arc of the image is an arc of . A natural decision problem is whether for given digraphs and there is a homomorphism of to . If we view (undirected) graphs as digraphs in which each edge is replaced by the two opposite directed arcs, we may apply the definition to graphs as well. An easy reduction from the -coloring problem shows that this decision problem is -hard: a graph admits a -coloring if and only if there is a homomorphism from to , the complete graph on vertices. As a homomorphism is easily verified if the mapping is given, the homomorphism problem is contained in and is thus -complete.
The following version of the problem has attracted much recent attention. For a fixed digraph the problem asks if a given input digraph admits a homomorphism to . Note that while the -coloring reduction shows is NP-complete, can be easy (in ) for some graphs : for instance if contains a vertex with a self-loop, then every graph admits a homomorphism to . Less trivially, for (or more generally, for any bipartite graph ), there is a homomorphism from to if and only if is bipartite. A very natural goal is to identify precisely for which digraphs the problem is easy. In the special case of graphs the classification has turned out to be this: if contains a vertex with a self-loop or is bipartite, then is in , otherwise it is -complete [31] (see [46] for shorter proofs). This classification result implies a dichotomy of possibilities for the problems when is a graph, each problem being -complete or in . However, the dichotomy of remained open for general digraphs for a long time. It was observed by Feder and Vardi [29] that this problem is equivalent to the dichotomy of a much larger class of problems in , in which is a fixed finite relational structure. These problems can be viewed as constraint satisfaction problems with a fixed template [29], written as CSP().
The CSP() involves deciding, given a set of variables and a set of constraints on the variables, whether or not there is an assignment (form the element of ) to the variables satisfying all of the constraints.
This problem can be formulated in terms of homomorphims as follows. Given a pair of relational structures, decide whether or not there is a homomorphism from the first structure to the second structure.
3SAT is a prototypical instance of CSP, where each variable takes values of true or false (a domain size of two) and the clauses are the constraints. Digraph homomorphism problems can also easily be converted into CSPs: the variables are the vertices of , each must be assigned a vertex in (meaning a domain size of ), and the constraints encode that each arc of must be mapped to an arc in .
Feder and Vardi argued in [29] that in a well defined sense the class of problems would be the largest subclass of in which a dichotomy holds. A fundamental result of Ladner [42] asserts that if then there exist -intermediate problems (problems neither in nor -complete), which implies that there is no such dichotomy theorem for the class of all problems. Non-trivial and natural sub-classes which do have dichotomy theorems are of great interest. Feder and Vardi made the following Dichotomy Conjecture: every problem is -complete or is in . This problem has animated much research in theoretical computer science. For instance the conjecture has been verified when is a conservative relational structure [8], or a digraph with all in-degrees and all-out-degrees at least one [4]. Numerous special cases of this conjecture have been verified [1, 2, 3, 7, 13, 18, 21, 22, 28, 43, 45].
Bulatov gave an algebraic proof for the conjecture in 2017 [9] and later Zhuk [50] also announced another algebraic proof of the conjecture.
It should be remarked that constraint satisfaction problems encompass many well known computational problems, in scheduling, planning, database, artificial intelligence, and constitute an important area of applications, in addition to their interest in theoretical computer science [15, 17, 40, 48].
While the paper of Feder and Vardi [29] did identify some likely candidates for the boundary between easy and hard -s, it was the development of algebraic techniques by Jeavons [41] that lead to the first proposed classification [11]. The algebraic approach depends on the observation that the complexity of only depends on certain symmetries of , the so-called polymorphisms of . For a digraph a polymorphism of arity on is a homomorphism from to . Here is a digraph with vertex set and arc set . For a polymorphism , is an arc of whenever is an arc of .
Over time, one concrete classification has emerged as the likely candidate for the dichotomy. It is expressible in many equivalent ways, including the first one proposed in [11]. There were thus a number of equivalent conditions on that were postulated to describe which problems are in . For each, it was shown that if the condition is not satisfied then the problem is -complete (see also the survey [33]). One such condition is the existence of a weak near unanimity polymorphism (Maroti and McKenzie [44]). A polymorphism of of arity is a -near unanimity function (-NU) on , if for every , and for every . If we only have for every and [not necessarily ] for every , then is a weak -near unanimity function (weak -NU). A polymorphism on is Siggers if for every [47]. It has been shown by Siggers [47] that if digraph admits a Sigger polymorphism it also admits a weak -NU for some .
Given the -completeness proofs that are known, the proof of the Dichotomy Conjecture reduces to the claim that a relational structure which admits a weak near unanimity polymorphism has a polynomial time algorithm for . As mentioned earlier, Feder and Vardi have shown that is suffices to prove this for when is a digraph. This is the main result of our paper.
Note that the real difficulty in the proof of the graph dichotomy theorem in [31] lies in proving the -completeness. By contrast, in the digraph dichotomy theorem proved here it is the polynomial-time algorithm that has proven more difficult.
While the main approach in attacking the conjecture has mostly been to use the highly developed techniques from logic and algebra, and to obtain an algebraic proof, we go in the opposite direction and develop a combinatorial algorithm. Our main result is the following.
Theorem 1.1
Let be a digraph that admits a weak near unanimity function. Then is in . Deciding whether an input digraph admits a homomorphism to can be done in time .
Very High Level View
We start with a general digraph and a weak -NU of . We turn the problem into a related problem of seeking a homomorphism with lists of allowed images. The list homomorphism problem for a fixed digraph , denoted , has as input a digraph , and for each vertex of an associated list (set) of vertices , and asks whether there is a homomorphism of to such that for each , the image of ; , is in . Such a homomorphism is called a list homomorphism of to with respect to the lists . List homomorphism problems have been extensively studied, and are known to have nice dichotomies [23, 26, 35]. However, we can not use the algorithms for finding list homomorphism from to , because in the problem, for every vertex of , .
Preprocessing
One of the common ingredients in algorithms is the use of consistency checks to reduce the set of possible values for each variable (see, for example the algorithm outlined in [32] for when admits a near unanimity function). Our algorithm includes such a consistency check (also known as (2,3)-consistency check [29]) as a first step which we call PreProcessing. PreProcessing procedure begins by performing arc and pair consistency check on the list of vertices in the input digraph . For each pair of we consider a list of possible pairs , (the list in associated with ) and . Note that if is an arc of and is not an arc of then we remove from the list of . Moreover, if and there exists such that there is no for which and then we remove from the list of . We continue this process until no list can be modified. If there are empty lists then clearly there is no list homomorphism from to .
After PreProcessing
The main structure of the algorithm is to perform pairwise elimination, which focuses on two vertices of that occur together in some list , and finds a way to eliminate or from without changing a feasible problem into an unfeasible one. In other words if there was a list homomorphism with respect to the old lists , there will still be one with respect to the updated lists . This process continues until either a list becomes empty, certifying that there is no homomorphism with respect to (and hence no homomorphism at all), or until all lists become singletons specifying a concrete homomorphism of to or we reach an instance that has much simpler structure and can be solved by the existing CSP algorithms. This method has been successfully used in other papers [20, 35, 36].
In this paper, the choice of which or is eliminated, and how, is governed by the given weak near unanimity polymorphism . The heart of the algorithm is a delicate procedure for updating the lists in such a way that (i) feasibility is maintained, and the polymorphism keep its initial property (which is key to maintaining feasibility).
Meta-Question
An interesting question arising from the study of CSP Dichotomy theorem is known as the meta-question. Given a relational structure , decide whether or not admits a polymorphism from a class–for various classes of polymorphims. For many cases hardness results are known. Semmilattice, majority, Maltsev, NU, and weak NU, are among the popular polymorphisms when it comes to study of CSP. Having one or more of these polymorphisms on relation , would make the CSP() (or variation) instance tractable. Therefore, knowing structural characterization and polynomial time recognition for these polymorphisms would help in designing efficient algorithms for solving CSP. A binary polymorphism on is called semilattice if , and , for every . A ternary polymorphism on is majority if . A polymorphism of arity three on is called Maltsev if for every , .
It was shown in [14] that deciding if a relational structure admits any of the following polymorphism is NP-complete; a semilattice polymorphism, a conservative semilattice polymorphism, a commutative, associative polymorphism (that is, a commutative semigroup polymorphism). However, when is a single binary relation(digraph) then deciding whether admits a conservative semmilattice is polynomial time solvable [34]. Relational structure and digraphs with majority/ near unanimity polymorphism have studied in [5, 14, 27, 35, 37, 44].
One remaining open question is whether the existence of a weak NU polymorphism for a given relational structure can be decided in polynomial time [6]. We transform this problem into a graph list homomorphism problem from an input graph to a target graph , in which admits a Siggers polymorphism (i.e. a weak NU polymorphism of arity for some ) with respect to the lists. To solve this problem, we need some modules of our algorithm for finding a homomorphism from to when admits a weak NU. Moreover, we also need an algorithm for solving the list homomorphism problem from an input graph to a target graph where admits a Maltsve polymorphism with respect to the lists; such an algorithm would only assume the existence of a Maltsev polymorphism without knowing the actual values. The later algorithm has been designed in [38]. Deciding whether a relational structure admits a Malstve polymorphims has been an open problem [6, 47]. We prove the following theorem.
Theorem 1.2
Let be a relational structure. Then the problem of deciding whether admits a weak NU polymorphism is polynomial time solvable.
1.1 Addressing the issue with the 2017 manuscript
Our algorithm (in manuscript 2017) makes a decision based on the output of a test on a smaller instance of the digraph homomorphism problem. Here are possible images for , of a homomorphism from to .
The algorithm assumes that the test outputs“yes” and based on the correctness of the test, is removed from further consideration for . The test uses the properties of the weak NU polymorphism . However, it is conceivable that the test fails, and this means we should not remove from the list of possible images of . We had incorrectly claimed in the manuscript that the properties of and pre-tests in the algorithm guarantee the test always passes. But we can construct such an example where the test must fail in the algorithm as follows. Let be a digraph with two weakly connected components . The weak NU polymorphism could be of arity three and such that for every and every , for some . Suppose there exists a homomorphism from (weakly connected) to that maps to and hence the entire graph must be mapped to . Moreover, suppose there is no homomorphism from to . The algorithm does consider the test eventually for such and . According to the test , we remove from further consideration for which leads us to remove the possible homomorphism from to .
Note that one can assume is weakly connected as follows. Suppose are balanced digraphs with levels (we can partitioned the vertices of , , into parts where all the arcs of go from a vertex in some part to part ). An extra vertex can be added and connected to all the vertices of on the lowest level. This way we obtain the weakly connected digraph with levels. We may assume is also balanced and has levels. An extra vertex can be added to with arcs to every vertex of on the lowest level. Now is also a balanced digraph with levels. Note that in any homomorphism from to , must be mapped to and any other vertex of must map to .
We note that Ross Willard has posted a concrete counter-example (and further discussion of his example) for which contains 197 vertices in . The example inspired by instances of the CSP, so-called Semi-lattice block Maltsev. In Subsection 3.1 and Section 6, we discuss these kinds of examples in detail and show how our new algorithm handles these examples.
2 Necessary Definitions
An oriented walk (path) is obtained from a walk (path) by orienting each of its edges. The net-length of a walk , is the number of forward arcs minus the number of backward arcs following from the beginning to the end. An oriented cycle is obtained from a cycle by orienting each of its edges. We say two oriented walks are congruent if they follow the same patterns of forward and backward arcs.
For digraphs , let be the digraph with vertex set and arc set . Let , times.
Given digraphs and , and , let be the induced sub-digraph of with the vertices where .
Definition 2.1 (Homomorphism consistent with Lists)
Let and be digraphs and list function , i.e. list of , . Let be an integer.
A function is a list homomorphism with respect to lists if the following hold.
-
•
List property : for every ,
-
•
Adjacency property: if is an arc of then
is an arc of .
In addition if has the following property then we say has the weak -NU property.
-
•
for every , we have .
-
•
for every , , we have .
We note that this definition is tailored to our purposes and in particular differs from the standard definition of weak -NU as follows. is based on two digraphs and rather than just (we think of this as starting with a traditional weak -NU on and then allowing it to vary somewhat for each ).
Notation
For simplicity let be a -tuple of all ’s but with an in the coordinate. Let be a -tuple of , ’s and in the coordinate.
Definition 2.2 (-closure of a list)
We say a set is closed under if for every -tuple we have . For set , let be a minimal set that includes all the elements of and it is closed under .
Let be an oriented path in . Let , , denote the induced sub-path of from to . Let denote the vertices of that lie in the list of the vertices of .
Definition 2.3 (induced bi-clique)
We say two vertices induced a bi-clique if there exist vertices , and such that for every and .

Let and suppose there exist such that . Then it follows from the property of , that and induce a bi-clique on .
Definition 2.4 (weakly connected component in lists )
By connected component of we mean a weakly connected component of digraph (i.e. a connected component of when we ignore the direction of the arcs) which is closed under -consistency. That means, for every , and every there is some such that , .
Observation 2.5
If there exists a homomorphism then all the vertices , belong to the same connected component of .
Definition 2.6
For we say is a non-minority pair if . Otherwise, we say is a minority pair.
Definition 2.7
For , , let be the subset of lists that are consistent with and . In other words, for every , . Note that by definition . In general for , let be the subset of lists that are consistent with all the ’s, . In other words, for every , .
3 Algorithm
The main algorithm starts with applying the Preprocessing procedure on the instance , where is a weak NU polymorphism of arity on . If we encounter some empty (pair) lists then there is no homomorphism from to , and the output is no. Otherwise, it defines the weak NU list homomomorphism , by setting for every and every . Then it proceeds with the Not-Minority algorithm (Algorithm 2). Inside the Not-Minority algorithm we look for the special cases, the so-called minority cases which are turned into a Maltsev instances, and can be handled using the existing Maltsev algorithms.
Minority Instances
Inside function Not-Minority we first check whether the instance is Maltsev or Minority instance – in which we have a homomorphism consistent with such that for every , is a minority pair, i.e. , and in particular when we have (idempotent property).
In our setting a homomorphism is called Maltsev list homomorphism if for every , .
Let be an input to our algorithm, and suppose all the pairs are minority pairs. We define a homomorphism (consistent with ) by setting for . Note that since has the minority property for all , , is a Maltsev homomorphism consistent with the lists . This is because when then , and when , , for every , and hence, .
Not-Minority Instances
Not-Minority algorithm (Algorithm 2) first checks whether the instance is a minority instance, and if the answer is yes then it calls RemoveMinority function. Otherwise, it starts with a not-minority pair in , i.e., with . Roughly speaking, the goal is not to use on vertices with ; which essentially means setting . In order to make this assumption, it recursively solves a smaller instance of the problem (smaller test), say , and , and if the test is successful then that particular information about is no longer needed. More precisely, let so that and where are in the same connected component of . The test is performed to see whether there exists an -homomorphism from to with . If for succeeds then the algorithms no longer uses for with . We often use a more restricted test, say on in which the goal is to see whether there exists an -homomorphism , from to with , .
The Algorithm 2 is recursive, and we use induction on to show its correctness. In what follows we give an insight of why the weak -NU () property of is necessary for our algorithm. For contradiction, suppose with and with . If then in Not-Minority algorithm we try to remove from (not to use in ) if we start with while we do need to keep in because we later need in for the Maltsev algorithm. It might be the case that but during the execution of Algorithm 2 for some with we assume is . So we need to have , the weak NU property, to start in Algorithm 1.
For implementation, we update the lists as well as the pair lists, depending on the output of . If fails (no -homomorphism from to that maps to ) then we remove from and if fails (no -homomorphism from to that maps to and to ) then we remove from . The Not-Minority takes and checks whether all the lists are singleton, and in this case the decision is clear. It also handles each connected component of separately. If all the pairs are minority then it calls RemoveMinority which is essentially checking for a homomorphism when the instance admits a Maltsev polymorphism. Otherwise, it proceeds with function Sym-Diff.
Sym-Diff function
Let and and such that . Let . We consider the instances of the problem as follows. The induced sub-digraph consists of vertices of such that for every we have . Now for each , . Such an instance is constructed by function Sym-Diff().
Let denote a set of vertices in that are adjacent (via an out-going or in-coming arc) to some vertex in . is called the boundary of . We do not add into which makes it easier to argue about running time. However, we some extra care it is also possible to have an algorithm that include the boundary vertices. Note that for every , . Moreover, , and .
For and and we solve the instance , by calling the Not-Minority() function. The output of this function call is either a non-empty -homomorphism from to or there is no such homomorphism. If does not exist then there is no homomorphism from to that maps to , and to . In this case we remove from , and remove from . This should be clear because is an induced sub-digraph of , and for every vertex , , . Moreover, it is easy to see (will be shown later) that is closed under . The homomorphism is used in the correctness proof of the Algorithm 2.
Implementation Remark:
In order to avoid several redundant tests, when a sub-digraph constructed by Sym-Diff() is the same as ; and the test returns true, then we no longer need to run the test for any other sub-instance because we just need to return yes to the parent sub-routine calling the current sub-routine.
Bi-clique Instances
When instance has more than one connected component we consider each connected component separately. Otherwise, there exists a vertex and two elements along with , such that . Let . Suppose after running Not-Minority on the instances from Sym-Diff() and Sym-Diff(). Then we remove from (see Figure 2). We continue this until all the pairs are minority.
After the Bi-clique-Instances function, we update the lists by calling PreProcessing, because reducing the pair lists may imply to remove some elements from the lists of some elements of . At this point, if then . This is because when is in then it means the Not-Minority procedure did not consider to be excluded from further consideration. Notice that in order to feed this instance to RemoveMinority we only need the idempotent property for those vertices that are in , .

3.1 Examples
We refer the reader to the example in [49]. The digraph (depicted in Figure 3) admits a weak NU of arity . The input digraph ( depicted in Figure 4). This digraph contains the original digraph used in [49] as an induced sub-digraph. So, our example here combines both examples used in [49].


The lists in are depicted in Figure 5. Clearly the has only one weakly connected component.

Now consider the Sym-Diff(). According to the construction of Sym-Diff we have, . This is because , and hence, is not extended to the vertices . The list of the vertices in the new instance ( lists) are as follows. , , , , , , and (See Figure 6).

Now suppose we want to solve the instance . At this point one could say this instance is Minority and according to Algorithm 2 we should call a Maltsev algorithm. However, we may further apply Algorithm 2 on instances constructed in Sym-Diff and use the ”no” output to decide whether there exists a homomorphism or not. Now consider Sym-Diff() (see Figure 7), we would get the digraph and lists as follows. , . By following from to we would have (because ), and then following to we would have (because ). By similar reasoning and following from to we have , and consequently from to alongside we have . By following from to we would have , and consequently . By following from to we have , and continuing along to we would have .

Finally we see the pair lists because . Therefore, there is no -homomorphism from to . This means in the algorithm we remove from . Moreover, and hence is removed from . Similarly we conclude that there is no homomorphism for the instance Sym-Diff(), and hence, we should remove from .
Again suppose we call, Sym-Diff(). We would get digraph with vertex set and lists as follows. , , , , . , , , and . Now we see the pairs lists because . Therefore, we conclude should be removed from . By similar argument, we conclude that is removed from .
In conclusion, there is no -homomorphism that maps to . By symmetry we conclude that there is no -homomorphims that maps to zero. This means . . So any homomorphism from to maps , to and it maps , to .
It is easy to verify that may map all the vertices to , and there also exists a homomorphism where the image of is in .
Generalization
Let be a relation of arity on set , and suppose admits a weak NU polymorphism of arity (for simplicity). Let be the tuples in . Let be the elements of . Let be the -tuple, of . Let be an oriented path that is constructed by concatenating smaller pieces (oriented path) where each piece is either a forward arc or a forward-backward-forward arc. The first piece of is a forward arc and the -piece is also a forward arc. The -th piece, , is a forward arc if , otherwise, the -th piece is a forward-backward-forward arc; and in this case we say the -th piece has two internal vertices. Note that -the piece is attached to the end of the -th piece. For example, if and then looks like :

Now is constructed as follows. consists of corresponding to , together with vertices corresponding to . For every , , we put a copy of between the vertices and ; identifying the beginning of with and end of with .
Now it is easy to show that the resulting digraph is a balanced digraph and admits a weak NU polymorphism. For every triple from set where . For every from , set where where is applied coordinate wise on . We give level to the vertices of . All the vertices, gets level zero. If is an arc of then . All the vertices gets level . For every , set when are not on the same level of . Otherwise, for and , and where all on level of , set where has the following properties:
-
•
is a vertex on the same level as ,
-
•
lies on where and ,
-
•
if any of the , , and is an interval vertex (reffering to the r-th piece of ) then is also an interval vertex of when exists. Otherwise should not be an internal.
-
•
if and , then if or , otherwise, (i.e., the majority function).
Suppose are arcs of . By the following observation, it is easy to see that is an arc of .
Observation. Suppose are at the beginning (end) of the -th piece of and , and (respectively) and none of these three pieces has an interval vertex. Then, the -th piece of does not an interval vertex.
By definition appears in the -th coordinate of , and appear in the -th coordinate of , and appears in the -th coordinate of . Since is applied coordinate wise on , the -th coordinate of is , and hence, the -th coordinate of is . Therefore, the -th piece of doesn’t have an interval vertex.
4 Proof of Theorem 1.1
By Lemma 4.3, we preserve the existence of a homomorphism from to after Algorithm. We observe that the running time of PreProcessing function is . According to the proof of Lemma 4.3 (2) the running time of Algorithm 2 is . Therefore, the running time of the Algorithm 1 is .
4.1 PreProcessing and List Update
We first show that the standard properties of consistency checking remain true in our setting – namely, that if the Preprocessing algorithm succeeds then remains a homomorphism consistent with the lists if it was before the Preprocessing.
Lemma 4.1
If is a homomorphism of consistent with then is a homomorphism consistent with after running the Preprocessing.
Proof: We need to show that if are in after the Preprocessing then
after the Preprocessing.
By definition vertex is in after the
Preprocessing because for every oriented path (of some length ) in from to a fixed vertex
there is a vertex and there exists a walk in from to and congruent with that lies in ; list of the vertices of . Let . Let , be a walk from to in and congruent to . Let
and let . Since is a homomorphism consistent with before the Preprocessing,
is a
walk congruent with . This would imply that there is a walk from
to congruent with in ,
and hence, .
By a similar argument as in the proof of Lemma 4.1 we have the following lemma.
Lemma 4.2
If is a homomorphism of , consistent with and , , after Preprocessing then after the Preprocessing.
4.2 Correctness Proof for Not-Minority Algorithm
The main argument is proving that after Not-Minority algorithm ( Algorithm 2), there still exists a homomorphism from to if there was one before Not-Minority .
Lemma 4.3
If after calling Not-Minority() where Sym-Diff(), then set , otherwise, set . If after calling Not-Minority() where Sym-Diff(), then set , otherwise, set . Then the following hold.
-
If is false then there is no homomorphism from to that maps to and to .
-
If is false then there is no homomorphism from to that maps to and to .
-
If both are true then there exists an -homomorphism from to , that maps to and to where . Moreover, Not-Minority returns an - homomorphism from to where Sym-Diff().
-
Suppose both are true, and . Suppose there exists a homomorphism from to with and . Then there exists a homomorphism from to with and .
Proof: We use induction on the . The base case of the induction is when all the lists are singleton, or
when all the pairs are minority. If the lists are singleton then at the beginning of Not-Minority algorithm we check whether the singleton lists form a homomorphism from to . If all the pairs are minority ( for every , )
then the function RemoveMinority inside Not-Minority algorithm, correctly returns a homomorphism from to if there exists one (see lines 6–8 of Algorithm RemoveMinority 2).
Therefore, we continue by assuming the existence of some not-minority pairs. Consider the instance constructed by Sym-Diff() in which and .
Proof of () We first notice that is closed under . Let and suppose . Thus, we have , and . Let (or ) be an arbitrary oriented path from to () in . Now where , , implies a path from to , and hence, there exists an oriented path from to in and congruent to . This would mean , according to Sym-Diff construction. Observe that is an induced sub-digraph of , and . Thus, by induction hypothesis (assuming Not-Minority returns the right answer on smaller instance) for instance , there is no homomorphism from to that maps, to and to .
For contradiction, suppose there exists an -homomorphism from to (with , ). Then, for every vertex we have , and , and . On the other hand, by the construction in function Sym-Diff, contains every element when and , and consequently . However, , with for every is a homomorphism, a contradiction to nonexistence of such a homomrphism.
Notice that and , in the first call to Sym-Diff. But, if at some earlier call to Sym-Diff, we removed from then by induction hypothesis this decision was a right decision, and hence, , and consequently is not used for .
Proof of () is analogous to proof of .
Proof of () Suppose are true. Let be the homomorphism returned by Not-Minority function for the instance , and be the homomorphism returned by Not-Minority function for instance . (i.e. from Sym-Diff()). By definition . Let be the digraph constructed in Sym-Diff(). Notice that is an induced sub-digraph of . This is because when is in then there exists some such that , and since is closed under , we have . Therefore, is either inside or ; meaning that does not expand beyond , and hence, is an induced sub-digraph of .
Now for every vertex , set . Since are also -homomorphism from to and is a polymorphism, it is easy to see that is an -homomorphism from to , and hence, also an - homomorphism from to .
Proof of () Suppose there exists an -homomorphism
with ,
. Then we show that there exists an -homomorphism with , .
Remark: The structure of the proof is as follows. In order to prove the statement of the Lemma 4.3() we use Claim 4.4. The proof of Claim 4.4 is based on the induction on the size of the lists.
Let be an -homomorphism from to with and , and be an -homomorphism from to with , and . According to , there exists an -homomorphism form to , that maps to and to . As argued in the proof of , is constructed based on and polymorphism . We also assume that agrees with in .
If , then we return the homomorphism as the desired homomorphism. Otherwise, consider a vertex which is on the boundary of , . Recall that is the set of vertices with some , such that . Let be an oriented path in from to , and let be an oriented path in from to . We may assume and meet at some vertex ( could be , see Figure 9). We may assume is chosen such that , and () where is last vertex before on , and () ( must have a neighbor inside because of the Preprocessing). Notice that if for every such path then we can extend to as well. Moreover, if there is no such then we can extend to , and define for every , and for every . It is easy to see that is an L-homomorphism from to with . Thus, we proceed by assuming the existence of such . Let , and . Now we look at , and the aim is the following.
-
•
First, modify on the boundary vertices, , so that the image of every , , i.e. .
-
•
Second, having a homomorphism (i.e. , ) from to that agrees with on .
Maybe the second goal is not possible on , and hence, we look beyond and look for differences between and inside an induced sub-digraph of containing . We construct the next part of homomorphism using and homomrphism ( obtained from , for some ), and homomorphism .

Let and let , and . Let , and such that (recall that is the last arc on ; the path from to ).
First scenario.
There exists such that
(see Figure 9). Note that since is a homomorphism, we have and . Set
Case 1. Suppose . Let , and let walk , and walk be inside and congruent with it.
Observe that the walk inside is from to . Therefore, (Figure 9), and consequently .
Case 2. Suppose . Note that in this case again by following the oriented path and applying the polymorphism in , we conclude that there exists a walk from to in , congruent to , and hence, and consequently
Since is smaller than the original instance, by Claim 4.4, the small tests pass for , and hence, by induction hypothesis, we may assume that there exists another -homomorphism from to that maps to and to , and to . Thus, for the sake of less notations we may assume is such a homomorphism. This means we may reduce the lists by identifying and when in , and hence, we restrict the lists to . Observe that according to Cases 1,2, .
We continue this procedure as follows: Let be the next vertex in with . Again if the First scenario occurs, meaning that there exists such that and then we continue as follows. Let (see Figure 10).

If then we have (this is because of the definition of the polymorphism ), and hence, as in Case 2 we don’t modify . Otherwise, we proceed as in Case 1. In other words, we may assume that there exists an -homomorphism from to that maps to , to and to , and to . We may assume is such a homomorphism. Again this means we further restrict on the boundary vertices of ; , so they are simultaneously reachable from . If all the vertices in fit into the First scenario then we return homomorphism from to where inside , agrees with and outside , agrees with . Otherwise, we go on to the Second scenario.
Second scenario. There is no such that (see Figure 11). At this point we need to start from vertex . We consider the digraph Sym-Diff() and follow homomrphism inside , by considering , and further modifying so that its images are reachable from simultaneously. For example, let , with , where is the last arc of , and with . Notice that here we may is an -homomorphism obtained by calling Not-Minority(). This homomorphism should exist because of Claim 4.4 for .

Now as depicted in Figure 11, let be a vertex in , and suppose there exists such that and . Let . Now as in Case 1,2, we conclude that there exists a path from to , and hence, we can further modify so that its image on is . If there is no such then we will be back in the Second scenario.
This process goes on as long as for all the boundary vertices the first scenario occur or we may reach to entire . In any case, we would have a homomorphism that maps to and to .
Claim 4.4
Suppose all the small tests pass for instance . Let be an arbitrary vertex of and let . Let . Then all the small tests pass for .
Proof: Let be the sub-digraph constructed in Sym-Diff(). Note that there exists, an -homomorphism, with , . Let , and let . The goal is to build a homomorphism , piece by piece, that maps to , to , and to where its image lies in . In order to to that we use induction on the size of . First suppose there exists on the oriented path from to , and let so that any oriented path from inside ends at . Since , it is easy to assume that . Now consider the sub-digraph, constructed in Sym-Diff() ( ) and let be a homomorphism from to . We may assume (see Figure 12). The other case; , is a special case of .

Notice that by the choice of , . Thus, . Let and notice that . The total size of all the lists of is less than the total size of the lists in because . Thus, by induction hypothesis for the lists we may assume that all the tests inside pass, and hence, there exists an , homomorphism from to , in which . Here is the sub-digraph constructed in Sym-Diff(). Notice that is in .
Case 1. There exists a vertex of (see Figure 12). In this case, the homomorphism agrees with on the path from to (where is also a vertex in ) that goes through vertex .

Case 2. There exists a vertex of , (see Figure 13). Let . Let . Now we consider the sub-digraph constructed in Sym-Diff() where is a vertex in . There exists, a homomorphism from to . We need to obtain (using and induction hypothesis) so that its image on some part of lies inside , and then would follow on that part. To do so, we end with one of the cases 1, 2. If case 2 occurs we need to continue considering other partial homomorphisms.
Now consider the case where does not exist, in other words, is a vertex neighbor to , and consider . In this case is adjacent to , and we can extend the homomorphism to vertex where .
Lemma 4.5
The running time of the algorithm is (here is the number of arcs plus the number of vertices of ).
Proof: At the first glance, the algorithm 2 looks exponential because we make polynomially many recursive calls. However, it is easy to see that the depth of the recursion is at most . This is based according to the construction of Sym-Diff(); for each , . This simply would guarantee that the running time of the algorithm is of .
However, it is more than just that, as the list becomes disjoint. Our implementation of algorithm would also support that the algorithm would perform much faster than .
According to Observation 2.5, we consider each connected component of separately. The connected component partitioned the , and hence, the overall running time would be the sum of the running time of each connected components. We go through all the pairs and look for not-minority ones, which takes because we search for each -tuple inside the list of each vertex of . We also observe that the running time of the Preprocessing is . Note that at the end, we need to apply RemoveMinority algorithm which we assume there exists one with running time (see [10]).
Now suppose Algorithm 2 starts calling function Sym-Diff where it considers two distinct vertices and , . The constructed instances are Sym-Diff() and Sym-Diff(. The lists (respectively) are disjoint because we exclude the boundary vertices into . Therefore, the running time of () is a polynomial of () then the overall running time would be for and . Here denote the maximum size of a list and notice that .
Let and such that they induce a bi-clique in . We may assume there exists at least one pair which is not minority. According to function Bi-Clique-Instances instead of we use only where and continue making the pair lists smaller. Eventually each Bi-clique turns to a single path or the instance becomes Minority instance. Therefore, this step of the algorithm is a polynomial process with a overall running time because we need to consider each pair of vertices of and find a bi-clique. This means the degree of the is three and the degree of is (we have of order from Preprocessing or from RemoveMinority algorithm, and of order for finding bi-cliques). Therefore, the entire algorithm runs in . This is because we consider every pair , and , and .
5 Weak near unanimity recognition algorithm
Let be a finite set. By a -ary relation on set we mean a subset of the -th cartesian power ; is said to be the arity of the relation. A constraint language (relational structure) over is a set of relations over . A constraint language is finite if it contains finitely many relations.
A hypergraph on set , consists of a set of hyperedges where each hyperedge is an ordered tuple , . Here is called the size of the hyperedge . Notice that different hyperedges could have different sizes. A hypergraph is called uniform if all its hyperedges have the same size. We denote the vertices of the hypergraph by .
For two hypergraphs , a homomorphism , is a mapping from to such that for every hyperedge , is an hyperedge in .
An instance of the constraint satisfaction problem (CSP) can be viewed as an instance of the hypergraph list homomorphism problem. We are given two hypergraphs together with lists where each hyperedge has a list of possible hyperedges (all with the same size as ) in , denoted by . The goal is to find a homomorphism such that for every hyperedge , . In other words, if we look at the vertices of as variables, the vertices of as values, and hyperedges as constraints then the existence of homomorphism illuminates a way of giving each variable a value, so that all constraints are satisfied simultaneously. A constraint is of form , and a constraint is satisfied if tuple is mapped by into one of the tuples in its list.
Definition 5.1 (Signature)
For every two hyperedges from ( or ) we associate a signature ( is the element in coordinate -th of ).
Let be a hypergraph on set . Let be a partition of into uniform hypergraphs.
A mapping is a polymorphism of arity on if is closed under each , . In other words, for every hyperedges , . Notice that here is applied coordinate wise (e.g. if are hyperedges in then is a hyperedge in ).
In order to prove Theorem 1.2 it is enough to prove the following theorem.
Theorem 5.2
Let be a hypergraph. Then the problem of deciding whether admits a weak NU polymorphism is polynomial time solvable.
The proof of the Theorem 5.2 consists of several lemmas and an algorithm as follows.
Let be a partitioned of into uniform hypergraphs. We construct graph and lists .
Vertices of and lists : The vertices of are four tuples where , . The vertices of are where is a hyperedge of . For , , consists of all , with the following property:
-
•
If , , and then .
Adjacency in : Two vertices , and from with , are adjacent if at least one of the following occurs.
-
•
.
-
•
, , and
Adjacency in : Two vertices and in where , and are adjacent if the following occurs :
-
•
-
•
If , , and then .
Lemma 5.3
admits a Siggers polymorphism if and only if there is an -homomorphism from to .
Proof: Suppose admits a Siggers polymorphism . For every vertex where , define mapping with , where is applied coordinate wise. Let and suppose is an edge of . By definition, where and where . Notice that if then the value of -th coordinate of is ( are the -th coordinates of respectively) and the value of the -th coordinate of is ( are the -th coordinate of respectively). Therefore, , and hence, there is an edge from to in . Moreover, if , are adjacent because , then by definition and, and hence, are adjacent in . Therefore, is a homomorphism from to .
Conversely, suppose is an -homomorphism from to . Suppose for . Then, for every that are the -th coordinate of , respectively, set where is the -th coordinate of (recall is a ordered hyperedge corresponding to ).
Consider a vertex with . Suppose the -coordinate of are respectively. Let . By definition, is where is the -th coordinate of . We show that . Observe that where appears in -th coordinate of and in the -th coordinate of ; is an element appearing in -th coordinate of and in the -th coordinate of ; appears in the -th coordinate of and in the -th coordinate of ; and finally appears in the -th coordinate of and in the -th coordinate of .
Therefore, are adjacent in , and since is a homomorphism, and must be adjacent in . By the construction of the lists, the -th coordinate of is the same as the -th coordinate of , i.e. .
Notice that since is a list homomorphism,
where , and hence, belongs to .
Lemma 5.4
If admits a Siggers polymorphism then admits a Siggers list polymorphism.
Lemma 5.5
If admits a Siggers polymorphism then it also admits a weak -NU for some and admits a weak -NU list polymorphism.
Proof: It has been shown by Siggers [47] that if admits a Sigger polymorphism it is also admit a weak NU of arity for some . It is easy to see that admits a weak NU list polymorphis when admits a weak -NU.
Recall that for , we say (with respect to ) is a minority pair if , otherwise, we call a non-minority pair.
Lemma 5.6
Let , . Suppose there exists , such that and but . Then at least one of the , is not a minority pair.
Proof: By contradiction suppose, . Now by applying the polymorphism on the , where is a path from to , we conclude that (because ), and hence, .
5.1 Algorithm for weak NU polymorphisms
Removing non-minority pairs
Algorithm 3 performs a test (with respect to and , ) on a sub-digraph with the lists which are constructed this way. Let . First includes vertices of such that for every we have . Next, we further prune the lists as follows; for each , . We ask whether there exists an -homomorphism from to . If there is no such homomorphism then we remove from the pair list .
Getting into minority pairs
For and , let be the set of vertices such that for every , and . Let be the vertices of outside that are adjacent (via out-going, in-going arc) to a vertex in .
Making Rectangles
Suppose for , both are minority pairs. We look at every vertex and two vertices . Suppose . Now by Lemma 5.6 if then is not a minority pair and according to Algorithm 2 (proof of correctness Lemma 4.3 ()) we can remove, from . Therefore, as long as there exist such and we continue doing so. At the end, we end up with an instance in which the rectangle property preserved for and and any and . In other words, if then .
Removing other non minority pairs
Suppose for , both are minority pairs. Now for every either or . Otherwise, according to Lemma 5.7, we would have a non minority pair in , and we can handle such non minority pairs according to function Clean-Up in Algorithm 3 (also according Algorithm 2). The proof of correctness of the function Clean-Up appears in Lemma 5.7 (3). Suppose we have removed non minority pairs with . Now we consider vertex , and two elements . Since, are still in , are still minority pairs, and hence we further consider , and and further remove other non minority pairs. We continue this process, until we reach the entire , with the lists . At this point ask the RemoveMinorty(). If there is an answer then we have a homomorphism from to that maps to and we return such a homomorphism.
Deploying Maltsev algorithm
Now we can deploy the procedure RemoveMinority similar to Algorithm 1 in [38]. The goal is to eliminate one of the from the list of . We construct a sub-digraph of which is initially in function G-xab (similar to Algorithm 1 in [38]). If there are vertices so that , then we say are not identical on the boundary. In this case sub-digraph will be extended from a vertex and two elements . This is done by adding into and the boundary vertices of are updated by the vertices of that are not already in . If the procedure RemoveMinority finds a homomorphism that maps to in the sub-digraph then we remove from , otherwise, we remove from . Following the proof of correctness of the Algorithm 1 in [38] and Algorithm 2 we obtain the correctness of this procedure.
For every , one of the is not minority
Let and let be the subset of lists in which for every , and every , is a minority pair. We get to this point because there is no -homomorphism from to that maps to . One reason is because at least one of the is not a minority pair for . If for every , is not a minority pair then at the end we should see whether there exists an -homomorphism from to .
Lemma 5.7
Suppose and both , are minority pairs. Then one of the following occurs.
-
1.
For every , , and , is minority.
-
2.
For every , , and , is minority.
-
3.
There is and vertices such that is not a minority pair.
Proof: First assume for every and every , is a minority pair and every , is a minority pair. Let such that and . Notice that since , we must have a rectangle forming with and . Without lose of generality we may assume that the internal vertices of this rectangle in are (see Figure 14).

First suppose . Let such that and and suppose . Let . By applying on we conclude that , , and . These mean that if and only if . By symmetry, if there exists such that and then if and only if , and hence, if and only if . Now suppose such that , . Let and let . Again by applying the polymorphism on we conclude that . Therefore, if and only if .
Second, suppose (see Figure 15).
Let such that and and suppose . Notice that . Let . By applying on ,
we conclude that , , , and hence, . By symmetry, when , , and , then there exists such that , , and . We also observe that if then by rectangle property we have and now it is easy to see that and (1) holds. Thus we assume that and it also follows that . Since, the choice of are arbitrary, it is easy to see that .

Proof of 3. Suppose none of the (2,3) occurs. Let , and let be an oriented path from to in and be an oriented path from to . Let be a vertex in the intersection of . Consider vertices such that and . First assume that there exist such that , and . In this case, we have , and . We may assume that has an intersection. Without loss of generality, assume that there exists some such that , , and (see Figure 16).

Let . Notice that by applying on , and , starting at to , we conclude that there is a path in from to . Moreover, by applying on , and , starting at to , we conclude that there is a path in from to so . Finally, by applying the on , , we would get a path in from to . If , then is not a minority pair, and hence, , and . Notice that if there exists at least one so that , , then we can’t conclude that is not a minority pair. So we may assume such exists, and we continue. Let . Notice that since is a polymorphism, . Now if then , and hence, is not a minority pair, and we set , and . Thus, we continue by assuming . Now by following, on , we conclude that . Therefore, if then is not a minority pair and we can set , and . Thus, we continue by assuming that , and hence, .
Next, let . Now by applying , we conclude that . By following, on , we conclude that , otherwise, is not minority pair and we are done. By following, on , , we conclude that , otherwise, is not a minority pair. Therefore, . Since was an arbitrary vertex, we conclude that , a contradiction to our assumption. The argument when and is similar. Note that when one of the (1,2) occurs on and (3) does happened and (3) does not happened then it is not difficult that we can assume that for every and every , is a minority pair.
Lemma 5.8
The Algorithm 3 correctly finds a homomorphism from to if one exists, and runs in polynomial time of and a polynomial of .
Proof: The correctness of the algorithm follows from the correctness of the Algorithm 2 and the algorithm in [38]. Moreover, as we argue in the text before the algorithm, Lemma 5.6, and Lemma 5.7 justify the way we handle the minority pairs. The Algorithm in [38] and Algorithm 2 are polynomial of ( ). By the construction of , the size of each list is a polynomial of . Therefore, it is not difficult to see that the Algorithm 3 runs in polynomial of .
6 Experiment
We have implemented our algorithm and have tested it on some inputs. The instances are mainly constructed according to the construction in subsection 3.1.





Acknowledgements:
We would like to thank Víctor Dalmau, Ross Willard, Pavol Hell, and Akbar Rafiey for so many helpful discussions and useful comments.
References
- [1] E. Allender, M. Bauland, N. Immerman, H. Schnoor, and H. Vollmer. The complexity of satisfiability problems: refining schaefer’s theorem. Journal of Computer and System Sciences, 75(4): 245–254 (2009).
- [2] J. Bang-Jensen, P. Hell, and G. MacGillivray. The complexity of colouring by semicomplete digraphs. SIAM J. Discrete Math., 1 : 281–298, 1988.
- [3] J. Bang-Jensen and P. Hell. The effect of two cyles on the complexity of colourings by directed graphs. Discrete Appl. Math., 26 : 1–23, 1990.
- [4] L. Barto, M. Kozik, and T. Niven. The CSP dichotomy holds for digraphs with no sources and no sinks (a Positive answer to a conjecture of Bang-Jensen and Hell). SIAM J. Comput, 38(5) : 1782–1802, 2009.
- [5] R. Brewster, T. Feder, P. Hell, J. Huang, and G.MacGillivray. Near-unanimity functions and varieties of reflexive graphs. SIAM Journal on Discrete Mathematics, 22(3) :938–960, 2008.
- [6] L.Barto, A.Krokhin, and R.Willard. Polymorphisms, and how to use them. Dagstuhl Follow-Ups, 7, Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, 2017.
- [7] A. Bulatov. A dichotomy theorem for constraints on a three-elements sets. Journal of the ACM, 53(1): 66–120, 2006.
- [8] A.Bulatov. Complexity of conservative constraint satisfaction problem. Journal of ACM Trans. Comput. Logic, 12(4) : 24–66, 2011.
- [9] A. Bulatov. A dichotomy theorem for nonuniforms CSPs. In Proceedings of the 58th IEEE Annual Symposium on Foundations of Computer Science, FOCS 319–330, 2017.
- [10] A. Bulatov and V. Dalmau. A simple algorithm for Maltsev constraint. SIAM J. Comput., 36(1): 16–27, 2006.
- [11] A. Bulatov, P. Jeavons, and A. Krokhin. Classifying the complexity of constraint using finite algebras. SIAM journal on computing, 34(3): 720-742, 2005.
- [12] J.Y. Cai, X. Chen, and P. Lu. Graph homomorphisms with complex values: A dichotomy theorem. SIAM J. Comput., 42(3): 924–1029, 2013.
- [13] C. Carvalho, V.Dalmau, and A. Krokhin. CSP duality and trees of bounded pathwidth. Theor. Comput. Sci., 411(34–36): 3188–3208, 2010.
- [14] H. Chen, B. Larose. Asking the metaquestions in constraint tractability. ACM Transactions on Computation Theory (TOCT), 9 (3), 2017.
- [15] N. Creignou, S. Khanna, and M. Sudan. Complexity classifications of boolean constraint satisfaction problems. SIAM Monographs on Discrete Math. and Applications, vol. 7, 2001.
- [16] P. Csikvári and Z. Lin. Graph homomorphisms between trees. Elec. J. Combin., 21 : 4–9 ,2014.
- [17] R. Dechter. Constraint networks. Encyclopedia of Artificial Intelligence 276–285 , 1992.
- [18] V. Dalmau. A new tractable class of constraint satisfaction problems. In Proceedings 6th International Symposium on Artificial Intelligence and Mathematics, 2000.
- [19] V. Dalmau, D. Ford. Generalized satisfiability with occurrences per variable: A study through delta-matroid parity. In Proceedings of MFCS 2003, Lecture Notes in Computer Science, 2747 : 358–367, 2003.
- [20] L.Egri, P.Hell, B.Larose, and A.Rafiey. Space complexity of list H-coloring : a dichotomy. In Proceedings of SODA, 2014.
- [21] T. Feder. Homomorphisms to oriented cycles and -partite satisfiability. SIAM J. Discrete Math., 14 : 471–480, 2001.
- [22] T. Feder A dichotomy theorem on fixed points of several nonexpansive mappings. SIAM J. Discrete Math., 20 : 291–301, 2006.
- [23] T. Feder and P. Hell. List homomorphisms to reflexive graphs. J. Comb. Theory Ser., B 72 : 236–250, 1998.
- [24] T.Feder, P.Hell, and J.Huang. Bi-arc graphs and the complexity of list homomorphisms. J. Graph Theory, 42 : 61–80, 1999.
- [25] T. Feder, P. Hell, J. Huang. List homomorphisms and circular arc graphs. Combinatorica, 19 : 487–505 (1999).
- [26] T. Feder, P. Hell, and J. Huang. Bi-arc graphs and the complexity of list homomorphisms. J. Graph Theory, 42 : 61–80 ,2003.
- [27] T. Feder, P. Hell, B. Larose, C. Loten, M. Siggers, C. Tardif. Graphs admitting k-NU operations. Part 1: The reflexive case. SIAM Journal on Discrete Mathematics, 27 (4) : 1940–1963 (2013).
- [28] T. Feder, F. Madelaine, and I.A. Stewart. Dichotomies for classes of homomorphism problems involving unary functions. Theoret. Comput. Sci., 314 : 1–43, 2004.
- [29] T.Feder and M.Vardi. Monotone monadic SNP and constraint satisfaction. In Proceedings of STOC, 612–622, 1993.
- [30] T. Feder and M.Y. Vardi. The computational structure of monotone monadic SNP constraint satisfaction: A study through Datalog and group theory. SIAM Journal on Computing, 28(1): 57–104, 1998.
- [31] P. Hell and J. Nešetřil. On the complexity of -colouring. J. Combin. Theory B, 48 : 92–110, 1990.
- [32] P. Hell and J. Nešetřil. Graphs and Homomorphisms, Oxford University Press, 2004.
- [33] P.Hell and J.Nešetřil. Colouring, constraint satisfaction, and complexity. Computer Science Review , 2(3): 143–163, 2008.
-
[34]
P.Hell, A.Rafiey, A.Rafiey. Bi-arc digraphs and conservative polymorphisms.
CoRR, arxiv.org/abs/1608.03368v5, 2020. - [35] P.Hell and A.Rafiey. The dichotomy of list homomorphisms for digraphs. In Proceedings of SODA 1703–1713, 2011.
- [36] P. Hell and A. Rafiey. The dichotomy of minimum cost homomorphism problems for digraphs. SIAM J. Discrete Math., 26(4): 1597–1608, 2012.
- [37] A. Kazda. Maltsev digraphs have a majority polymorphism. Eur. J. Comb, 32(3): 390-397, 2011.
- [38] J. Kinne, A. Murali, and A. Rafiey. Digraphs homomorphism problems with Maltsev condition. CoRR, arxiv.org/abs/2008.09921, 2020.
- [39] L.G. Kroon, A. Sen, H. Deng, A. Roy. The optimal cost chromatic partition problem for trees and interval graphs. In Graph-Theoretic Concepts in Computer Science (Cadenabbia, 1996), Lecture Notes in Computer Science, 1197 : 279–292, 1997.
- [40] V. Kumar. Algorithms for constraint-satisfaction problems. AI Magazine, 13 :32–44, 1992.
- [41] P. Jeavons. On the algebraic structure of combinatorial problems. Theor. Comput. Sci., 200(1-2): 185-204 , 1998.
- [42] R. Ladner. On the structure of polynomial time reducibility. Journal of the ACM (JACM), 22(1): 155–171, 1975.
- [43] B. Larose, L. Zádori. The complexity of the extendibility problem for finite posets. SIAM J. Discrete Math., 17 : 114–121, 2003.
- [44] M. Maroti, and R. McKenzie. Existence theorems for weakly symmetric operations. Algebra Universalis, 59 : 463–489, 2008.
- [45] T.J. Schaefer. The complexity of satisfiability problems. In Proceedings of STOC, 216–226 (1978).
- [46] M.H.Siggers. A new proof of the H-coloring dichotomy. SIAM J. Discrete Math., 23 (4) : 2204–2210, 2010.
- [47] M.H.Siggers. A strong Maltsev condition for locally finite varieties omitting the unary type. Algebra universalis, 64(1-2):15–20, 2010.
- [48] M.Y. Vardi. Constraint satisfaction and database theory: a tutorial. Proceedings of the 19th Symposium on Principles of Database Systems (PODS), 76–85, 2000.
- [49] R.Willard. Refuting Feder, Kinne, and Rafiey. In CoRR, arXiv:1707.09440v1, 2017.
- [50] D.Zhuk. A proof of CSPs conjecture. In Proceedings of the 58th IEEE Annual Symposium on Foundations of Computer Science, FOCS 331–342, 2017.