Powerful sets: a generalisation of binary matroids

A set $S\subseteq\{0,1\}^E$ of binary vectors, with positions indexed by $E$, is said to be a \textit{powerful code} if, for all $X\subseteq E$, the number of vectors in $S$ that are zero in the positions indexed by $X$ is a power of 2. By treating binary vectors as characteristic vectors of subsets of $E$, we say that a set $S\subseteq2^E$ of subsets of $E$ is a \textit{powerful set} if the set of characteristic vectors of sets in $S$ is a powerful code. Powerful sets (codes) include cocircuit spaces of binary matroids (equivalently, linear codes over $\mathbb{F}_2$), but much more besides. Our motivation is that, to each powerful set, there is an associated nonnegative-integer-valued rank function (by a construction of Farr), although it does not in general satisfy all the matroid rank axioms. In this paper we investigate the combinatorial properties of powerful sets. We prove fundamental results on special elements (loops, coloops, frames, near-frames, and stars), their associated types of single-element extensions, various ways of combining powerful sets to get new ones, and constructions of nonlinear powerful sets. We show that every powerful set is determined by its clutter of minimal nonzero members. Finally, we show that the number of powerful sets is doubly exponential, and hence that almost all powerful sets are nonlinear.


Introduction
Let E be a finite set, called the ground set, and let S ⊆ {0, 1} E be a set of binary vectors, with positions indexed by E. A set X ⊆ E of positions has the power-of-2 property (for S) if the number of vectors in S that are zero on X (i.e., in the positions indexed by X) is a power of 2. We say S is a powerful set, or a powerful code, if every X ⊆ E has the power-of-2 property for S. By treating binary vectors as characteristic vectors of subsets of E, we also say that a set S ⊆ 2 E of subsets of E is a powerful set if the set of characteristic vectors of sets in S is a powerful set. We move freely between subsets X of E and their characteristic vectors x. We prefer powerful set terminology, but sometimes use powerful code terminology when commenting on connections with coding theory.
Unless stated otherwise, we use the ground set E = [n] := {1, 2, . . . , n}. We view S as a subset of the n-dimensional linear space F n 2 , over the finite field F 2 consisting of all 01-vectors of length n.
The order of a powerful set S is the size of its ground set, or equivalently, the length of its vectors (when S is viewed as a code). The size of S is the cardinality of S. The power-of-2 property for X = E implies that the zero vector must be in S. With X = ∅, we conclude that the size of S is also a power of 2. The dimension of S, written dim S, is the nonnegative integer d such that the size of S is 2 d .
Two powerful sets S 1 and S 2 are said to be isomorphic, written S 1 ∼ = S 2 , if there is a bijection between their ground sets which induces a bijection between S 1 and S 2 .
If S is a finite-dimensional linear space over F 2 , then the vectors of S that are 0 on X form a subspace of S, thus the number of such vectors is a power of 2. Hence a linear space is always a powerful set. From now on, we say a powerful set S is linear if it is a linear space, otherwise it is nonlinear. Up to isomorphism, there is a unique smallest nonlinear powerful set, namely S = {000, 011, 101, 111}.
Later we will see that almost all powerful sets are nonlinear.
For the sake of convenience, we often write a set S ⊆ F n 2 in the form of a matrix whose rows are the elements of S. For example, we can identify the above smallest nonlinear powerful set S with the matrix We emphasise that, when S is linear, this is not just a generator matrix for S; its rows list all members of S.
Our remarks above show that powerful sets generalise binary matroids, or equivalently, binary linear codes. Every binary matroid has a rank function ρ : 2 E → N ∪ {0}, defined on subsets of its ground set E, that satisfies the matroid rank axioms. Our original motivation for studying powerful sets was that they, too, have a nonnegativeinteger-valued "rank-like" function. We elaborate on this now, before setting the scene for the rest of this paper.
Let f : 2 E → {0, 1} be the indicator function of a binary code S ⊆ F E 2 , defined for any X ⊆ E by f (X) = 1 or 0 according as the characteristic vector of X does, or does not, belong to S. The rank transform Q, introduced in [1] (see also the exposition in [3, §3.6] and a closely related construction due to Kung [4]), associates to any such f the function Qf defined on subsets of E by . (1.1) Observe that, when Qf (X) is defined, it must be nonnegative. (This follows from the fact that f itself is nonnegative-valued.) When it is defined, we call Qf (X) the rank of X, but bear in mind that this is a loosening of that term since Qf may not satisfy the matroid rank axioms. For the special case when S is linear, Qf gives the usual rank function for the binary matroid. If S is nonlinear, then Qf may take irrational values or be undefined for some arguments. For Qf (X) to be defined for all X ⊆ E, it is necessary and sufficient that f (∅) = 1. In particular, Qf (X) is always defined if S is a powerful set, since in that case ∅ ∈ S so f (∅) = 1. For Qf to be integer valued, it is necessary and sufficient that S be a powerful set. Given that the functions Qf extend rank functions, it is natural to investigate what happens when they are used in place of rank functions. This was done in [1,2], where a theory of Tutte-Whitney polynomials is developed for arbitrary functions f : 2 E → C (called binary functions). There, Qf is used in place of a matroid rank function to generalise the rank generating function of Whitney [11] to arbitrary binary functions. A surprising amount of Tutte-Whitney polynomial theory extends to these objects, including duality, deletion-contraction relations, and interesting partial evaluations. But the "polynomials" themselves often have nonintegral exponents. It is therefore natural to focus on cases where the polynomials are just that, which means that Qf is integer valued. If, in addition, we ask that f be {0, 1}-valued, so that it is indeed an indicator function and can be taken to represent a subset of 2 E , then we are led to the study of powerful sets.
If S is a powerful set, we write f S for its indicator function, and ρ S for its rank function, ρ S := Qf S .
The definition of powerful codes is somewhat reminiscent of almost affine codes, introduced in [6], although they are different in nature. A q-ary code S with index set E is almost affine if for all X ⊆ E the cardinality of the code S E\X := {(a i ) i∈E\X | (a i ) i∈E ∈ S} is a power of q. The construction of S E\X from S is called puncturing with respect to X, or projection onto E\X. We simply discard all coordinates with positions in X, thereby shortening the vectors to length |E \ X|. This contrasts with powerful sets, where we do not remove any coordinates, but simply require that the coordinates indexed by X are zero. When q = 2, a binary code containing the zero vector is almost affine if and only if it is linear [6], so binary almost affine codes give us nothing new, and correspond to binary matroids. See [6,10] for further information about almost affine codes and their connections with matroid theory.
In this paper we lay the foundations of the theory of powerful sets. We first (in §2) extend the contraction operation, for binary matroids, to powerful sets. Then, in §3, we consider five types of special elements: loops, coloops, frames, near-frames, and stars. Of these, only loops and coloops occur in binary matroids. Each of the five has an associated type of single-element extension operation, and we also generalise parallel extensions from binary matroids to powerful sets. In §4, we present a construction for some nonlinear powerful sets, analogous to generating linear spaces from sets of vectors but using positionwise maximum instead of positionwise addition in F 2 (i.e., positionwise OR instead of positionwise XOR). In §5 we give three ways of combining powerful sets to form new powerful sets. Two of these have no real analogue for linear spaces. Then in §6 we show that every powerful set is determined by its clutter of minimal nonzero members, by giving an algorithm to construct it from that clutter. Finally, we consider enumeration of powerful sets in §7. We report the numbers of powerful sets (and, in particular, the numbers of nonlinear powerful sets) of each order ≤ 6. The trend in this data is that nonlinear powerful sets quickly dominate, and we confirm this trend mathematically. We show that the number of loopless frameless nonlinear powerful sets of order n ≥ 5 is doubly exponential -specifically, at least 2 2 (n−7)/3 -from which it follows that, asymptotically, almost all powerful sets are nonlinear.
We say that S/e is formed from S by contraction of e. In terms of matrix representation, we remove column e and also remove all rows that have a 1 in the position indexed by e.  The converses are not true, since (for example) adding a new all-0 column, indexed by e, to S/e (using the matrix representation viewpoint), then adding a row that is all-0 across E\{e} but has 1 in position e, does not in general give another powerful set (let alone a linear one).
Another way of reducing a powerful set by a single element is to simply delete the column indexed by e, without deleting any rows. We call this deletion, since it generalises deletion in binary matroids, and denote the subset of 2 E\{e} so formed by S\e. But, if it is applied to a nonlinear powerful set, it may leave duplicate rows in the reduced matrix, giving a powerful multiset but not necessarily a powerful set. The operation of puncturing with respect to e consists of deletion of e followed by removal of one member of each pair of identical rows. This ensures that we obtain a set rather than a multiset, and it yields a linear powerful set if S is linear (see, e.g., [7]), but it does not necessarily produce a powerful set if S is nonlinear. Note also that the addition of a new column to a powerful set (i.e., the reverse of puncturing) does not necessarily give a powerful set.

