How Exhaustive Does an Extension-Based Proof Need to Be?
Abstract
The class of extension-based proofs encompasses traditional valency arguments. It has been shown that they are insufficient to establish the impossibility of -set agreement among processes in an asynchronous system with crash failures. We generalize this definition to -exhaustive extension-based proofs, in which a prover can learn the maximum length of all executions involving a set of at most processes from a specified configuration (which may be infinite). An upper bound on the length of these executions enables the prover to determine the outputs of all these executions. When , this enables the prover to perform an exhaustive search of all reachable configurations, so it knows everything about the protocol. On the other hand, extension based proofs are as powerful as 1-exhaustive extension-based proofs. For any task with no deterministic, wait-free solution among processes, we show that there is an -exhaustive extension-based proof of its impossibility. This is done using a new characterization of such tasks. In contrast, we prove that for , there is no -exhaustive extension-based proof of the impossibility of -set agreement.
Keywords and phrases:
Extension-based proof, set agreement, valency argument, zero-one exclusionCopyright and License:
2012 ACM Subject Classification:
Theory of computation Computability ; Theory of computation Interactive proof systems ; Theory of computation Distributed algorithms ; Theory of computation Distributed computing modelsFunding:
Faith Ellen and Shihao Liu were supported by the Natural Science and Engineering Research Council of Canada (NSERC) grant RGPIN-2020-04178 and Leqi Zhu was supported by the Natural Science and Engineering Research Council of Canada (NSERC) grant RGPIN-2025-07125.Editors:
Andrei Arusoaie, Emanuel Onica, Michael Spear, and Sara Tucci-PiergiovanniSeries and Publisher:
Leibniz International Proceedings in Informatics, Schloss Dagstuhl – Leibniz-Zentrum für Informatik
1 Introduction
In the -set agreement problem, there are processes that each have a private input value in . The goal is for each process to output an input value so that, collectively, at most different values are output. The special case of the problem when is called consensus.
It is well known that, in asynchronous systems with crash failures, every deterministic protocol for -set agreement must have a bad execution, in which some processes output incorrect values (i.e., the protocol is incorrect) or take infinitely many steps without outputting a value (i.e., the protocol is not wait-free). Fischer, Lynch, and Paterson [13] introduced the valency argument and used it to first prove this result for the special case of consensus, i.e., when . The general result was independently obtained by Borowsky and Gafni [7], Herlihy and Shavit [17], and Saks and Zaharoglou [19].
The valency argument for consensus is simple and elegant: given a protocol, the proof provides a strategy to locate a non-empty prefix of a bad execution, which only requires examining the outputs of the processes from some carefully chosen initial configurations. Moreover, if the given protocol never produces incorrect outputs, then the strategy may be iterated to produce non-empty extensions of the prefix, allowing the construction of arbitrarily long, non-terminating executions.
In contrast, proofs for are all nonconstructive and complex: they show that every wait-free protocol must be incorrect. The early proofs used tools from combinatorial topology to do so. Later, Attiya and Castañeda [3] and Attiya and Paz [5] gave more direct, combinatorial proofs of the same result. Ultimately, while these proofs show the existence of bad executions, they do not suggest a strategy to locate a non-empty prefix of one, let alone a strategy to iteratively find non-empty extensions.
Recently, Alistarh, Aspnes, Ellen, Gelashvili, and Zhu [1] defined the class of extension-based proofs, which attempt to model a constructive valency argument as an interaction between a fixed prover and a given protocol. The goal of the prover is to either build an infinite execution of the protocol or an execution in which the protocol outputs incorrect values. It works in phases, during which it is allowed to ask the protocol finitely many step queries, chains of step queries, and output queries. At the beginning of the first phase, the prover’s current execution is empty and all initial configurations have been reached. In each phase, the prover is restricted to ask queries starting from configurations reachable from its current execution. Roughly speaking:
-
A step query allows the prover to reach the configuration resulting from the step of some specified processes. The prover can then examine what processes have terminated and what outputs they have produced in the new configuration.
-
A chain of step queries allows the prover to ask an adaptively chosen (and possibly infinite) sequence of step queries. For example, it allows the prover to ask what happens if the first three processes keep taking steps in round-robin order.
-
An output query allows the prover to ask for an execution from a given configuration by a specified set of processes in which a specified value is output (or is told that no such execution exists).
At the end of each phase, if the prover has not found a bad execution of the protocol, then the prover must commit to a finite, non-empty extension of its current execution. They proved that, for every extension-based prover, there is some (adversarially constructed) protocol for -set agreement among processes that never outputs incorrect values and for which, at the end of the first phase, the prover commits to an execution that has no infinite extension. The idea is that, since the prover can only ask a finite number of queries, it cannot learn enough about the protocol before it ends the first phase by committing to a finite execution. Therefore, it is possible to adaptively define a protocol that appears to be correct and wait-free in all extensions of this execution, but may have bad executions elsewhere.
Brusse and Ellen [9] proved that if there is a many-one reduction from one problem to another and there is an augmented extension based proof for the impossibility of the first problem, then there is also an augmented extension based proof for the impossibility of the second problem. In an augmented extension-based proof, the prover is equipped with a slightly more powerful variant of an output query:
-
An assignment query allows the prover to ask for an execution from a given configuration by a specified set of processes in which some of these processes output specified values (or is told that no such execution exists).
They showed that extension-based provers with access to assignment queries are still unable to reliably locate any bad execution in protocols that claim to solve -set agreement among processes. Currently, it is unclear whether augmented extension-based proofs are strictly more powerful than extension-based proofs.
When proving impossibility results about tasks using combinatorial techniques, it is often convenient to consider uniform protocols, where each process terminates after taking exactly steps, for some non-negative integer . It is known that a task has a wait-free protocol if and only if it has a uniform protocol. The set of all executions of a uniform protocol is easy to represent as a static combinatorial object, whose structure only depends on the value of , the number of processes, and the set of initial configurations. It is easy for an extension-based prover to locate a bad execution of a uniform protocol, if any such execution exists: the prover can submit a chain of step queries to determine the value of and use it to exhaustively search through the finitely many executions of the protocol until it finds one where processes output incorrect values. Attiya, Castañeda, and Rajsbaum [4] considered a restricted variant of extension-based proofs, known as local valency proofs, that removes the prover’s ability to perform exhaustive search: Instead of performing step queries and chains of step queries, the prover must repeatedly choose a one-round extension of the current execution (in which each process takes exactly one step), based on the set of all possible output values in all executions starting from each of these extensions. They showed that local valency proofs are insufficient to establish the impossibility of -set agreement and weak symmetry breaking. It is unknown if the set of tasks that have extension-based impossibility proofs against general protocols is the same as the set of tasks that have local valency impossibility proofs against uniform protocols.
One way to make extension-based proofs more powerful is to give an extension-based prover the ability to perform exhaustive search on all executions that involve at most processes, for some parameter , starting from any configuration it has previously reached. Such an extension-based proof is called -exhaustive. We ask the following question: how exhaustive does an extension-based proof need to be to enable a prover to locate a bad execution of a protocol for a specific task, assuming at least one such execution exists? More formally, an -exhaustive extension-based proofs provides the extension-based prover with a new length query, which tells the prover the length of a longest execution involving a specified set of at most processes starting from a specified configuration it has previously reached.
If a protocol has a bad execution, then an -exhaustive extension-based proofs can find one for exactly the same reason that a standard extension-based proof can easily find one when the protocol is known to be uniform. We show that -exhaustive extension-based proofs can also find a bad execution in any protocol for a task that has no wait-free solution. This is shown via a new characterization of such tasks. In general, this characterization is nonconstructive, so it does not enable us to construct an -exhaustive extension-based impossibility proof of an arbitrary task that has no wait-free solution. However, for some tasks, such as -set agreement among processes and zero-one exclusion tasks among processes, we can construct explicit -exhaustive extension-based proofs. These proofs are based on combinatorial properties that were used in earlier impossibility proofs.
On the other hand, an extension-based prover can easily simulate a length query of a 1-exhaustive extension-based proof by performing a single chain of step queries. Hence, for each , there is no 1-exhaustive extension-based proof that can find a bad execution in any protocol for -set agreement among processes. Using new techniques, we substantially strengthen this result: there is no -exhaustive extension-based proof that can find a bad execution in any protocol for -set agreement among processes. To show this, given any prover whose length queries only involve subsets of at most processes, we adaptively construct a correct -obstruction-free protocol that appears to be wait-free to the prover.
Note that any protocol for -set agreement among more than processes is also a protocol for -set agreement among processes. Thus, the -exhaustive extension-based proof of the impossibility of -set agreement among processes is also a -exhaustive extension-based proof of the impossibility of -set agreement among more than processes. A consequence of our results is that there are -exhaustive extension-based proofs for the impossibility of -set agreement among processes if and only if . This suggests a hierarchy of impossible tasks: a task is at level if is the smallest value such that there is a -exhaustive extension-based proof of its impossibility. In particular, -set agreement among processes is at level . Moreover, for any task at level of this hierarchy, we show that there is a -exhaustive extension-based proof that finds an infinite execution (involving processes) in any correct -obstruction-free protocol for this task.
Roadmap.
In Section 2, we define the model and introduce necessary terminology and notation. In Section 3, we prove that -exhaustive extension-based proofs are sufficient to establish the impossibility of any task that has no wait-free solution and give explicit constructions for set-agreement tasks and a particular family of zero-one exclusion tasks among three processes. In Section 4, we prove that -exhaustive extension-based proofs are insufficient to establish the impossibility of -set agreement. Finally, in Section 5, we conclude with a discussion of future work.
2 Preliminaries
We consider the wait-free solvability of tasks in the iterated immediate snapshot model. It is known that a task has a wait-free solution in the standard asynchronous shared memory model, where processes communicate using (read/write) registers, if and only if it has a wait-free solution in the iterated immediate snapshot model [17]. The main advantage of this model is that the set of reachable configurations of a wait-free protocol can be easily represented using combinatorial topology.
2.1 Model
In the iterated immediate snapshot model, there are processes, , that communicate using an infinite sequence, , of shared snapshot objects. Each snapshot object has components, which are all initially blank (denoted by ), and supports two operations, , for values , and . An operation by sets the th component of the object to have value . A operation returns a vector containing the value of each component of the object.
A (full-information) protocol is described using a function from the set of possible process states to , where is a set of possible output values that does not include . The initial state of each process is a pair, , which consists of its identifier, , and its input, . The ’th time that is scheduled, it performs an to with its current state as the value and then performs a on . The new state of is the pair , where is the result of this . If returns an output value for this state, then outputs that value and terminates. Otherwise, returns . In this case, remains active and will access the next snapshot object, , when it is next scheduled.
A configuration (of a protocol) consists of the states of each process and the contents of each snapshot object at some point during an execution when each process is either poised to perform an or has already terminated. In an initial configuration, each process is in an initial state and the contents of all snapshot objects are blank. An important property of the iterated immediate snapshot model is that the contents of the snapshot objects in a configuration can be inferred from the states of the processes, so a configuration is often described by its set of process states.
An execution of a protocol is an alternating sequence of configurations and nonempty subsets of processes. For , the processes in are all poised to the same snapshot object in . Configuration results from configuration when the processes in perform their pending s (in any order), immediately followed by their pending s (in any order, after processes in have all performed their ). The execution is finite if it ends with a configuration and is terminating if it ends with a configuration in which every process is terminated. It is -only, for some set of processes , if for all . A configuration is reachable from another configuration if there is an execution that starts with and ends with . This is denoted by . Configuration is reachable if it is reachable from an initial configuration.
Given any execution from an initial configuration, there is an execution from the same initial configuration that is indistinguishable from to all processes, such that all operations on each snapshot object occur before any operation on snapshot object , for all . This is because operations on different snapshot objects commute with one another.
A t-round execution of a protocol is an execution from an initial configuration in which each process appears in exactly subsets of processes within the execution (i.e. it has performed exactly one and operation on each of the first snapshot objects) or it has terminated after performing fewer than and operations. A configuration is round-based if it is reachable via a -round execution, for some . If is a round-based configuration, then a 1-round execution from is an execution starting from in which each process that is not terminated in performs exactly one and one on the same snapshot object. More generally, if is a configuration in which each process in is poised to the same snapshot object or has terminated before accessing that snapshot object, then a t-round, P-only execution from is a -only execution from in which each process in appears in exactly subsets or has terminated before performing and operations.
For each and each , a protocol among processes is -obstruction-free if, for each subset consisting of at most processes and for each configuration reachable via some initial configuration, all -only executions starting from are finite. A protocol among processes is wait-free if it is -obstruction-free.
2.2 Combinatorial topology
An(abstract) simplex is a non-empty finite subset of some universe. Each element of is a vertex of and each non-empty subset of is a face of . An (abstract) simplicial complex is a collection of simplices that is closed under subset: if and is a face of , then . A simplex is a facet of if it is not a face of any other simplex in . The set of vertices of is the union of the vertices of simplices in . A subcomplex of is any subset of that is itself a simplicial complex. Given a set of vertices , the subcomplex of induced by is the set of all simplices such that . Notice that a simplex together with all its faces form a simplicial complex. The boundary of , denoted by , is the subcomplex consisting of all proper faces .
Let be the graph with vertex set whose edges are the 2-vertex simplices in . Two vertices of are adjacent (or neighbours) if they are adjacent in . The distance between two vertices of is the length of a shortest path between them in . A vertex is adjacent to (or is a neighbour of) a subcomplex if the vertex is not in , but is adjacent to some vertex in .
A task may be formalized in the language of combinatorial topology as a triple , where and are simplicial complexes, called the input and output complexes of the task, and is a task specification map from to the set of all subcomplexes of . Additionally, is required to be a carrier map. This means that for all .
The input complex represents the set of initial configurations of any protocol for . Each simplex in represents a correct (partial) assignment of outputs to processes. encodes the input/output specifications of the task. A task is finite if its input complex is finite.
Let be a protocol in the iterated immediate snapshot model. For , it is also possible to represent the set of all configurations of reachable via -round executions as a simplicial complex, . Specifically, each such configuration is represented by an -vertex simplex whose vertices are the states of the processes in . The color of a vertex is the identifier of the process whose state it represents. We say that a vertex is terminated if it represents the state of a terminated process. Otherwise, we say that it is unterminated.
Given a simplex with no terminated vertices, its chromatic subdivision, , is the the subcomplex of induced by the vertex set . The simplices of are the nonempty subsets of with the property that, for any two vertices and that belong to the same subset, and either or .
More generally, suppose is an arbitrary simplex in . Let be the terminated vertices in and let be the simplex induced by the unterminated vertices of . If , then is the simplicial complex whose vertex set is and whose faces are of the form , where and is a simplex.
Note that, if , then . Moreover, if represents a round-based configuration, , and , then each facet of is the set of states of processes in at the end of some 1-round, -only execution from . (The processes in that are terminated in do not take steps in this execution.) In particular, each -vertex simplex of represents a configuration obtained from via a 1-round execution.
For each subcomplex , we define is a simplex. Note that, if is a subcomplex, then . Hoest and Shavit [18] showed that , for all . Given a subcomplex , we use to denote and, for , we use to denote . In particular, for all , . For any and any -vertex simplex representing a configuration reachable via a -round execution, the set of all configurations reachable from via -round executions is represented by .
For any -vertex simplex , each -vertex simplex is a face of at most two -vertex simplices in (see [16], Chapter 9). If is a face of exactly one -vertex simplex in , then we say that is on the boundary of . Otherwise, we say that is in the interior of .
A protocol for is safe if the outputs of the terminated processes in each execution from an initial configuration represented by are represented by a simplex contained in . Note that a safe protocol is not necessarily wait-free. In particular, a protocol in which no process terminates is safe. Finally, is uniform if there is a constant such that, in every execution, every process terminates after performing exactly operations and operations.
2.3 Colorless computation
In a colorless protocol, processes make decisions ignoring all information about process identifiers and the number of times the same information appears in a . The colorless states of processes are defined inductively from their states: If the initial state of process is , then its initial colorless state is simply its input value, . Assume that each process that has not terminated after its ’th step has a well-defined colorless state. Then, for each such process , its new colorless state after obtaining a result from snapshot object is the set . In particular, a colorless state does not record the number of times each colorless state at the end of the previous round occurs in the result of a . In general, it is not possible to determine the previous colorless states of a process from its current colorless state. Thus, colorless protocols are not full-information protocols.
Given a configuration of , its colorless configuration, , is the set of colorless states of the process states in . A colorless configuration is reachable from if there exists a configuration reachable from whose colorless configuration is . A colorless configuration is reachable if it is reachable from an initial colorless configuration.
Executions of a colorless protocol have a simpler combinatorial representation using simplicial complexes. For each , the simplicial complex, represents the set of all colorless configurations of reachable via -round executions. Specifically, each such colorless configuration is a facet of . If contains no terminated vertex, then the barycentric subdivision, , of is a simplicial complex whose vertices are the non-empty subsets of . Its simplices are the nonempty subsets of with the property that, for any two vertices and that belong to the same subset, either or . The barycenter of is the vertex . If is a simplicial complex such that for all , then the barycentric subdivision, , of is the union of for all simplices . For uniform colorless protocols, , it is known that . (See Chapter 4 of [16].)
More generally, suppose is a simplex representing an arbitrary colorless configuration reachable via a -round execution. Let be the terminated vertices in and let be the simplex induced by the unterminated vertices of . If , then is the simplicial complex whose vertex set is and whose faces are of the form , where and is a simplex. Using essentially the same argument as in Hoest and Shavit [18], it is possible to show that , for all . Furthermore, maps every subcomplex to a subcomplex . Given a subcomplex , we use to denote and, for , we use to denote .
2.4 Extension-based proofs and augmented extension-based proofs
Consider any task among processes that has no wait-free solution in the iterated immediate snapshot model. An extension-based proof of (the impossibility of) is an interaction between a prover and a protocol that claims to solve . The goal of the prover is to find a bad execution of the protocol: an execution that is either infinite in length or one that where processes output values that violate the task specification. The interaction proceeds in phases.
At the start of each phase , the prover has a set, , of reachable configurations of protocol . These configurations differ from one another only in the states of processes that are still in their initial states. (In other words, the prover has committed to an execution and a set of initial configurations that are indistinguishable from the first configuration in the execution to all processes that appear in the execution.) is the set of all initial configurations of . Throughout phase , the prover maintains a set of configurations, , that it has reached from configurations in . This set is empty at the start of phase .
In each phase , the prover can ask queries to find out information about the protocol. For a single-step query, the prover specifies a configuration and a nonempty set of processes that are poised to the same snapshot object in configuration . The protocol responds to this query with information about the configuration . More specifically, for each process in , the protocol returns , where is the state of that process in configuration . This is sufficient information for the prover to know everything about configuration . Then the prover adds to . If the outputs in configuration do not satisfy the specifications of , then the prover wins, since it has demonstrated that is incorrect.
A chain of (single-step) queries is a (finite or infinite) sequence of consecutive single-step queries such that is an execution from . If the prover constructs an infinite chain of queries, it wins, since it has demonstrated that is not wait-free.
For an output query, the prover specifies a configuration , a set of processes that are poised to the same snapshot object in configuration , and an output value . If there is a -only execution from that ends in a configuration in which some process in outputs , then the protocol responds with the sequence of sets of processes scheduled in some such execution. Otherwise, the protocol says that no such execution exists.
An assignment query is a generalization of an output query. Instead of specifying an output value , the prover now needs to specify a function , where is some non-empty subset of . Similar to an output query, if there is a -only execution from that ends in a configuration in which every process outputs , then the protocol responds with the sequence of sets of processes scheduled in some such execution. Otherwise, the protocol says that no such execution exists.
The prover must end the current phase after asking a finite number of output queries and chains of queries. To end phase , the prover chooses a configuration . If all processes are terminated in configuration , then the prover loses. Otherwise, phase begins, with consisting of and any configuration that differs from only in the states of processes that are still in their initial states.
The prover wins if there are an infinite number of phases in the interaction, since it has demonstrated that the protocol is not wait-free. It also wins if the protocol gives it inconsistent responses.
2.5 k-exhaustive extension-based proofs
For a length query, the prover specifies a configuration and a nonempty set of processes that are poised to the same snapshot object in configuration . The protocol responds with an upper bound on the length of a longest -only execution from , or , if there is an infinite -only execution from .
A -exhaustive extension-based proof is a generalization of an (augmented) extension-based proof that allows the prover to ask length queries for sets of processes of size at most , in addition to chains of queries and assignment queries.
It is easy to obtain an -exhaustive extension-based proof of the impossibility of any task among processes that has a finite input complex, but no deterministic, wait-free solution. For each initial configuration , the prover performs a length query for and the set of all processes. If the protocol’s response to this query is , then a length query for some one-round extension of and the set of all processes must also return . In this case, the prover will be able to inductively construct an infinite execution of the protocol, which demonstrates that the protocol is not wait-free. If the protocol’s response is , the prover performs all possible chains of queries from . If any of these chains continues for more than steps, the prover wins, since the protocol has provided inconsistent information. For each configuration reached in which some processes are terminated, the prover checks that the outputs of these processes satisfy the specifications of the task. If not, the prover wins, since the protocol is incorrect. If at any point during this interaction the prover receives conflicting information (for example, a process producing different outputs in two configurations that are indistinguishable to this process), the prover wins. Since the protocol is not a deterministic, wait-free solution to the task, one of these conditions must eventually happen.
3 (n-1)-Exhaustive Extension-based Proofs are Powerful
In this section, we consider tasks among processes that have finite input complexes. We show that, if there is no deterministic, wait-free solution to such a task, then its impossibility can be proved using an -exhaustive extension-based proof.
Consider any task among processes and any -obstruction-free protocol with input complex . Let be an -vertex simplex representing a round-based configuration of the protocol . Since all executions from that involve at most processes are finite, König’s Lemma implies that there is a finite upper bound, , on the length of any such execution. In this case, the boundary assignment of (or of ) is the subcomplex of induced by the state of every process in at the end of every -round -only execution from , for all subsets of processes. Each of these states, , is terminated, so there is an output assigned to it. In the case that is not -obstruction-free, some round-based configurations may not have boundary assignments.
In an -exhaustive extension-based proof, the prover has the ability to determine the boundary assignment of any round-based configuration it has reached. To do so, it first performs length queries on with respect to every possible subset of processes. If any query returns , then does not have a boundary assignment. Otherwise, there is an upper bound on the length of any execution from involving at most processes. Hence, there are only finitely many such executions, so the prover can perform finitely many chains of step queries to determine the output assignment produced in each such execution.
All provers we describe in this section will follow the same general strategy. At the beginning of each phase, the prover has a set of round-based configurations. For the first phase, is the set of all initial configurations. The prover first attempts to compute the boundary assignment of each configuration in using length queries. If any configuration in does not have a boundary assignment, then the prover knows that some extension of leads to an infinite execution. In this case, the prover chooses and ends the phase. In the next phase, will be the set of all 1-round extensions of . Otherwise, the prover checks whether there is a configuration in whose boundary assignment satisfies a certain task-specific bad boundary property. If so, then the prover chooses one such configuration and ends the phase. If is not a terminal configuration, then will be the set of all 1-round extensions of in the next phase. For tasks that have no deterministic, wait-free solutions, we show that there will always be at least one configuration in that does not have a boundary assignment or has a boundary assignment that satisfies the task-specific bad boundary property. The extension-based prover in our strategy will either produce an infinite execution of the protocol or reach a terminal configuration that satisfies the bad boundary property, which will guarantee that the outputs of the processes violate the task specification.
We begin with two examples, the 2-set agreement task and zero-one exclusion tasks among three processes. For each of these, we give a simple and computable bad boundary property. Combined with the general construction described above, we get extension-based proofs for the impossibility of these tasks. We then formally define the notion of bad boundary properties for tasks and conclude the section with a sketch of the proof for Theorem 4.
3.1 Extension-based proofs for set agreement tasks
Consider the 2-set agreement task among processes. Let denote the input complex for this task and let be an arbitrary protocol with input complex . Note that a round-based configuration is represented by a triangle and its boundary assignment (if it has one) can be obtained by performing chromatic subdivisions on its edges.
For the 2-set agreement task, we call an edge in a boundary assignment special if one of its endpoints is assigned output 0 by and its other endpoint is assigned output 1 by . Let be the property such that, for any -vertex simplex representing a round based configuration that has a boundary assignment under , is true if and only if some output of does not satisfy validity or has an odd number of special edges.
Consider the initial configuration represented by the simplex , where represents process with input value , for each . Suppose that has a boundary assignment that satisfies validity. Vertices in that represent states of processes in terminating -only executions are assigned either or as outputs. It follows that all special edges in lie on the subdivision of the edge of . The two vertices at the ends of this subdivided edge represent solo-executions by and by , which must output 0 and 1, respectively. It follows that the outputs of the vertices along this subdivided edge switch between 0 and 1 an odd number of times, which gives an odd number of special edges.
In the full version of the paper, we show that any non-terminal round-based configuration whose boundary assignment satisfies has a one-round extension whose boundary assignment also satisfies . This is proved via a cancellation argument similar to the proof of two-dimensional Sperner’s lemma [6].
Finally, if a configuration is terminal, then its boundary assignment defines the outputs of its three vertices. Notice that if is the simplex representing , then it is impossible for to have three special edges. Furthermore, in the case that has exactly one special edge, the set of outputs produced by the processes must be , which violates agreement. Hence, if is true, then the outputs of processes in configuration violate either validity or agreement.
More generally, for -set agreement with , we can define to be the predicate such that the boundary assignment of a round-based configuration satisfies if and only if its outputs do not satisfy validity for -set agreement or it contains an odd number of -vertex simplices whose vertices are assigned different values in by .
3.2 Extension-based proofs for zero-one exclusion tasks
In the weak symmetry breaking task, processes do not have inputs. Each process that does not crash must output either 0 or 1, with the restriction that, if no processes crash, at least one process must output 0 and at least one process must output 1. It is known that weak symmetry-breaking has a wait-free protocol from registers when the number of processes, , is not a prime power [10].
The class of zero-one exclusion tasks was introduced by Gafni [14]. Each of the tasks in this class further restricts the outputs when some of the processes do not participate (i.e. take no steps). Thus, any solution to a zero-one exclusion task is a solution to weak symmetry breaking. More specifically, a zero-one exclusion task among processes is specified by a sequence of bits . In any execution where exactly processes participate, the task requires that not all processes output . Gafni gave a reduction from any zero-one exclusion task to set agreement and proved that some zero-one exclusion tasks are strictly weaker than set agreement. Gafni and Herlihy [15] gave a characterization of zero-one exclusion tasks that have wait-free protocols from registers using combinatorial topology.
We consider the zero-one exclusion tasks among 3 processes. The input complex consists of a single triangle, , where each vertex represents an inputless process. For , the task requires that at least one process output 1 in any execution and, if all 3 processes participate, then at least one process must also output 0. In other words, a process must output 1 in a solo-terminating execution, if 2 processes run by themselves, they cannot both output 0, and if all 3 processes produce output values, both 0 and 1 are output. The task is defined similarly. A process must output 1 in a solo-terminating execution, if 2 processes run by themselves, they cannot both output 1, and if all 3 processes participate, both 0 and 1 are output. There are two other zero-one exclusion tasks among 3 processes that can be obtained from and by interchanging 0 and 1 and are computationally equivalent to them.
Let be an arbitrary protocol with input complex and binary output values. For each vertex that represents the state of a terminated process , define its label (with respect to ) to be the quantity . We call an edge of a boundary assignment special if one of its endpoints has label 0 and its other endpoint has label 1. Define the property to be such that, for any -vertex simplex representing a round-based configuration that has a boundary assignment under , is true if and only if the output values in do not satisfy the specification of the task or has an odd number of special edges.
Suppose that has a boundary assignment that satisfies specification of . Each edge of is subdivided into an odd number of edges in the protocol complex. This is because the vertices along the subdivided edge must alternate between states of and states of , where the vertices on the ends of the path represent states of and at the end of their solo-executions. From the specification of , these two vertices both output 1. Furthermore, no edge in has output 0 at both of its endpoints. Hence, if there is an edge in the subdivision of such that and , then there is an another edge in this subdivision such that . The remaining edges in the subdivision of are assigned output 1 at both endpoints. There are an odd number of such edges.
In the subdivision of , an edge is special if and only if both endpoints output 0, which does not occur. In the subdivision of , an edge is special if and only if the endpoint corresponding to outputs 1 and the endpoint corresponding to outputs 0. As above, such a special edge is adjacent to another special edge in the subdivision of . This gives an even number of special edges in the subdivision of . In the subdivision of , an edge is special if and only if both processes output 1. As above, there are an odd number of such edges. In total, this gives an odd number special edges in .
The argument used for set-agreement can also be applied here to show that any non-terminal round-based configuration whose boundary assignment satisfies has a 1-round extension whose boundary assignment also satisfies .
Finally, if is the triangle that represents a terminal configuration, then it is impossible for to have three special edges. In the case that has exactly one special edge, the set of labels on its vertices must be . This is only possible if all three processes output 0 or if all three processes output 1, which violates the task specification, as it fails to break symmetry.
3.3 Boundary properties and extension-based proofs for general tasks
We now generalize the constructions described in Section 3.1 and Section 3.2 to arbitrary tasks with no deterministic wait-free solutions.
Given a task , a boundary property of is a predicate that maps each boundary assignment to true or false, where is any protocol with input complex and is any -vertex simplex that represents a round-based configuration of the protocol . For proving impossibility results about tasks, we need a bad boundary property, , which means that for any protocol with input complex , is initially bad, extendable, and dangerous, where
-
is initially bad if there is an initial configuration that either has no boundary assignment or has a boundary assignment that satisfies ,
-
is extendable if every boundary assignment of a non-terminal round-based configuration that satisfies has a one-round extension that either has no boundary assignment or has a boundary assignment that satisfies , and
-
is dangerous if, for every boundary assignment of a terminal configuration that satisfies , the outputs of its processes violate the specification of .
We prove that, for any finite task among processes with no deterministic, wait-free solution, there is a bad boundary property for . Then Theorem 4 follows from the proof strategy described at the beginning of Section 3.
Consider an arbitrary finite task among processes. If is a protocol with input complex and is a round-based configuration reachable from some initial configuration of , then we say that locally solves from if has no infinite execution starting from and the outputs produced in all executions starting from satisfy the specification of . We define the canonical bad boundary property of to be the predicate such that, for each protocol with input complex and for each -vertex simplex that represents a round-based configuration of that has a boundary assignment, is true if and only if
-
the outputs in do not satisfy the specification of or
-
the outputs in satisfy the specification of , but there is no protocol that locally solves from for which .
In particular, if represents a configuration consisting of only terminated processes, then is true if and only if the outputs of the vertices of do not satisfy the specification of . Thus, is dangerous, by definition.
The next lemma shows that, if the boundary assignments of a finite set of round-based configurations of do not satisfy , then there exists a protocol that locally solves simultaneously from all these configurations.
Lemma 1.
Consider a task , a protocol with input complex , and a finite set of configurations of in which each process has taken exactly steps or has terminated before doing so. If each configuration in has a boundary assignment under that does not satisfy , then there is a protocol that locally solves from every configuration in such that the boundary assignment of every configuration in is the same under both and .
In particular, if is the set of all initial configurations and each of them has a boundary assignment that does not satisfy , then there is a wait-free protocol for .
Corollary 2.
Let be a finite task that has no wait-free protocol. Then every protocol for has an initial configuration whose boundary assignment satisfies .
The next lemma shows that is extendable.
Lemma 3.
Let be a task, let be a protocol with input complex , and let be a configuration whose boundary assignment under satisfies . Then there is a one-round extension of that either has no boundary assignment under or has a boundary assignment under that satisfies .
Our main result in this section follows from Corollary 2, Lemma 3, and the fact that canonical bad boundary properties are dangerous.
Theorem 4.
For any finite task among processes with no deterministic, wait-free solution, there is an -exhaustive extension-based proof that it has no deterministic, wait-free solution.
The property defined for 2-set agreement in Section 3.1 implies the canonical bad boundary property for 2-set agreement. To see why, let be a triangle representing a round-based configuration in a protocol . If the boundary assignment of has an odd number of 0-1 edges, then, by a generalization of Sperner’s lemma, any wait-free protocol that agrees with on the boundary assignment of must have at least one execution starting from that leads to a configuration in which three different values are output by the three processes. In other words, there is no protocol that locally solves 2-set agreement from that also agrees with on the boundary assignment of .
In general, to show that a finite task has no deterministic, wait-free solution, it suffices to define an explicit boundary property for the task and prove that this boundary property is initially bad, extendable, and dangerous. In the examples for set-agreement and zero-one exclusion tasks, the bad boundary properties we gave are computable. However, this is not the case for the canonical bad boundary properties defined in this section. Furthermore, a bad canonical boundary property is shown to be bad under the assumption that the task is impossible. Thus, the results we presented in this section do not immediately yield impossibility results for arbitrary tasks.
4 A Hierarchy of Extension-Based Proofs
We show that, for all and for all , -exhaustive extension-based proofs are insufficient to reliably locate infinite executions in -obstruction-free protocols that solve -set agreement among processes. In particular, for each -exhaustive extension-based prover, we describe an adaptively built -obstruction-free colorless protocol that defeats it.
Theorem 5.
For any , any , and any -exhaustive extension-based prover, there is a correct -obstruction-free colorless protocol for -set agreement among processes for which the prover does not commit to a prefix of an infinite execution.
This result shows that -exhaustive extension-based proofs are also insufficient to establish the impossibility of a deterministic, wait-free protocol for -set agreement among processes.
Theorem 6.
For all integers and , there is no -exhaustive extension-based proof of the impossibility of a deterministic, wait-free protocol for -set agreement among processes.
For , Theorem 6 implies that there is no -exhaustive extension-based proof for the impossibility of -set agreement among processes. Therefore, Theorem 4 is tight in terms of how exhaustive extension-based proofs need to be in order to prove the impossibility of an arbitrary task that has no deterministic, wait-free solution.
In the rest of this section, we give most of the construction used to prove Theorem 5. In Section 4.1, we explain how the adversarial protocol responds to queries in phase 1. Once the prover commits to a non-empty execution, we discuss how to define the protocol. This is done in Section 4.2. Complete proofs can be found in the full version of the paper.
4.1 The first phase
The argument by Alistarh, Aspnes, Ellen, Gelashvili and Zhu [1, 2] that there is no extension-based proof for -set agreement among processes constructed a partially defined protocol while maintaining the invariant that states which output different values are sufficiently far away from one another. This is not possible for -exhaustive extension-based proofs when . For example, the prover can ask length queries for all sets of 2 processes from all initial configurations and then perform all possible chains of queries involving at most 2 process from all initial configurations. The set of states reached form a single connected component of the protocol complex and include states in which each of the values in is output.
For simplicity, we will construct so that it is colorless. This is without loss of generality, as the prover must be able to handle arbitrary protocols. As we respond to the prover’s queries during the first phase, we update while maintaining a number of invariants.
First, we ensure that is defined for every colorless state in every colorless configuration that the prover has reached, i.e., is either set to or an output value. If is defined for some colorless state reachable via an -round execution, then is defined for every colorless state reachable via an -round execution. Moreover, if , then is defined for every colorless state reachable via an -round execution. Hence, there is an integer such that is defined on all colorless states reachable via -round executions, for all , and is only defined on terminated colorless states reachable via -round executions.
More formally, let be the simplicial complex representing the set of all initial colorless configurations of the -set agreement task, i.e., consists of an -vertex simplex with one vertex corresponding to each of the possible inputs, as well as all faces of this simplex.
Invariant 1.
There is an integer such that is defined on every vertex in , for all , and is either undefined or for each vertex in . If is the colorless configuration of a configuration reached by the prover, then is defined on every colorless state in .
In the first phase, we ensure that appears to be solving -set agreement, from the perspective of the prover. In particular, we ensure that, in any colorless configuration reached by the prover, there are at most different output values, each of which is valid. Additionally, if a colorless configuration reached by the prover has at least one non-terminated colorless state, then there are at most different output values. This is crucial when we fully define , at the end of the first phase.
Now consider colorless configurations reachable via -round executions that each contains a colorless state on which is undefined and another colorless state on which outputs a value. We further ensure that it is possible to assign valid output values to the undefined colorless states in these configurations so that at most values are output in any of these configurations. Note that this will still leave many parts of the protocol undefined.
More formally, let be the integer in Invariant 1, and let be an arbitrary set of vertices in on which is undefined. The extension of by a function is the protocol such that , for each vertex in , and , for each vertex on which is defined. We say is good if, in every colorless configuration represented by a simplex , the protocol outputs at most different values, each of which is valid, and furthermore, if has at least one unterminated vertex, then the protocol outputs at most different values.
Invariant 2.
There is a good extension of by a function , where is the set of undefined neighbours of the terminated vertices in .
At any point during the interaction, we can prolong the protocol by setting , for every undefined vertex . It is one way of responding to a query and sometimes it is the only thing we can do. Intuitively, it provides us more room to assign outputs in future rounds, similar to how it was used in [2].
Lemma 7.
Prolonging the protocol maintains the invariants.
Finally, we describe our strategy for responding to queries so that the invariants are maintained. Initially, before any queries are made, for every initial colorless state and is undefined for every other colorless state. The invariants hold with . In particular, Invariant 2 is vacuously true.
Now suppose that the invariants hold immediately before a query by the prover. Recall that each query involves a previously reached configuration and a set of (at most ) processes that are all poised to access the same snapshot object in , for some (so all processes in have taken exactly steps). Let be the set of colorless states of processes in in configuration . Then is a simplex in . Let be the integer in Invariant 1 immediately before the query. Since every process in is poised to access the same snapshot object, for every , which implies that . We consider step queries, length queries, and assignment queries separately.
Case 1: is a step query.
Since the processes in perform their on consecutively after they each perform their on , they all obtain the same result and, hence, have the same colorless state in . By definition, is a vertex in . If is defined, then the protocol replies with . Now suppose that is undefined. By Invariant 1, . If we can assign an output to while maintaining Invariant 2, then we update to any such value, which also maintains Invariant 1. Otherwise, we prolong the protocol. By doing so, is set to . In either case, is now defined and the protocol replies with . We prove that every chain of step queries asked by the prover results in a finite execution of the protocol.
Case 2: is a length query.
By definition, is the set of all colorless states of processes in in configurations reachable from via -round -only executions. If every vertex in has been assigned an output, then the protocol replies with , which is an upper bound on the length of a longest -only execution from . Otherwise, we prolong the protocol twice. We prove that it is possible to assign outputs to all vertices in while maintaining Invariant 2. Finally, the protocol replies with .
Case 3: is an assignment query, for some output assignment to a subset of processes .
Let denote the number of different values in and let denote the number of vertices in . Since the protocol is colorless and is correct for -set agreement, it can output at most different values in any -only execution starting from . Thus, if , the protocol replies that no such execution exists. So suppose that .
If there exists a value that is not valid for any vertex in , then is also not valid for any vertex obtained by subdividing any number of times. Since we maintain Invariant 2, will never be assigned to any such vertex. It follows that the output assignment will not be satisfied by any -only execution from . In this case, the protocol replies that no such execution exists. So suppose that every is valid for some vertex in .
Suppose that every vertex in is terminated or adjacent to some terminated vertex in . Then we prolong the protocol twice. We show that, after doing so, we can assign valid outputs to every vertex in while maintaining both invariants. This completely defines the outputs of the protocol in all -only executions starting from . If the assignment is satisfied by any such execution, then the protocol replies with this execution. Otherwise, the protocol replies that no such execution exists.
Now suppose that there is an unterminated vertex in whose neighbours in are all unterminated. Then there is a simplex that contains this vertex, has the same number of vertices as , and all of its vertices are unterminated. In this case, we prolong the protocol four times. Let . Pick any simplex with the same number of vertices as (and ) that contains the vertex . Intuitively, is the vertex at the center of and is a simplex containing this vertex. We show that there is a face and a configuration reachable from via a -only execution such that , is the set of colorless states of processes in in configuration , and for any two processes , if and only if and share the same colorless state in configuration . Assign outputs to the vertices of so that is satisfied in configuration . Additionally, pick a value arbitrarily and assign to be the output of all neighbours of the vertices of in that are not in . We show that this output assignment maintains both invariants. In this case, the protocol responds with the -only execution that starts from and leads to .
4.2 The prover eventually loses
Since the prover does not win in the first phase, it must eventually end the first phase and commit to a non-empty execution .
By Invariant 1, there is an integer such that is defined on every vertex in for all and for any vertex in . We first prolong the protocol twice to create , so that each terminated vertex in is a terminated vertex in . Let be the set of undefined neighbours of the terminated vertices in . By Invariant 2, there is a good extension of by a function . For each vertex , set . Since is good, for every reachable configuration that has an unterminated process, the processes output at most different output values, each of which is valid.
Let be the input value of any process that is scheduled in the first step of . Notice that is a valid output value for every process in any extension that extends . Consider any colorless state reachable by a -round execution that begins with . If is undefined, then set . Then every extension of is finite. This fully defines for every colorless configuration the prover can reach from the second phase onwards. Note that at most different output values are produced in any such reachable configuration. In the full version of the paper, we extend this partially defined protocol, which only appears to be wait-free to the prover, into a correct -obstruction-free protocol solving -set agreement.
5 Conclusions and Future Work
We have shown that -exhaustive extension-based proofs are sufficient to establish the impossibility of any task among processes. An easy corollary is that -exhaustive extension-based proofs are sufficient for locating a bad execution for -set agreement among processes. Furthermore, we showed that -exhaustive extension-based proofs are insufficient to establish the impossibility of -set agreement among processes. We did this by constructing a -obstruction-free adversarial protocol for which the prover cannot find an infinite execution. This suggests that the minimum for which there is a -exhaustive extension-based proof establishing the impossibility of a task is a natural metric.
It would be interesting to show further limitations on techniques for proving lower bounds on the complexity of problems. It is possible to solve -set agreement among processes by an obstruction-free algorithm using registers [8] or by a randomized wait-free algorithm with expected step complexity [11]. However, there are no known lower bounds on expected step complexity for . Ellen, Gelashvili, and Zhu [12] showed that registers are necessary for obstruction-free algorithms, but they use a complicated technique that involves considering many executions. When , their result is tight. Zhu [20] earlier proved a lower bound of registers when . His result is obtained via a combination of a covering argument and a valency argument. One of the key lemmas in his proof shows how an extension-based prover can construct an infinite execution. We would like to show that this type of argument cannot be generalized to a space lower bound for obstruction-free -set agreement when .
References
- [1] Dan Alistarh, James Aspnes, Faith Ellen, Rati Gelashvili, and Leqi Zhu. Why extension-based proofs fail. In Proceedings of the 51st ACM Symposium on Theory of Computing (STOC 2019), pages 986–996, 2019. doi:10.1145/3313276.3316407.
- [2] Dan Alistarh, James Aspnes, Faith Ellen, Rati Gelashvili, and Leqi Zhu. Why extension-based proofs fail. SIAM J. Comput., 52(4):913–944, 2023. doi:10.1137/20m1375851.
- [3] Hagit Attiya and Armando Castañeda. A non-topological proof for the impossibility of -set agreement. Theor. Comput. Sci., 512:41–48, 2013. doi:10.1016/j.tcs.2012.09.012.
- [4] Hagit Attiya, Armando Castañeda, and Sergio Rajsbaum. Locally solvable tasks and the limitations of valency arguments. Journal of Parallel and Distributed Computing, 176:28–40, 2023. doi:10.1016/j.jpdc.2023.02.002.
- [5] Hagit Attiya and Ami Paz. Counting-based impossibility proofs for renaming and set agreement. In Proceedings of the 26th International Conference on Distributed Computing (DISC 2012), pages 356–370, 2012. doi:10.1007/978-3-642-33651-5_25.
- [6] J. Adrian Bondy and Uppaluri S. R. Murty. Graph Theory with Applications. Macmillan Education UK, 1976. doi:10.1007/978-1-349-03521-2.
- [7] Elizabeth Borowsky and Eli Gafni. Generalized FLP impossibility result for -resilient asynchronous computations. In Proceedings of the 25th ACM Symposium on Theory of Computing (STOC 1993), pages 91–100, 1993. doi:10.1145/167088.167119.
- [8] Zohir Bouzid, Michel Raynal, and Pierre Sutra. Anonymous obstruction-free -set agreement with atomic read/write registers. Distributed Computing, 31:99–117, 2018. doi:10.1007/s00446-017-0301-7.
- [9] Kayman Brusse and Faith Ellen. Reductions and extension-based proofs. In Proceedings of the 40th ACM Symposium on Principles of Distributed Computing (PODC 2021), pages 497–507, 2021. doi:10.1145/3465084.3467906.
- [10] Armando Castañeda and Sergio Rajsbaum. New combinatorial topology bounds for renaming: The upper bound. Journal of the ACM, 59(1):3:1–3:49, March 2012. doi:10.1145/2108242.2108245.
- [11] Keren Censor Hillel. Multi-sided shared coins and randomized set-agreement. In Proceedings of the 22nd ACM Symposium on Parallelism in Algorithms and Architectures (SPAA 2010), pages 60–68, 2010. doi:10.1145/1810479.1810490.
- [12] Faith Ellen, Rati Gelashvili, and Leqi Zhu. Revisionist simulations: A new approach to proving space lower bounds. In Proceedings of the 37th ACM Symposium on Principles of Distributed Computing (PODC 2018), pages 61–70, 2018. doi:10.1145/3212734.3212749.
- [13] Michael J. Fischer, Nancy A. Lynch, and Michael S. Paterson. Impossibility of distributed consensus with one faulty process. Journal of the ACM, 32(2):374–382, 1985. doi:10.1145/3149.214121.
- [14] Eli Gafni. The 0-1-exclusion families of tasks. In Proceedings of the 12th International Conference on Principles of Distributed Systems (OPODIS 2008), volume 5401 of Lecture Notes in Computer Science, pages 246–258, 2008. doi:10.1007/978-3-540-92221-6_17.
- [15] Eli Gafni and Maurice Herlihy. Sporadic solutions to zero-one exclusion tasks. In Proceedings of the 41st International Colloquium on Automata, Languages, and Programming (ICALP 2014), volume 8572 of Lecture Notes in Computer Science, pages 1–10, 2014. doi:10.1007/978-3-662-43948-7_1.
- [16] Maurice Herlihy, Dmitry Kozlov, and Sergio Rajsbaum. Distributed computing through combinatorial topology. Morgan Kaufmann, 2013. URL: https://store.elsevier.com/product.jsp?isbn=9780124045781.
- [17] Maurice Herlihy and Nir Shavit. The topological structure of asynchronous computability. Journal of the ACM, 46(6):858–923, 1999. doi:10.1145/331524.331529.
- [18] Gunnar Hoest and Nir Shavit. Toward a topological characterization of asynchronous complexity. SIAM Journal on Computing, 36(2):457–497, 2006. doi:10.1137/S0097539701397412.
- [19] Michael Saks and Fotios Zaharoglou. Wait-free -set agreement is impossible: The topology of public knowledge. SIAM Journal on Computing, 29(5):1449–1483, 2000. doi:10.1137/S0097539796307698.
- [20] Leqi Zhu. A tight space bound for consensus. SIAM Journal on Computing, 50(3):STOC16–18–STOC16–29, 2021. doi:10.1137/16M1096785.
