11 Stepan G. Margaryan
Аbout a certain - complete problem
In this article, we introduce the concept of special decomposition of a set under the given pairs of subsets of that set, and the concept of special covering of a set under such a decomposition. We study the conditions for existence of special coverings of sets, under special decomposition of the set. Such conditions of formulated problem have important applications in the field of satisfiability of functions. Our goal is to study the relationship between sat problem and the problem of existance of special covering of te set. We also study the relationship between classes of computational complexity by searching for special coverings of the sets. We prove, that the decidability of sat problem, in polynomial time reduces to the problem of existence of a special covering of a set. We also prove, that the problem of existence of a special covering of a set, in polynomial time reduces to the decidability of the sat problem. Therefore, the mentioned problems are polynomially equivalent. And then, the problem of existence of a special covering of a set is -complete problem.
Special coverings of sets
Let for some natural number , { , , . . . , } is a nonempty set of elements. We assume that for a given set and for some natural number , we have arbitrary ordered pairs of arbitrary subsets of the set denoted as . . . , . Let’s denote by the ordered set of those pairs: ={ . . . , }, where , for {1, . . . , } and {0,1}. Definition
1. The set will be called a special decomposition of the set under the given pairs of subsets, if ( i ) ∀ {1, . . ., } )= ∅ ( ii ) ∀ { } ∅ or ∅ ), ( iii ) ⋃ . The subsets . . . , of the set will also be called subsets of the given decomposition. It is easy to assume, that the same subsets of the set can form different special decompositions and also these subsets may not allow any special decompositions. Definition
2. Let the set is a special decomposition of the set . An ordered set ={ , } , where { } , will be called a special covering of the set under the decomposition , if ⋃ . (
2, that for any { } the subsets and cannot simultaneously belong to the covering, but one of them exactly belongs. Let for the set of elements and for natural number , given the set { } and where for {1, . . . , } and {0,1}, . Proposition p1. Let the set is a special decomposition of the set . Then, for any , , . . . , , the set = { , } is a special covering of the set if and only if ∀ {1, . . . , } ( . . . . . . ) ) Proof : It is evident that for any {1, . . . , } and α {0,1} ⋃ and ⋃ Considering also the condition ( d Corollary p1.1 Let the set is a special decomposition of the set . Then for any , , . . . , , the set is a special covering of the set if and only if for any { } and for any element , there exists a subset such, that & & . Proof : Since for some , , . . . , , the set is a special covering for the set , then according to p1 . . . . . . . This means that for any element there exists a subset such, that and . Obviously, the opposite is also true. Proposition p2. Let the set is a special decomposition of the set and for some , , . . . , , the set = { , } is a special covering of the set , where { } . Let for some subset , where α {0,1}, { } , holds ⊊ ⋃ . (p2.i) Then the superscript means when α=0, and 0, when α=1. by the symbol we mark the end of the proof. Proof : Suppose, . Then . From the condition (p2.i) it follows that there exists an element , such that ∀ & . Since ∅ then implies . Hence, cannot be a special covering for the set . And this contradiction.
Corollary p2.1 Let the set be a special decomposition of the set . If there is a pair such, that ⊊ ⋃ and ⊊⋃ . (p2.1.i) Then, under the decomposition there is no special covering of the set . Proof : If under the mentioned conditions there is a special covering, then from the proposition p2 and the conditions (p2.1.i) it follows that both subsets and should be included in it. But this is contrary to the definition d2. Transformation of special decomposition
Let for set and for some natural number we have an ordered set of arbitrary ordered pairs of arbitrary subsets of the set : { . . . , } . Each permutation , ,. . . , of elements , when the orders of ordered pairs do not change, we will call , ,. . . , -transformation or -transformation, where is the number of the pair moving into the -th place. We will denote by , ,. . . , the ordered set resulting by means of ( , ,. . . , -transformation of the set . If there is no need to mark the numbers of the elements involved in the transformations, then the -transformation will be denoted by : { . . . , ,. . . , } , where { For some ≤ , the permutation of the components of ordered pairs by the numbers , , . . . , of the set , for which the order of the elements of does not change, we will call , , . . . , -transformation or an -transformation. We will denote by , ,. . . , the ordered set resulting by means of , ,. . . , - transformation of the set . If it is not necessary to mark the numbers of the pairs participating in the transformation, then I-transformation will be denoted by { , , . . . , ( , ), . . . , ( , )} where { } and ( ) { Obviously, the transition from the set to the set is a -transformation, and the transition from the set to the set is a -transformation. Lemma
1. For each -transformation i) the set { } is a special decomposition of the set if and only if the set ( ) is a special decomposition of the set . ii) If the set is a special decomposition of set , then the set has a special covering under the decomposition if and only if it has a special covering under the decomposition . Proof : i) Obviously, during the transition from the set to the set and the transition from to the contents of the subsets of the decomposition do not change, but only the orders of the elements of changes. This means, that the conditions of special covering are not violated. Therefore, the sets and either are special decompositions of the set at the same time or at the same time are not. ii) With the same reasoning it is easy to notice, that during the transition from the set to the set and vice versa, the contents of the subsets of the decomposition do not change. It means the conditions of the special covering do not change. Then it is obvious that if, under decomposition , the set ={ , } { } is a special covering for the set S, then under decomposition the set ={ , } will be a special covering for the set, where { ,. . ., } {1, . . . , } and { It is easy to see, that the opposite also takes place..
Lemma
2. For each I -transformation i) the set { } is a special decomposition of a set if and only if the ordered set is a special decomposition of the set . ii) If the set is a special decomposition of the set , then the set has a special covering under the decomposition if and only if it has a special covering under decomposition . Proof : i) Obviously during the transition from the set to the set and the transition from to , the contents of the subsets of decomposition do not change. Only the orders of the components of some ordered pairs change. This means that the conditions of the special decomposition are not violated. Hence, the sets and either are special decompositions of the set at the same time or at the same time are not. ii) Using the same reasoning, it turns out that during the transition from the set to the set and vice versa, only the orders of the components of ordered pairs with numbers , . . . , change for some { , . . . , } {1, . . . , } . Then it is obvious that if under decomposition , the set ={ , } { } is a special covering for the set , then it will also be a special covering for the set under decomposition , and vice versa. According to lemmas
1 and
2, for any special decomposition of the set , any -transformation or -transformation preserve the possibility of being a special decomposition of the set and having a special covering for under such a decomposition. For technical convenience, for any α {0,1} we denote: ⋃ , { }, { }, { , . . . } { }. The set s is obtained from by respectively substitutions in the places with numbers , . . . of the ordered set , the subsets , . . . , , instead of subsets , . . . , . Note that and we consider as ordered sets. Definition
3. i) The set will be called a set of α-components of ordered pairs of decomposition. ii) For any { , . . . } { } the set will be called a set of α-components of the ordered pairs of decomposition , . . . . iii) For any decomposition, the set of α-components of ordered pairs will also be called a set of subsets of the domain or the set of domain . iv) If the set of domain is a special covering for the set , then such a covering will be called a special -covering or briefly -covering for the set . Lemma
3. Let the set { . . . , { . . . , } is a special decomposition of the set . Then, under the decomposition there exists a special covering for the set if and only if for some α {0,1}, there exists a -covering under some decomposition Proof : Obviously, for any α {0,1} the process of forming of the domain does not violate the definition (
2) of a special covering. Consequently, a -covering is also a special covering for the set . Now suppose that there is a special covering for the set . Let such is the set = { , } . If for all subsets , where { } , we have s , then is also a -covering. Let , . . . , are all subsets such, that ( { , . . . , } s ) & ( { , . . . , } , then applying -transformation with respect to the ordered pairs ( , , . . . , ( , , according to Lemma
2 we obtain that is also a covering. T he - completeness of the problem of a special covering Consider Boolean functions.
Let a Boolean function of variables is given in conjunctive normal form ( ). With a certain natural numbering of clauses, we denote by the -th clause of the formula. That is = . . . , where { , . . . , } {1, . . . , }, {1, . . . , } , {0,1}, = ¬ , = , {1, . . . , }. ( , , . . . , ) = ⋀ . For simplicity, we assume that no variable and its negation are included in any clause simultaneously. Obviousely, it do not limit the set of functions being considered. The sat problem is the problem of determining if given function is satisfiable, that is if there exists , . . . , , such that { 0,1} and ( , . . . , ) =1 Our goal is to reduce the decidability of the sat problem to decidability of the problem of finding a special covering for a set, under the special decomposition of the set. To discuss the possibilities of reducibility, we need to define specific formal languages over some alphabets. For convenience we consider the alphabet = { , 1, , , ⋆ , ▫ , , 𝜀} and other alphabets included in . We use the symbols 0 , 1, , , to form different literals. We consider literals in following meanings: = ( ) = ¬ and = ( ) = , where ( ) is binary code of number , in any one to one binary encoding. We will identify and . The expression ( ) will be called the index of the literal. If a function of n variables is represented in , then with this designation , n will also be the number of literals with pairwise different indexes included in clauses of the function . Similarly, we will use the symbols , 0, 1 to form expressions such as = ( ), for designation elements of sets, where ( ) is the binary code of number . However, for convenience, when assigning literals and elements of the sets, we will often use subscripts. The symbols '⋆' and ' ▫' are separating symbols. And ' 𝜀' is a special symbol, which will correspond to empty string. For any natural numbers and we define the languages ( ) and ( , ) over the alphabet = { , 1, , , ⋆ } as follows: ( ) = {⟨ ⟩ / { , } is a set of literals, ( ≤k≤ ) & & ≤ ≤ ) & ( {0,1}) & ( , if ) }. It is important to note, that the language ( ) does not contain an empty string. Also it does not contain a string that includes any variable and its negation simultaneously. We will say that the string ⟨ ⟩ corresponds to the set { , } as well as we will say that the string is formed of the clause. Let's denote by with different indexes, the strings included in ( ). = ⟨ ⟩ . With such designations we define the language ( , ) as follows: ( , ) = {⟨ ⋆ ⋆ ⋆ ⟩ / ∀ {1, . . . , }, ( ) and is the number of literals with pairwise different indexes in clauses }. Remark 1. It is easy to prove, that for any natural numbers and , ⟨ ⋆ ⋆ ⋆ ⟩ ( , ) if and only if the clauses corresponding to the strings , , . . . , , form a certain function represented in with variables and with clauses. We denote by ( ) the number of literals and symbols ‘ ⋆’ of the string ⟨ ⋆ ⋆ ⋆ ⟩ Obviously ( ) does not exceed the number for some constant . The number ( ) will be also called the length of input data for the of function . Let's consider the alphabet = { ⋆ ▫ , , 𝜀} . Using the symbols , 0 and 1, we compose expressions over the to denote elements of an arbitrary set: { , , . . . , }, where , , . . . are different binary expressions. Since the empty subset of the set plays a certain important role in the special decomposition, we need a symbol for forming the strings corresponding to the pairs of subsets with an empty component. As such a symbol we will consider the symbol 𝜀 Σ. That is we will use the string 𝜀 to form strings , corresponding to pairs of subsets such as ( , ∅) or ( ∅, ). For a natural number , w e define the language ( ), ( ) and ( ) over the alphabet as follows: ( )= {⟨ . . . ⟩/ (1 ≤ ≤ ) & ( , if )}. Note that the language ( ) does not contain an empty string . ( )= {𝜀} ( ) We say that the string = ⟨ . . . ⟩ corresponds to the set { } = { , , . . . , } or the string is formed by the set { }. It is obvious that a n element is included in the string of the language ( ), if and only if it belongs to the set { }, and { } forms the string . F or any set , we denote by ⟨ ⟩ the string which forms by the set . That is for of no more, than elements ⟨ ⟩ ( ). W ith such designation we define the following: ( ) = {⟨ ▫ ⟩ / ( ( )) & ( ( )) & ({ } ⋂ { } = ∅)& & ( 𝜀 or 𝜀)}. For each strings ( ) and ( ), the string ⟨ ▫ ⟩ included in the language PAIS( ), is an ordered pair of and . It is important to note, that for any natural number , holds ⟨ ▫ 𝜀⟩ ( ) and ⟨𝜀 ▫ ⟩ ( ) only with { } ∅ and { } ∅. For any natural numbers and , we define the language ( , ) over the alphabet as follows : ( , ) = {⟨ ▫ ⋆ . . . ⋆ ▫ ⋆ . . . ⋆ ▫ ⟩ / is the total number of elements with pairwise different indexes in all (for {0, 1} and {1, . . . , }) and ∀ {1, . . . , } ⟨ ▫ ⟩ ( ) }. For any string ⟨ ⟩ = ⟨ ▫ ⋆ . . . ⋆ ▫ ⋆ . . . ⋆ ▫ ⟩ ( , ) we call the sets { } (for {0, 1} and {1, . . . , }), the subsets corresponding to ⟨ ⟩. Remark 2. It is obvious, that for any natural numbers and , ⟨ ▫ ⋆ . . . ⋆ ▫ ⋆ . . . ⋆ ▫ ⟩ ( , ) if and only if is the number of elements of the set ⋃ { } { } and the ordered set of ordered pairs {({ } , { }) , . . . , ({ } , { }) , . . . , ({ } , { } )}, is a special decomposition of the set of elements, denoted by = ⋃ { } { } , where ⟨ ⟩ corresponds to the set { } for {1, . . . , }. Sometimes, if it does not lead to an ambiguity, we will use the notation instead of { } for the set corresponding to the string ⟨ ⟩.
Let the function is represented in with clauses, and is the number of literals with pairwise different indexes, included in the clauses of . Let is a nonempty set of elements, We match elements of the set to the clauses of function in some sequential enumeration of clauses, such that the element = ( ) for {1, . . . , } corresponds to the -th clause of . We will identify the clause and its corresponding element ( ), which we will call the number or the code of clause. With such designation, for brevity we denote the set of clauses of function as ( ) = { , , . . . , } and we will write considering it as inclusion of the literal in the clause corresponding to . let's form the sets and for each {1, . . . , }, as follows : = { / ( ) and , ( {1, . . . , } ) }, = { / ( ) and , ( {1, . . . , } ) }. It is evident, that for any {1, . . . , }, the sets and are subsets of the set ( ). If for some {0, 1} and for all {1, . . . , } holds , then ∅. Let's denote = ⟨ ⋆ ⋆ . . . ⋆ ⟩, where for {1, . . . , }, ⟨ ⟩ ( ) is the string formed by clause of function . That is, we will consider as a string corresponding to the function , and will be considered as a function corresponding to the string . Proposition p3. If for some natural numbers and , holds ( , ), then i ) ∀ {1, . . . , } ⟨ ▫ ⟩ ( ). ii ) ⋃ Proof : i) We will prove, that for each {1, . . . , }, holds i .1) ⟨ ⟩ ( ) and ⟨ ⟩ ( ), i .2) ⋂ ∅, i .3) ∅ or ) ∅. i .1) Since for any {1, . . . , }, the sets and are subsets of the set ( ), then the point i) holds. i .2) I f for any pair ( ) we had ⋂ ∅, then it would mean that there exists a clause, with certain number , which contains and simultaneously. This contradicts the condition of the language ( ). i .3) Let , , . . . , are literals with different indexes, included in the clauses of function . Suppose there exists an index { } such, that = ∅ and = ∅ . It means the literals and do not belong to any of clauses. But it contradicts to condition of language ( , ), the process of forming subsets and as well as the condition of the language ( ). ii ) If for some element , where { } , holds ⋃ , then, there is an index { } such that or and therefore, . If then contains some literals. It means there is an index { } such, that is found in clause or is found in clause , which means, that and ⋃ . Hence ⋃ . Lemma . For any natural numbers and , if = ⟨ ⋆ ⋆ . . . ⋆ ⟩ ( , ), then the string ⟨ ▫ ⋆ ▫ ⋆ . . . ⋆ ▫ ⟩ is formed in polynomial time with respect to the length of string . Proof : We describe the general features of the workflow of a particular Turing machine ( ), with the alphabet , which outputs the string ⟨ ▫ ⋆ ▫ ⋆ . . . ⋆ ▫ ⟩ in polynomial time, when input the string . It is convenient to consider a Turing machine denoted by , with input tape, output tape and with two working tapes. The work process consists of following stages. The input tape receives a string of clauses. On the first stage of work, the Turing machine records the codes of clauses on the first working tape in the same order in which the clauses are on the input tape. The does it in order to easily remember the code of the clause being considered. uses the second working tape for remember the current forming strings and successively recording the pairs ( , 0) and ( , 1) on it for {1, . . . , } . We say that scans a code or a pair of indexes, meaning that it scans the symbols that form them. After recording the numbers of clauses, starts working by recording (1, 0) on the second working tape and 𝜀 on output tape. Еach action of is determined by configuration of four records on different tapes - scanned at current moment. We denote it ( , , , ), where is current scanned record on input tape, is current scanned record on first working tape, is current scanned record of pair ( , α) on the second working tape, where {1, . . . , }, {0,1}, is current scanned record on output tape. The first configuration is ( , , ( , 0), 𝜀 ), where is the first symbol of the string . To form and , the Turing's machine performs actions depending on configuration: with configuration ( , , ( , α), 𝜀 ), the - records instead of 𝜀, on the output tape, - scans the symbol on the output tape, - scans the symbol following of on the input tape, with configuration ( , , ( , α), ), the - adds to the output tape and scans it, - scans the symbol following of on the input tape, with configuration ( ⋆ , , ( , α), ), the - scans the symbol on the first working tape - scans the symbol following of the symbol ' ⋆' on the input tape, with configuration (end of input data, , ( , 0), ), the - adds the symbol ‘▫’ to the next on the output tape, - records the pair ( , 1) on the next place following the pair ( , 0) and scans it, - records the symbol 𝜀 on the next place of ‘▫’ on the output tape and scans it, - scans the first symbol on input tape, with configuration (end of input data, , ( , 1), ) and for < , the - adds the symbol ‘ ⋆ ’ on the next place following the on output tape, - records the symbol 𝜀 on the next place of ‘ ⋆ ’ on the output tape and scans it, - records the pair ( +1, 0) on the next place following the pair ( , 1) on the second working tape and scans it, - scans the first symbol on input tape, with (end of input data, , ( , 1), ), the Turing's machine stops. It is easy to see that outputs the string ⟨ ▫ ⋆ ▫ ⋆ . . . ⋆ ▫ ⟩. Also, the number of actions performed by to complete the described procedure is polynomial with respect to the length of input data of the string , denoted by . In the worst case, the number of mentioned actions does not exceed the number for certain constant . We denote by the following set: = {( , ) , ( , ), . . . , ( , )} Remark 3. In fact, Lemma enables us, based on some function as an input data , to obtain the set in polynomial time with respect to the length of mentioned input data . Let's denote by ( ) the string formed as a result of 's work on input : ( ) = ⟨ ▫ ⋆ ▫ ⋆ . . . ⋆ ▫ ⟩. Lemma . For any natural numbers and , ( , ) if and only if ( ) ( , ). Proof : Let for natural number and , holds ( , ).
Then according to proposition p3 i), it is easy to see that ( ) = ⟨ ▫ ⋆ ▫ ⋆ . . . ⋆ ▫ ⟩ ( , ) . Now, let for natural numbers and , we have ( ) ( , ). It means i ) ∀ { } ( ∅ or ∅), ii ) ∀ { } ( ⋂ ∅). The point i) means, that for each { } , there is a clause such, that or . The point ii) means, that there are no clause and an index { } such, that and simultaneously.
So, for each { } there is a clause including the literal or there is a clause including the literal and there is no clause including the literals and simultaneously.
It means that the number of literals with pairwise different indexes is equal to . Meanwhile, each clause , included in some set cannot be empty. Therefore ( , ).
If under the special decomposition there exists a special covering for the set , then we will denote such a covering by ={ , } . For natural numbers and , we define the languages sat ( , ) and ( , ): sat ( , ) = { ⟨ ⟩ / is in with clauses and is a satisfiable function }, ( , ) ={ ⟨ ▫ ⋆ . . . ⋆ ▫ ⋆ . . . ⋆ ▫ ⟩ ( , )/ there are , , . . . , , such that for 1 ≤ ≤ , {0,1} and ⋃ { } = ⋃ { } { } }. Theorem t1. For any natural number and , sat ( , ) if and only if ( ) ( , ). Proof : Let for some and , sat ( , ) and is the function corresponding to the string . Acording to the definition, this means that is in with clauses and is a satisfiable function, that is there are some , . . . , , ( {0,1} ) such, that ( , , . . . , ) =1. We show, that the set { , } is a special covering of the set . According to proposition p3 and lemma it suffices to prove that ⋃ . Let's show that for each clause there is a subset , which includes . Suppose there is a clause not included in any of subsets , for {1, . . . , }. This means that none of the literals , , . . . , is found in the clause . It means is a disjunction of some literals of the form with {1, . . . , } . But since ∀ { } ( = 0. And this is contrary to the fact that ( , , . . . , ) =1. Hence, each clause enters into the subset for some {1, . . . , }. It means the set { , } is a special covering of . That is ⋃ = ⋃ { } { } . Therefore ( )=⟨ ▫ ⋆ ▫ ⋆ . . . ⋆ ▫ ⟩ ( , ). Suppose now that for some and , ( ) ( , ). It means ( ) ( , ) and there are , , . . . , , where { } , such, that the set { , } is a special covering for the set . According to definition, the subset contains clauses that contain literal . Therefore, if = 1, then the value of all clauses in , is equal to 1: ∀ ∀ [( { } {1, . . . , }) & ( = 1) & ( )] ⇒ = 1). Obviously, if = , = , . . . , = , then ( , , . . . , ) =1. Comparing this with the results of lemma
5, that is: ( ) ( , ) if and only if ( , ), we obtain that sat ( , ). Remark 4. It is not difficult to simulate a Turing machine that recognizes the strings of language ( , ) in a polynomial time with respect to the length of string. The general workflow of such a is as follows: Similar to , it runs over all symbols of input string and compares the contents of those string with conditions in definition of the language ( , ). That is, receiving the string , the does: i). checks if the string consists of clauses separated by symbol ' ⋆' and arranged in a specific order, ii). checks if each clause that occurs in string satisfies the conditions of the language ( ), iii). checks if the number of literals with pairwise different indexes in clauses included in the string is equal to . If any of those conditions is not satisfied, then the rejects the string. I t is easy to prove that performs the procedure of points i) - iii), in no more than actions for some constant , where | | is the length of string . So, in a polinomial time, such a recognizes the string of language . Let's for any natural numbers and , define the function : → as follows: ( ) = { ⟨ ⟩ . It is evident, that is a polynomial time computable function with computable time not exceeded the number for certain constant , where | | is the length of string . Also it is evident, that for any string and for natural numbers and , if and only if ( ) ( , ) . Recall, that ⟨ ⟩ and ⟨ ⟩ ( , ) . Theorem t2 . For any natural numbers and , sat ( , ) ≤ ( , ). Proof : It is obvious that sat ( , ) ( , ) and ( , ) ( , ) According to lemma , there is a Turing's machine , which for any string ( , ), forms the string ( ) in polynomial time with respect to the length of string ⟨ ⟩ . According to theorem t1 and remark 4, for any string , and for any natural numbers and , sat ( , ) if and only if ( ) ( , ). Since is a function computable in polynomial time, then the language sat ( , ) is polynomially reduced to the language ( , ) . Consider now the reducibility of the problem of finding a special covering for a set, to decidability of the sat problem. Suppose, that { , , . . . , } is a nonempty set of elements that are composed over the as mentioned above. Let ⟨ ⟩ is a some string of the language ( , ): ⟨ ⟩ = ⟨ ▫ ⋆ . . . ⋆ ▫ ⋆ . . . ⋆ ▫ ⟩ ( , ), We denote by ( ) the number of symbols forming the string ⟨ ⟩. We call the number ( ) a number of the length of ⟨ ⟩. Based on the string ⟨ ⟩ we form some string belonging to the language ( , ), as follows: Let for each element , ( ) be the set of literals, that are composed as follows:: ( ) = { / ( {1, . . . , }) & ( { } ) & ( ) & ( { })}. Let ( ) be the clause formed by literals of the set ( ) and ( ) be the string over the alphabet , which forms by the set ( ): ( ) = ⟨ ⟩ where ( ). Let’s compose the string ⟨ ( ) ⋆ ( ) ⋆ . . . ⋆ ( ) ⟩ over the alphabet , which will correspond to the Boolean function in with clauses denoted by ( ) = ⋀ . Since i t is easy to see, that as a result of formation of all clauses ( ), the number of literals in clauses with pairwise different indexes will be equal to , then it is obvious ⟨ ( ) ⋆ ( ) ⋆ . . . ⋆ ( ) ⟩ ( , ). Lemma
6. If for natural numbers and , holds ⟨ ⟩ = ⟨ ▫ ⋆ . . . ⋆ ▫ ⋆ . . . ⋆ ▫ ⟩ ( , ). Then the string ⟨ ( ) ⋆ ( ) ⋆ . . . ⋆ ( ) ⟩ is forming in a polynomial time with respect to the length of string ⟨ ⟩ . Proof : The sketch of proof is similar with the proof of Lemma
4. We describe the general features of the workflow of a particular Turing machine denoted by , with the alphabet , which in polynomial time outputs the string ⟨ ( ) ⋆ ( ) ⋆ . . . ⋆ ( ) ⟩, when input the string ⟨ ▫ ⋆ . . . ⋆ ▫ ⋆ . . . ⋆ ▫ ⟩ We consider a Turing machine , with input tape, output tape and two working tapes. The general principles of operation of is as follows: To form the clause ( ), it runs over the symbols of input data and with finding the element included in , adds the literal to the literals forming the clause ( ) on the output tape. On the first stage of work, the Turing machine records the pairs ( , ) of indexes of subsets for all {1, . . . , } and { }, on the first working tape in the same order in which the subsets are on the input tape. The second stage of work consists of forming the clauses ( ) for 1 ≤ ≤ . To memorize that the clause is forming with respect to element , uses the second working tape, adding on it and watching on that tape during the process of formation ( ). After recording the pairs ( , ), the starts work by recording on the second working tape. To determine each step of it is enough to consider the configuration of three current scanned records on different tapes, which we denote by ( , , ,), where is the scanned symbol on input tape, is the scanned pair of indexes on the first working tape of considering subset, is the scanned element on the second working tape, that is the element if the clause ( ) is forming. The first configuration that will be considered to start working over the input data, is ( , ( , 0), ), where is the first symbol of input data. To form ( ), the Turing's machine performs actions depending on configuration: with configurations ( ε, ( , ), ) or ( , ( , ), ), where , the - scans the next symbol on input tape. with configuration ( , ( , ), ), the - adds the literal on output tape, - scans the next symbol on input tape. with configuration ( ▫, ( , ), ) the - scans the next symbol on input tape, - scans the pair ( , ) on the first working tape. with configuration ( ⋆ , ( , ), ) the - scans the next symbol on input tape, - scans the pair ( +1, ) on the first working tape. with configuration (end of input data, ( , ), ) and < , the - adds ⋆ to the output tape, - adds the symbol to the second working tape and scans it, - scans the first symbol of input tape, - scans the pair ( , ) on the first tape, - starts to run over the input data again, to detect the element . with configuration (end of input data, ( , ), ) the stops. Obviously on the output tape we will obtain the string ⟨ ( ) ⋆ ( ) ⋆ . . . ⋆ ( ) ⟩. It is easy to see that the number of actions performed by to complete the described procedure is polynomial with respect to the number ( ). In the worst case, the number of mentioned actions does not exceed the number for certain constant . Let's denote by ( ) the string formed as a result of 's work on input ⟨ ⟩: ( ) = ⟨ ( ) ⋆ ( ) ⋆ . . . ⋆ ( ) ⟩. Obviously forms the string ( ) based on the string ⟨ ⟩ for any special decomposition of the set { , , . . . , }. Theorem. t3 For any natural numbers and , ⟨ ⟩ ( , ) if and only if ( ) sat ( , ). Proof : Let ⟨ ⟩ ( , ). It means: i) the total number of elements with pairwise different indexes in all , for {0, 1} and {1, . . . , }), is equal to . So, each of the elements , , . . . , is included in some of subsets corresponding to the string ⟨ ⟩. ii) there are subsets , , such that ⋃ = ⋃ , where ( {0,1} ). It means, that for each element ⋃ there exists a subset { , } such, that . On the other hand, for any index {1, . . . , }, if , then the literal is found in the clause ( ). Thus, the number of forming clauses will be . It means the number of strings corresponding to clauses also will be . Let's for simplicity denote by = ( ). Also we denote by the function corresponding to the string . As = implies = 1, then = & = & . . . & = implies ( , , . . . , ) = ( )( , , . . . , ) =1, so ( ) = ⟨ ( ) ⋆ ( ) ⋆ . . . ⋆ ( ) ⟩ sat ( , ). Now suppose, that holds ( ) sat ( , ). Then, is satisfiable function. That is for some , . . . , , ( {0,1}), holds ( , , . . . , ) =1. According to Theorem t1, sat ( , ) if and only if ( ) = ⟨ ▫ ⋆ ▫ ⋆ . . . ⋆ ▫ ⟩ ( , ). It means there are subsets , such, that ⋃ = ⋃ (t3. i) We prove, that for subsets , , . . . , , holds ⋃ = ⋃ . ( t3. i) means that for every clause ( ), there exists a subset such that { , } and ( ) . But then , because of definition of : = { ( ) / ( ) ( ) and ( ) contains , ( {1, . . . , } ) }, in the same time the clause ( ) contains the literal only if . Since each element determines the composition of one clause, and each clause is defined by one element, then it is easy to prove that for any element there exists a subset { , } such, that . So, ⋃ = ⋃ . Therefore ⟨ ▫ ⋆ . . . ⋆ ▫ ⋆ . . . ⋆ ▫ ⟩ ( , ). Remark 5. It is not difficult to simulate a Turing machine that recognizes the string of language ( , ) in a polynomial time. The general workflow of such a is as follows: Similar to , it runs over all symbols of input string and compares the composition of those string with conditions in definition of the language ( , ). That is, receiving the string , the does: i). checks if the string composes by strings ⟨ ▫ ⟩ and of symbols ' ⋆', ii). checks if the number of elements with pairwise different indices in the string is equal to m, iii). for each {1, . . . , }, checks if ⟨ ▫ ⟩ ( ). If any of those conditions is not satisfied, then the rejects the string. To perform the procedure of point i) and point ii), it is enough for to run over the string, once. To perform the procedure of point iii) for certain , needs to check if takes place ( ( )) & ( ( )) & ({ } ⋂ { } = ∅) & ( 𝜀 or 𝜀)}. If we denote by the total number of elements included in subsets { } and { } then it is easy to see, that for each {1, . . . , }, the nunber of actions for checking the relation ⟨ ▫ ⟩ ( ) does not exeed , for some constant . It is important to note, that for each , ≤ . Then, i t is evident that performs the procedure described in point iii) in no more than actions for some constant , where | | is the length of string . So, in a polinomial time, such a recognizes the string of language . Let's for any natural numbers and , define the function : → as follows: ( ) = { ⟨ ⟩ . It is evident, that is a polynomial time computable function with computable time not exceeded the number for certain constant , where | | is the length of string . Also it is evident, that for any natural numbers and , and for any string if and only if ( ) . Recall, that ⟨ ⟩ and ⟨ ⟩ ( , ) . Theorem. t4 For any natural numbers and , ( , ) ≤ sat ( , ) Proof : It is obvious that ( , ) ( , ) and sat ( , ) ( , ). According to lemma , for any natural numbers and , there is a Turing's machine , which for any string ⟨ ⟩ = ⟨ ▫ ⋆ . . . ⋆ ▫ ⋆ . . . ⋆ ▫ ⟩ ( , ) forms the string ( ) = ⟨ ( ) ⋆ ( ) ⋆ . . . ⋆ ( ) ⟩ in polynomial time with respect to the length of string ⟨ ⟩ . According to theorem t3 and remark 5, for any string , and for any natural numbers and , ⟨ ⟩ ( , ) if and only if ( ) sat ( , ). Therefore ( , ) ≤ sat ( , ). Since is a function computable in polynomial time, then the language ( , ) is polynomially reduced to the language sat ( , ). Theorem. t5. For any natural numbers and , the languages sat ( , ) and ( , ) are polinomially equivalent. Proof : Follows of theorems t2 and t4. Corollary t5.1 The problem of existence of a special covering for a set under the special decomposition of that set is a - complete problem. Proof : Follows of theorem t5. Bibliography
1. Cook, S. A. The complexity of theorem - proving procedures . in Conference Record of Third Annual ACM Symposium on Theory of Computing (1971), 151–158
2. Karp, R. M . Reducibility among combinatorial problems.
In Complexity of Computer Computations (1972), R. E. Miller and J. W. Thatcher, Eds.,Plenum Press, 85–103.
3. Левин, Л. А. Универсальные задачи перебора . Пробл. передачи информ ., 1973, том , выпуск
3, 115–116.
4. Sipser Michael Introduction to the Theory of Computation, third edition 2012, Cengage Lear ning. 5. Sanjeev Arora, Boaz Barak Computational Complexity: A Modern Approach 2007.ning. 5. Sanjeev Arora, Boaz Barak Computational Complexity: A Modern Approach 2007.