Extensions and special elements
We now look at several ways to extend a powerful set by a single element. A special role is played by five types of special elements. The proofs are straightforward and most are omitted.
An element e ∈ E that belongs to no set in S (equivalently, it indexes a zero column in the matrix representation) is a loop, and has rank 0. The operation of adding a zero column to T ⊆ F n 2 is called loop extension, and the resulting subset of F n+1 2 is denoted by T + •. Observe that, if e is a loop of S, then S\e = S/e. Suppose that, writing e as the last column and reordering rows if necessary, S ⊆ F n 2 has a matrix of the form , and 0 and 1 are column vectors whose length equals the size of T . Then e is a coloop of S, and has rank 1. The operation of forming S from T in this way is called coloop extension. We write S = T + • * . Theorem 3.2. If e ∈ E is a coloop of S and S/e is powerful then S is powerful.
Proof. For any X ⊆ E, if e ∈ X, then the number of vectors of S that are 0 on X is twice the number of vectors of S/e that are 0 on X, thus being a power of 2.
If e ∈ X, then the number of vectors of S that are 0 on X is the same as the number of vectors of S/e that are 0 on X\{e}, which is also a power of 2. Proof. For convenience, we write e as the last column in the matrix representation of S. Let ui and vj be any two vectors of S where u, v ∈ S/e and i, j ∈ {0, 1}. It follows from the linearity of S/e that w = u + v ∈ S. Thus we have w0 ∈ S and w1 ∈ S. Since i + j ∈ {0, 1}, we can conclude that Thus S is linear.
Remark. For a powerful set S, the zero row vector 0 belongs to S, thus 01 ∈ S+• * . Therefore, a coloop extension of a powerful set must have a vector of weight 1. Remark. The conjecture is true for the linear case, since a singleton member of the cocircuit space of a binary matroid must be a coloop.
Let S be a powerful set, again with e indexing the last column in its matrix, and now with matrix of the form where T is a powerful set, 0 is a row vector, and 1 is a column vector. Note that S\e = T . Then e is a frame of S (using terminology for an analogous concept in [9]), and adjoining e to T is called framing T by e. A frame has rank equal to dim S. We write S = T + .
Then S\e is powerful if and only if S is powerful.
A powerful set can also be enlarged by an element that is almost, but not quite, a frame.
Suppose S ⊆ F n 2 and v ∈ S is a nonzero vector. The set S + \v is formed by adding a new coordinate 0 to the zero vector 0 and v, and a new coordinate 1 to the remaining vectors of S. The new element is called a near-frame and has rank dim S −1.
Theorem 3.6. If S is powerful then S + \v is powerful.
We call the new element a star. If T is powerful then the star has rank n − dim T .
For any X ⊆ [n + 1], if n + 1 is not in X, then the number of rows that are 0 on X must be a power of 2. This is because the submatrix consisting of the first n columns is the linear space F n 2 . If n + 1 ∈ X, we only need to consider the submatrix The rows of S T that are 0 on X\{n + 1} are precisely those that are 0 on X. So the number of such rows is a power of 2 if and only if T is a powerful set. Therefore S is powerful if and only if T is powerful.
If S is a powerful set, then we can find a coordinate such that deleting this coordinate from all the elements of S yields the set F n−1 2 , i.e., all the new vectors are distinguishable.
Remark. Conjecture 3.8 holds if S is linear, since in that case we have a binary matroid of rank n − 1 on n elements, which must have a circuit, and deleting any element e in the circuit gives a binary matroid S\e of rank n − 1 on n − 1 elements, whose cocircuit space is all of F n−1 2 . For the nonlinear case, Conjecture 3.8 holds for n ≤ 6.
It is easy to check that S is a powerful set, but deleting any one coordinate will always yield two indistinguishable vectors of length 4.
Remark. If a powerful set S satisfies Conjecture 3.8, it can always be constructed as T +⋆ from a smaller powerful set T . Suppose that deleting the last bit of each vector in S gives all possible vectors of F n−1 2 . Collecting those vectors of S whose last bit is 0 and removing the last bit from each such vector yields the desired smaller powerful set.
If S is a powerful set and e ∈ E, then the parallel extension of S, denoted by S e , is formed by duplicating the column indexed by e in the matrix representation of S.

Position-wise max construction
Given any S ⊆ F n 2 , elementary linear algebra gives us the linear powerful set S consisting of all binary linear combinations of vectors in S. In this section we give another way to generate larger sets from S, using a positionwise operation, which in this case will often give us nonlinear powerful sets.
A permutation matrix is a square binary matrix that has exactly one entry of 1 in each row and each column, and 0s elsewhere.
Given any S ⊆ F n 2 , we consider its matrix representation. If the matrix representation of S contains a submatrix which is a permutation matrix of order |S|, then we say that S is permutative.
Remark. It is clear that a permutative set cannot contain the zero vector.
where a i u i = u i if a i = 1, and 0 otherwise. Note that the zero vector always belongs to S ∨ .
Proof. Since we are not concerned with order on S or its ground set, we can assume that, in the matrix representation the first m columns form the identity matrix I m .
We first prove that any vector in S ∨ has a unique expression as That is to say, v is completely determined by its first m components. For 1 ≤ i ≤ m, u i is the only vector in S whose ith component is 1. So if v i = 1, the coefficient of u i must be 1 otherwise the ith component of v will be 0. Similarly, if v i = 0, the coefficient of u i is 0.
Next we show that S ∨ is a powerful set. Given X ⊂ [n], let u 1,X , u 2,X , . . . , u r,X ∈ S be all vectors that are 0 on X. Then we claim that S ∨,X := {a 1 u 1,X ∨ a 2 u 2,X ∨ · · · ∨ a r u r,X | a i ∈ F 2 , 1 ≤ i ≤ r} contains all the vectors of S ∨ that are 0 on X. It is clear that any vector w ∈ S ∨,X is 0 on X. On the other hand, if w ∈ S ∨ is 0 on X, then in the unique expression w = w 1 u 1 ∨ w 2 u 2 ∨ · · · ∨ w m u m , the coefficient of every u i which is nonzero in some position in X must be zero, otherwise w has a nonzero entry in some position in X. Hence, the claim holds. In addition, any two vectors of S ∨,X are different, thus the size of S ∨,X is 2 r , a power of 2. If X = [n], the zero vector is the only vector in S ∨ with all zero coordinates. Therefore, S ∨ is a powerful set. It is straightforward to check that S ∨ is a powerful set.
If S is not permutative, then S ∨ is not necessarily powerful. For example, let S = {0111, 1011, 1101}, whose matrix representation has no unit vector columns so S is certainly not permutative. Then S ∨ = {0000, 0111, 1011, 1101, 1111}, which has size 5, so is not powerful.

Combining two powerful sets
Basic set operations do not necessarily preserve the powerful property. The complement of a powerful set is never powerful (since it does not contain the zero vector), and the union and intersection of powerful sets are not necessarily powerful. (For example, take the linear powerful set {000, 011, 101, 110} and our smallest nonlinear powerful set {000, 011, 101, 111}.) We now present three ways to combine two powerful sets which give another powerful set (always, or under mild conditions). Only the first corresponds to a binary matroid operation.
Let Q ⊆ F m 2 and R ⊆ F n 2 . The direct sum of Q and R is defined by The direct sum generalises the direct sum of binary matroids and is a special case of the product of disjoint binary functions [1, p. 276].
We now come to our second way of combining powerful sets. Write 0 k and 1 k for the row vector of k 0s and k 1s, respectively. Given two vectors u and v, let u1 n be the vector formed by appending n 1s to u, and 1 m v be the vector formed by inserting m 1s before the start of v, i.e., prepending m 1s to v.
Let Q ⊆ F m 2 and R ⊆ F n 2 be powerful sets. Define the set Q#R ⊆ F m+n 2 as follows The construction of Q#R can be depicted as where 1 a×b is the all-one matrix with a rows and b columns.
The result of combining powerful sets using # is in general not powerful. But there are many cases where it is, and furthermore it can be used to construct nonlinear powerful sets. Furthermore, if Q#R is powerful, then Q#R is nonlinear unless Q and R each consist just of a zero vector and possibly an all-one vector.
Proof. If X ⊆ [m] is nonempty, then the vectors of Q#R that are 0 on X are precisely the vectors of Q\{0 m } that are 0 on X, each extended by 1s at the end, together with 0 m+n . The number of these vectors is a power of 2 if and only if Q is a powerful set.
Similarly, if Y ⊆ {m + 1, . . . , m + n} is nonempty, then the number of vectors of Q#R that are 0 on Y is a power of 2 if and only if R is a powerful set.
If X ⊆ [m] and Y ⊆ {m + 1, . . . , m + n}, with each of X and Y being nonempty, then the only vector that is 0 on X ∪ Y is 0 m+n , so the number is 2 0 = 1.
Finally, the total number of vectors in Q#R (corresponding to the empty subset of positions) is 1 + (|Q| − 1) + (|R| − 1) + 1 = |Q| + |R|, provided 1 m ∈ Q and 1 n ∈ R. Under this condition, if Q and R are powerful, then |Q| = |R| if and only if |Q| + |R| is a power of 2 if and only if Q#R is a powerful set. Now suppose that Q and R are powerful, and either 1 m ∈ Q or 1 n ∈ R. If just one of these holds then |Q#R| = |Q| + |R| − 1, which is not a power of 2 unless exactly one of |Q|, |R| is 1. (They cannot both be 1, since one of Q, R contains an all-one vector as well.) In that case, the other is some power of 2 other than 1. Suppose without loss of generality that Q contains an all-one vector while R contains only a zero vector. Then Q#R is equivalent to adding n frames to Q. If both 1 m ∈ Q and 1 n ∈ R then |Q#R| = |Q| + |R| − 2. In that case, one of Q, R -suppose R, without loss of generality -consists only of a zero vector and an all-one vector. Again, we find that Q#R is equivalent to adding n frames to Q. In any case, Q#R is powerful, by Theorem 3.5.
We now consider nonlinearity. If Q and R each consist just of a zero vector and possibly an all-one vector, then Q#R consists just of the all-0 vector and the all-1 vector, so is trivially linear.
Suppose then that (without loss of generality) Q contains a vector u that is nonzero and not all-ones. We know that u1 n is in Q#R. It is clear that the last n coordinates of u1 n + 1 m+n are all 0. Since u = 1 m (as 1 m ∈ Q), u1 n + 1 m+n = 0 m+n . But 0 m+n is the unique vector in Q#R whose last n coordinates are all 0, which implies that u1 n + 1 m+n ∈ Q#R. Therefore, Q#R is not a linear space.
It is interesting to consider the relationship between the rank functions ρ Q , ρ R , ρ Q#R of Q, R, Q#R respectively, when Q#R is powerful. As for any powerful set, the empty set has rank 0. Now suppose X, Y = ∅, X ⊆ [m] and Y ⊆ {m + 1, . . . , m + n}. Then ρ Q#R (X) = ρ Q (X) + 1, ρ Q#R (Y ) = ρ R (Y ) + 1, and ρ Q#R (X ∪ Y ) = dim Q + 1 = dim R + 1. In the light of this last observation, we call Q#R the mutual framing of Q and R.
For Q ⊆ F n 2 and R ⊆ F n 2 , define Proof. For convenience, we identify S = Q • R with the matrix Consider any X ⊆ [n + 2]. We analyse whether it has the power-of-2 property in the following four cases. Case 1. If n + 1 ∈ X and n + 2 ∈ X, then the number of rows which are 0 on X is a power of 2 since the first n columns of S form the linear space F n 2 . Case 2. If n + 1 ∈ X and n + 2 ∈ X, then the rows of S that are 0 on X are precisely those of Q ∩ R that are 0 are X \ {n + 1, n + 2}, each extended by two 0s at the end. The number of these rows is a power of 2 for all such X if and only if Q ∩ R is a powerful set.
Case 3. If n + 1 ∈ X and n + 2 ∈ X, we only need to consider the submatrix Since Q = (Q ∩ R) ∪ (Q\R), it follows that Q is a powerful set if and only if the number of rows that are 0 on X is a power of 2 for all such X. Case 4. If n + 1 ∈ X and n + 2 ∈ X, the argument is similar to Case 3. It is straightforward to verify that Q • R is a powerful set.
Using the cases of the above proof to analyse rank, we find that, for any X ⊆ [n], Remark. Theorem 5.5 can be extended further, using all possible three-bit extensions of vectors, with three powerful sets P, Q, R with the appropriate intersections also having the power-of-2 property. Then it could be extended to an arbitrary number k of extra bits, with the same number of powerful sets with the required properties being combined.

Generation
Recall that a clutter (also called a Sperner family) is an antichain in 2 E under the subset order.
If S ⊆ 2 E then S min denotes the set of its minimal nonempty members, which is a clutter. Theorem 6.1. Every powerful set is determined by its minimal nonempty members.
Proof. Consider the following algorithm, which takes a clutter S 0 ⊆ 2 E as input. We will show that either it detects that there is no powerful set S such that S min = S 0 , and rejects S 0 , or it computes an indicator function f : 2 E → {0, 1} for a set S = suppf which is the unique powerful set such that S min = S 0 (where suppf := {X ⊆ 2 E | f (X) = 0}).
For each X ⊆ E such that |X| = k { 5.
13. else // If we reach here, we know Y ⊂X f (Y ) ≥ 4. 14. if Reject S 0 . It cannot be S min for any powerful set S.
Suppose there exists a powerful set S such that S min = S 0 . We show by induction on k that the above algorithm assigns, to all sets X ⊆ E of size k, the value f (X) = 1 if X ∈ S and f (X) = 0 otherwise.
Inductive basis: for k = 0, we have X = ∅, and the algorithm correctly assigns f (∅) = 1 (in line 2) since ∅ ∈ S. Now let k ≥ 1 and suppose the claim is true for all sizes < k, and let X be any set of size k.
If X ∈ S 0 , then the first condition of the cascaded if statement (line 5) is satisfied, and the algorithm correctly sets f (X) = 1. Now suppose X ∈ S 0 . The order in which the algorithm visits the sets in 2 E ensures that it will visit all the proper subsets Y of X before visiting X itself. When it reaches X, it will have already assigned values f (Y ) to all Y ⊂ X.
By the inductive hypothesis, Y ⊂X f (Y ) gives the number of proper subsets of X that belong to S.
So this sum equals 1 if and only if no proper subset of X is in S except for ∅. In this case, no proper subset of X can be in S 0 either, by definition of S and S 0 . So X ∈ S, else X ∈ S 0 . Now, in this case the algorithm takes the second option of the cascaded if statement (line 6) and assigns f (X) = 0 (in line 7), which is correct (in that f is the indicator function of S on this set X).
It remains to consider cases where Y ⊂X f (Y ) ≥ 2, i.e., some nonempty proper subset of X belongs to S.
The sum equals 2 if and only if there is exactly one nonempty proper subset of X in S. In this case, there are exactly two proper subsets of X in S, which is already a power of 2, so for S to be powerful, we must have X ∈ S. Here the algorithm takes the third option of the cascaded if statement (line 8), and correctly puts f (X) = 0 (in line 9).
It remains to consider cases where Y ⊂X f (Y ) ≥ 3, i.e., the number of proper subsets of X belonging to S is at least 3.
If this quantity is one less than a power of 2, then in order for S to be powerful, we must have X ∈ S, and the algorithm takes the fourth option of the cascaded if statement (lines [10][11] and correctly sets f (X) = 1 (in line 12).
If this quantity equals a power of 2, then in order for S to be powerful, we must have X ∈ S, and the algorithm takes the fifth option of the cascaded if statement (lines 13-14) and correctly sets f (X) = 0 (in line 15).
Since we have assumed that S is powerful, we know that the number of proper subsets of X that belong to S must be either a power of 2 or one less than a power of 2. So the above cases cover all possibilities, and the last option of the cascaded if statement (line 16) is never reached. Therefore, we know that the algorithm always assigns the correct value f (X) to X so that f is the indicator function of S on this set X.
Hence the claim is true, by induction. Therefore, once the algorithm finishes, every X ⊆ E will have been assigned a value f (X), and f will be the indicator function of S.
Since the algorithm is deterministic, it finds (the indicator function of) the unique powerful set S such that S min = S 0 .
If there is no powerful set S such that S min = S 0 , then the algorithm stops at a smallest set X ⊆ E such that the sum Y ⊂X f (Y ) ≥ 5 and is neither a power of 2 nor one less than a power of 2. It is impossible for any extension of f that includes X in its domain to be the indicator function of a powerful set. In this case, the algorithm takes the last option of the cascaded if statement (line 16). It does not assign a value to f (X), and it correctly rejects S 0 (in line 17).
The clutter of minimal nonempty members of a powerful set plays a role analogous to a basis of minimal vectors in a linear space. Its members may be thought of as analogues, for powerful sets, of cutsets in graphs. Some natural questions arise.
1. Can we characterise those clutters that consist of the minimal nonempty members of some powerful set?
2. What fraction of clutters come from powerful sets in this way?

Enumeration
Let p(n) be the number of isomorphism classes of powerful sets of order n, andp(n) be the number of isomorphism classes of nonlinear powerful sets of order n. By direct computation, with assistance from Peng Yang and Tingrui Yuan of UESTC, we have determined p(n) andp(n) for n ≤ 6. These numbers suggest that the number of powerful sets of order n grows very rapidly as n increases, and that the proportion that are linear shrinks rapidly.
We now show that the number of isomorphism classes of nonlinear powerful sets of order n is doubly exponential in n, and in fact this remains true if we restrict to size 2 n−2 . It follows that almost all powerful sets are nonlinear.
To do this, we will use another way of combining powerful sets, based on operations previously introduced.
Let S 1 , S 2 ⊆ F n 2 be powerful sets. Define This construction can be depicted as follows is also a powerful set.
Proof. Since S i (for i = 1, 2) is powerful, it follows from Theorem 3.1 and Theorem 3.5 respectively that both S 1 + • and S 2 + are powerful sets. It is clear that (S 1 + •) ∩ (S 2 + ) = {0}, which is also a powerful set. Now the desired result follows from Theorem 5.5.
Proposition 7.2. For any nontrivial powerful sets S 1 , S 2 ⊆ 2 E , the set S 1 ⋄ S 2 is loopless and frameless.
Proof. It is clear from the construction that no loops or frames are created, regardless of S 1 and S 2 . Theorem 7.3. Let S be a set of nonisomorphic loopless frameless powerful sets of order n and size 2 n−2 . Then is a set of nonisomorphic loopless frameless powerful sets of order n + 3 and size 2 n+1 . If n > 3, then every member of S ⋄2 is nonlinear.
Let i ∈ {1, 2}. Since S i , S ′ i are loopless and frameless, S i \{0} and S ′ i \{0} each have no column that is all-0 or all-1, so they each have no column that looks like their portion of column n + 2 or n + 3. There will therefore be only one other column that, in its rows corresponding to S i \{0}, matches column n + 2 or n + 3, and similarly for S ′ i \{0}: namely, column n + 1. Therefore f (n + 1) = n + 1. We can now see that f cannot mix n + 2 from n + 3 up, since the rows where column n + 2 is 0 are precisely the rows where column n + 1 is 0, and the rows where column n + 3 is 0 are precisely the rows where column n + 1 is 1. So f (n + 2) = n + 2 and f (n + 3) = n + 3.
We have seen that f maps [n] to itself. Also, for each i = 1, 2, the mapping it induces on codewords of S 1 ⋄ S 2 sends rows corresponding to S i to rows corresponding to S ′ i (else the last three bits of the codewords do not match up). Since (by assumption) f is an isomorphism from S 1 ⋄ S 2 to S ′ 1 ⋄ S ′ 2 , it must induce an isomorphism from S 1 to S ′ 1 and from S 2 to S ′ 2 . Therefore S 1 ∼ = S ′ 1 and S 2 ∼ = S ′ 2 . This contradicts our assumption that S 1 ∼ = S ′ 1 or S 2 ∼ = S ′ 2 . (In fact, just one S i ∼ = S ′ i is sufficient to get this contradiction.) Therefore, all the members of S ⋄2 are nonisomorphic.
Since n > 3, each S i has at least three nonzero members. Let x and y be two nonzero members of S 1 . The corresponding vectors in S 1 ⋄ S 2 have the same final three bits (by construction), so their sum has last three bits all 0. If S 1 ⋄ S 2 is linear, then this means that their sum is the (n + 3)-bit zero vector, since the only vector in S 1 ⋄ S 2 with last two bits 0 is the zero vector. This implies that x + y = 0. This can only happen if x = y, which contradicts the fact that they are distinct nonzero members of S 1 . Hence S 1 ⋄ S 2 cannot be linear.

The result follows by induction.
For an upper bound on q(n), we can start with the number 2 2 n of all sets of subsets of [n]. We saw in §6 that a powerful set is determined by its clutter of minimal nonempty members, so q(n) is at most the number of inequivalent clutters of order n. The number of clutters on [n] is at least the number of sets of ⌊n/2⌋-subsets of [n], since any collection of distinct sets all of the same size is a clutter. So the number of clutters is at least 2 ( n ⌊n/2⌋ ) . Since each isomorphism class of clutters has at most n! members, the number of isomorphism classes of clutters is at least 2 ( n ⌊n/2⌋ ) /n!. This eventually exceeds 2 c n for any fixed c < 2. It follows that the number of inequivalent clutters does not give us a better upper bound of the form 2 c n than the naïve 2 2 n .
The number of isomorphism classes of binary matroids on n elements is well known to satisfy the easy upper bound 2 n 2 . It follows that, asymptotically, almost all powerful sets are nonlinear.

Discussion
We have laid some of the foundations of the theory of powerful sets, but there is much still to be done.
One line of research is to consider aspects of binary matroid theory and determine how far they extend to powerful sets. Most of our work has been of this character, including our Conjectures 3.4 and 3.8. In §6 we proposed the problem of characterising those clutters that are the set of minimal nonempty members of a powerful set, which is analogous to characterising sets of circuits of binary matroids. Research could also be done on Tutte-Whitney polynomials of powerful sets, to determine what special properties they have beyond the general results of [1,2].
Another line of research is to examine the coding-theoretic properties of nonlinear powerful sets (viewed as powerful codes). These are sufficiently general objects that many do not have useful coding properties, but it is reasonable to expect that some classes of them may be useful.
One could examine the relationship between linear codes over Z 4 and the binary codes obtained from them using the Gray map, 0 → 00, 1 → 01, 2 → 11, 3 → 10 (as suggested to us by Peter Cameron). This construction does not necessarily give a powerful set, as the following example shows. On the left is a linear code over Z 4 and on the right is the corresponding binary code. For the binary code, the number of vectors that are 0 on X = {1, 3, 5} is 3, not a power of 2. (Note the underlined bits.) So the binary code is not powerful. It remains to determine which Z 4 -linear codes give nonlinear powerful codes, and what properties they have.
Finally, we suggest the challenge of finding significantly stronger bounds on the number (up to isomorphism) of powerful sets of order n, and determination of lim n→∞ (log 2 p(n)) 1/n .