Enumeration and investigation of acute 0/1-simplices modulo the action of the hyperoctahedral group

The convex hull of n+1 affinely independent vertices of the unit n-cube Cn is called a 0/1-simplex. It is nonobtuse if none its dihedral angles is obtuse, and acute if additionally none of them is right. In terms of linear algebra, acute 0/1-simplices in Cn can be described by nonsingular 0/1-matrices P of size n x n whose Gramians have an inverse that is strictly diagonally dominant, with negative off-diagonal entries. The first part of this paper deals with giving a detailed description of how to efficiently compute, by means of a computer program, a representative from each orbit of an acute 0/1-simplex under the action of the hyperoctahedral group Bn of symmetries of Cn. A side product of the investigations is a simple code that computes the cycle index of Bn, which can in explicit form only be found in the literature for n<7. Using the computed cycle indices in combination with Polya's theory of enumeration shows that acute 0/1-simplices are extremely rare among all 0/1-simplices. In the second part of the paper, we study the 0/1-matrices that represent the acute 0/1-simplices that were generated by our code from a mathematical perspective. One of the patterns observed in the data involves unreduced upper Hessenberg 0/1-matrices of size n x n, block-partitioned according to certain integer compositions of n. These patterns will be fully explained using a so-called One Neighbor Theorem. Additionally, we are able to prove that the volumes of the corresponding acute simplices are in one-to-one correspondence with the part of Kepler's Tree of Fractions that enumerates the rationals between 0 and 1. Another key ingredient in the proofs is the fact that the Gramians of the unreduced upper Hessenberg matrices involved are strictly ultrametric matrices.


Introduction
A 0/1-simplex is an n-dimensional 0/1-polytope [24] with n + 1 vertices. Equivalently, it is the convex hull of n + 1 of the 2 n elements of the set B n of vertices of the unit n-cube I n whenever this hull has dimension n. To support the mathematical studies of 0/1-simplices, and in particular of those whose dihedral angles are all nonobtuse or even acute [7], we investigate how to enumerate such 0/1-simplices modulo the action of the hyperoctahedral group B n of symmetries of I n by means of a computer program. The motivation to generate such computational data was quite appropriately phrased by Günther Ziegler in Chapter 1 of Lectures on 0/1-Polytopes [24], as "Low-dimensional intuition does not work! ". This statement expresses the fact that although it is tempting to formulate conjectures on n-dimensional 0/1-polytopes and related 0/1-matrices based on computational data obtained for a few small values of n, these conjectures often fail to be true. Finding out that a conjecture is false using general mathematical arguments may be much harder than generating the necessary computational data for large enough n to disprove it, not in the least because the tendency towards a conjecture is rather to believe its validity and aim to prove it. This is why we concentrate on the enumeration problem for acute 0/1-simplices. Using the date produced by the enumeration, we will also formulate and prove some mathematical results on certain classes of 0/1-matrices. We will summarize the most important of these results in Section 1.2. First, in Section 1.1, we give two examples that illustrate Ziegler's claim above, also based on the computational data. Remark 1.1 Especially the larger 0/1-matrices in this paper we will often display as a picture of an array with black and white squares representing its ones and zeros, respectively.

Two examples that illustrate Ziegler's claim above
A first example of a statement that is valid in I n for n ≤ 8 but that does not hold in I 9 is the following. In Figure 1 we display 0/1-matrices P having maximal absolute value of the determinant, when ranging over all those n × n matrices whose n columns together with the origin are the vertices of a so-called acute 0/1-simplex. See Definition 5.1 for a linear algebraic characterization acute 0/1-simplices and the 0/1-matrices associated with them.
For n ≤ 8, these values turn out to be even maximal when ranging over all 0/1-matrices of size n × n. However, the maximal determinant over all 9 × 9 0/1-matrices is 144 and not 96. This, of course, disproves the conjecture that maximal determinants of 0/1-matrices are attained by 0/1-matrices that represent acute 0/1-simplices. Notwithstanding, the Hadamard maximal determinant conjecture [19] is equivalent [18] with the existence of a regular simplex in I n for dimensions n whose remainder after devision by 4 equals 3. Regular simplices have acute dihedral angles, and indeed, the 3 × 3 and the 7 × 7 matrix in Figure 1 are socalled Hadamard matrices. This motivates a further study of acute 0/1-simplices and their determinants, as the set of acute 0/1-simplices is a small and highly structured set in which the Hadamard matrices figure as the most structured ones. It thus puts the Hadamard matrices in a wider context in which, as far as we know, they have not yet been studied.
As a second example in which low dimensional intuition does not work, here is a statement that holds in I n for all n ≤ 7: the Gramian G = P ⊤ P of any 0/1-matrix P whose columns together with the origin are the vertices of an acute simplex is a strictly ultrametric matrix [14,27]. A strictly ultrametric matrix is a highly structured positive matrix in the sense that all its 3×3 principal submatrices are, modulo simultaneous permutation of rows and columns, of the form   d b a b c a a a f   , with a ≤ b < c ≤ d and a < f.
Even though the columns of the two 8 × 8 matrices displayed in Figure 2 together with the origin are indeed vertices of acute 0/1-simplices in I 8 , their Gramians are however not strictly ultrametric. In both matrices, the inner products between columns 3, 7, and 8 do not satisfy the relations in (1), not even after simultaneous row-and column permutations. We will return to strictly ultrametric and related matrices in Section 6, because they will turn out to be a powerful tool to prove our main results. See also [2] for a detailed account on the geometric properties of the special type of simplices whose Gramians are ultrametric.

Main results obtained from analyzing the generated data
A positive result in this context is as follows. Let n ≥ 3, and let the ordered tupel λ = λ 1 , . . . , λ k be a composition of the integer n − 1 whose first and last part are at least 2. Associate with λ the n × n matrix H λ as is done for the example λ = 3, 1, 2, 2 in Figure 3. The matrix H λ is constructed as an unreduced upper Hessenberg matrix with identity matrices I j of size λ j × λ j covering the lower co-diagonal from top left to bottom right. The matrices I 1 , . . . , I k define a checkerboard pattern in H λ above I 1 , . . . , I k , with blocks containing either only ones, or only zero entries, where the blocks directly bordering I j and I j+1 contain only ones. This uniquely defines H λ in terms of the composition λ.
In Section 6.2 we will prove the following results in this context. Theorem 1.2 Let H be an n × n unreduced upper Hessenberg 0/1-matrix whose columns and the origin are the n + 1 vertices of a simplex S ⊂ I n with acute dihedral angles only. Then, possibly after exchanging its first two rows and/or last two columns, H is equal to the matrix H λ for some composition λ = λ 1 , . . . , λ k of n − 1 with first and last parts larger than one. Moreover, , gcd(f k , g k ) = 1.
Conversely, each such matrix H λ has the property that its Gramian is strictly ultrametric, which implies that its columns together with the origin are the vertices of an acute 0/1-simplex.
As a corollary of this theorem, all attainable absolute values of the determinant function on the set of all unreduced n × n upper Hessenberg 0/1-matrices H for which (H ⊤ H) −1 is a diagonally dominant Stieltjes matrix with negative off-diagonal entries, can be explicitly read from a part of Kepler's Tree of Fractions [25]. This part is depicted in Figure 4. It has the fraction 1 2 as root. The children of a vertex p q are p p+q and q p+q . Transversing the tree level by level corresponds to an enumeration of all the rationals Q ∩ (0, 1). 6   The circled integers displayed in Figure 4 below each vertex equal the sum of numerator and denominator of the fraction belonging to that vertex. At level k these integers correspond to the absolute values of the determinants of each of the 2 k matrices H λ of size (k + 4) × (k + 4).
Observe that the determinants in the rightmost branch in the tree equal the Fibonacci numbers, which were proved in [12] to be the maximal value of the determinant function over all n×n Hessenberg 0/1-matrices. We can now conclude that this maximum is (also) attained by matrices representing acute simplices. More generally we see that any branch of the tree that, starting at a given vertex p/q corresponding to the determinantal value p + q, extends only to the right, yields a Fibonacci-type sequence d r (j), d r (j + 2) = d r (j) + d r (j + 1) with d r (−1) = p, d r (0) = q and d r (1) = p + q, whereas any branch from a vertex p/q that extends only to the left, yields a family of acute 0/1-simplices with determinants increasing linearly as The corresponding matrices H λ in this latter case have integer compositions of which the last part increases by one when the size of H λ increases by one while all the other parts of λ remain the same. The existence of such families with linearly increasing determinants was first observed in [4]. In Section 6 we give a full explanation of their structure.

Outline
Our aim is to give a self-contained account of all necessary ingredients. For this, we first recall in Section 2 the group structure of B n and the permutation subgroup of S 2 n it induces on the set B n of 0/1-vectors of length n. These induced permutations were studied by Harrison and High, who derived a formula in [21] for the corresponding cycle index polynomial Z n of B n . This formula was later claimed to be simplified by Chen in [10], who also studied the induced permutations of the edges of I n . Unfortunately, in view of the standard counting paradigm of Pólya [28], neither formula allows a straightforward evaluation, modulo the induced action of B n on B n , of the number ε k n of 0/1-polytopes in I n with k vertices. Therefore, here we will aim for a more pragmatic approach, also motivated by the fact that for n > 6 we failed to find explicit expressions for Z n in the literature. First, in Section 2, we give transparent algorithmic descriptions of how to compute Z n by means of a simple computer code. This code yields Z n as a table of coefficients and exponents of monomials in a minimal effort: the table for n = 9 in Section 7 was, for instance, produced on a simple laptop within half a second. As a next step, in Section 3 we explain how to compute, modulo the action of B n , the numbers ε k n of 0/1-polytopes with k vertices by applying Pólya's theory to the specific situation at hand. Again, the emphasis is to show how to algorithmically obtain the concrete values of ε k n by means of a computer code, using the tables for the cycle indices of B n . As we will be interested in 0/1-simplices, we pay special attention to the values k ≤ n + 1. In Section 7 we present a selection of the numbers produced by the algorithms.
In Section 4 we change our perspective from 0/1-polytopes and two-colorings to 0/1matrices. A 0/1-polytope c with k vertices can trivially be represented by a 0/1-matrix of size n × k whose columns are the vertices of c. Although convenient, this unfortunately introduces another non-trivial redundancy, as there are k! matrices having this property. Consequently, we investigate how to establish whether two given 0/1-matrices represent 0/1polytopes in the same orbit under B n . From all 0/1-matrices representing all the 0/1-polytopes in the same orbit under B n , we select one designated matrix, the minimal matrix representation P * , and study its properties. As a first application, this concept enables us to enumerate all 0/1-triangles in I n modulo the action of B n : we give the minimal matrix representation of each of the ε 2 n distinct orbits of 0/1-triangles under B n using O(1) arithmetic operations per triangle. We do the same for the subset of acute 0/1-triangles. Basically, we parametrize both sets with the points with integer coordinates in a three-dimensional polyhedron, which in both cases turns out to be a simple tetrahedron. We also derive an explicit formula for their cardinalities by counting the integer points in the respective tetrahedra. In theory, the same can be done for k-simplices. This however results in enumerating and counting the points with integer coordinates in a polytope of dimension 2 k − 1 constrained by at most (k + 1)! inequalities. Although the enumeration would still cost O(1) per k-simplex independent of n, the dependence on k makes such enumeration impractical.
As a consequence of this intractability, in Section 5 we use the assistance of the computer to extend the minimal matrix representations of the acute 0/1-triangles from Section 4 into minimal matrix representations of acute 0/1-tetrahedra, and similarly further into minimal matrix representations of all acute 0/1-simplices with n + 1 vertices. Since acute simplices have acute facets [16], each minimal matrix representation of an acute 0/1-tetrahedron equals a minimal matrix representation T of an acute 0/1-triangle with one additional column t appended. Hence, in theory, one could append one by one all feasible columns t to T such that [T |t] represents an acute tetrahedron, discard the ones that do not yield a minimal matrix representation, and continue to add more columns. Unfortunately, the verification of minimality is computationally much more expensive than verifying acuteness. It may thus be much quicker to find out if [T |t] can be extended to the desired number of columns, then to find out if it is minimal. This saves computational effort if it cannot be acutely extended.  Table 1: The number a(n) of acute 0/1 n-simplices in I n related to their total number s(n). All cardinalities are modulo the action of B n .
According to the data from Table 1 (see also Section 7), acute n-simplices in I n are extremely rare. Thus it seems likely that simply extending a minimal matrix representation until no acute extensions are available anymore is quicker than discarding the matrix representations that are not minimal. However, it turns out that the amount of data in the intermediate phases becomes unacceptably large. Thus, the challenge to make our algorithms as efficiently as possible is therefore nontrivial, and involves the well-known struggle between time and memory requirements. It requires a subtle balance between spending time in computing minimal matrix representations, and allowing the data to take more and more memory space. Along the way, and also for the purpose of mathematical analysis, we introduce the sets of candidate acute extensions C n (S) and of acute extensions A n (S) of a given acute simplex S ⊂ I n . Using the theory of symmetric inverse M-matrices (also called Stieltjes matrices) [22,23], it is possible to derive relations between the members of these sets that make their computation in many cases much less expensive than at first sight. In Section 7.3 we display the minimal matrix representations of all the acute 0/1-simplices in I n for n ∈ {3, 4, . . . , 9}.
In Section 6 we analyze these minimal matrix representations. Proofs of the results given in Section 1.2 will be based on the so-called One Neighbor Theorem for acute 0/1-simplices [3]. This theorem states that the set C n (S) of candidate acute extentions of a simplex S ⊂ I n with n vertices consists of at most two antipodal points. As a consequence, only points in higher dimensional cubes that project orthogonally on this antipodal pair can be added to form acute 0/1-simplices with more vertices. If one demands their matrix representation to be unreduced upper Hessenberg, this limits the possible options even further. What results is a complete description of the corresponding simplices in Section 6.2 together with the values of the determinants of their matrix representations in terms of continued fractions. Apart from the One Neighbor Theorem, we also use the properties of strictly ultrametric matrices [27] to prove acuteness of the simplices involved.
2 The hyperoctahedral group B n Write I n = [0, 1] n for the unit n-cube and B n = {0, 1} n for the set of its vertices. Let B n be the set of all rigid transformations h : I n → I n . Endowing B n with the usual composition of map as multiplication rule, it becomes the hyperoctahedral group of n-cube symmetries, with the dihedral group B 2 and the octahedral group B 3 as well-known instances. Each h ∈ B n bijectively maps k-facets of I n to k-facets and thus induces a permutation of these k-facets; in particular, it permutes B n . To describe this latter permutation, we choose the following bijection β as numbering of B n . It interprets the 0/1-vector v ∈ B n as a binary number. Each h ∈ B n induces a permutation π h ∈ S 2 n of the numbers 0, . . . , 2 n − 1 via β by In Section 3 we will count the number of 0/1-polytopes modulo n-cube symmetries using Pólya's Theorem [28]. For this we need to know how many permutations π h of which cycle type are induced in S 2 n when h ranges over B n . Recalling that any permutation π of ℓ objects can be written as the product of disjoint cycles, we can define the cycle type of π.
From basic algebra we know that the cycle types of two permutations in S ℓ coincide if and only if they are conjugate.
An important consequence is the following corollary, whose formulation uses (5). Proof.

Remark 2.4
The table in (19) constitutes an example of the fact that t(π g ) = t(π h ) while g and h are not conjugate in B n , hence the converse implication in Corollary 2.3 does not hold. Corollary 2.3 shows that counting how many permutations of which type are induced by the elements of B n reduces to the following two tasks, • find the cycle type of π h of a single element h from each conjugacy class of B n , • count the number of elements in each conjugacy class of B n .
Before performing these tasks in Section 2.3, we recall some basic facts about B n . We identify two subgroups B c n and B p n of B n and show that B n = B p n × B c n . This enables us to associate with each h ∈ B n a so-called signed permutation. The corresponding signed cycle type of such a signed permutation will then be used to describe and count the conjugacy classes of B n , and consequently, the number and cycle type of their induced permutations in S 2 n .

The subgroups B c n & B p n : complementations & permutations
Let the n-tupel e 1 , . . . , e n be the standard basis for R n . For j ∈ {1, . . . , n}, let c j : I n → I n : x → e j + x − 2e j e ⊤ j x be the reflection in the affine hyperplane 2x j = 1. The set {c 1 , . . . , c n } generates a subgroup B c n of B n . Note that c i • c j = c j • c i and c 2 j = id. Thus, the mapping is a bijection, showing that |B c n | = 2 n . One can verify that c w (v) = xor(w, v) = (w + v) mod 2, where xor is the logical exclusive or operation performed entry-wise on the pair w, v ∈ B n .
Next, for each j ∈ {2, . . . , n}, consider the reflection s j : I n → I n : x → x − (e 1 − e j )(e 1 − e j ) ⊤ x in the hyperplane x 1 = x j . The set {s 2 , . . . , s n } generates a subgroup B p n of B n . The action of s j on v ∈ B n interchanges the first and jth entry of v. Since each permutation of n objects is a product of transpositions with the first object [15], we conclude that |B p n | = n!. For each permutation u = [u(1), . . . , u(n)] ∈ S n , we write p u for the element from B p n defined by its action on B n as Definition 2.5 (Coordinate complementation and permutation) An element c w ∈ B c n will be called a coordinate complementation and an element p u ∈ B p n a coordinate permutation.
Example 2.6 Consider the group B 3 of unit cube symmetries. It contains a subgroup B c 3 of order 8 = 2 3 with generators c 1 , c 2 , c 3 , the reflections in the planes 2x j = 1, and a subgroup B p 3 of order 6 = 3! with generators s 2 and s 3 , the reflectors in the planes x 1 = x 2 and x 1 = x 3 .
To illustrate the actions of elements from B c 3 and B p 3 , let for instance w = (0, 1, 1) ⊤ , then c w ∈ B c n acts on I 3 as depicted in the right part of Figure 7. Note that c w = c 1 • c 2 = c 2 • c 1 . Also given is its induced permutation π cw ∈ S 8 . Next, given the permutation u = [3 1 2] ∈ S 3 , the action of p u ∈ B p n on I 3 is depicted on the left, also together with its induced permutation π pu ∈ S 8 . Observe that p u = s 3 • s 2 , but that the product s 3 • s 2 does not equal p u . ♦

B n and the group of signed permutations of n objects
An n-cube symmetry h ∈ B n is a rigid transformation and thus an affine isometry. As such, it is uniquely determined by the combination of both the items (1) and (2), being (1) the vertex v ∈ B n that is mapped to the origin by h, (2) how the n vertices of I n at distance one from v are mapped to e 1 , . . . , e n .
Note that c v is the unique element from B c n with c v (v) = 0. Also note that p u (0) = 0 and p(e) = e for all p u ∈ B p n , where e = e 1 + · · · + e n is the all-ones vector. Thus, we have that Also observe that each p u ∈ B p n corresponds to a unique permutation of the basis vectors.

Corollary 2.7
For each h ∈ B n there exist unique pair p u ∈ B p n and c v ∈ B c n such that One of the consequences of the uniqueness is that the order |B n | of B n equals n!2 n . Another consequence is that we can now identify with each h ∈ B n a so-called signed permutation.
Definition 2.8 (Signed permutation) We will index h ∈ B n as h w , where the vector w, called a signed permutation, has entries given by where u and v are the indexes of the unique p u ∈ B p n and c v ∈ B c n such that h = p u • c v .
The set of all signed permutations of n objects is obviously isomorphic to B n .

Conjugacy classes and signed cycle types in B n
We now introduce the signed cycle type of a signed permutation. It will have the property that two elements in B n are conjugate if and only if they have the same signed cycle type.
Definition 2.9 (Signed cycle type) Let h = p u • c v with p u ∈ B p n and c v ∈ B c n . For each cycle γ in the decomposition of the permutation u into disjoint cycles, set  Let u + be the product of the cycles γ of u for which χ(γ) is even, and u − such that u = u + •u − . Then the 2 × n array where t is the cycle type from Definition 2.1, is called the signed cycle type of h.
Note that the signed cycle types of the elements h ∈ B n are in one-to-one correspondence with the double partitions [17] of n, which are ordered pairs of partitions of k and ℓ with k + ℓ = n.
Theorem 2.11 Two elements g, h ∈ B n are conjugate in B n if and only t ± (g) = t ± (h).
Thus, we have been successful in our aim to characterize the conjugacy classes of B n . Now we will consider the question of counting the number of elements of each of these classes. Firstly, Definition 2.1 implies that S ℓ has p(ℓ) conjugacy classes, where p(ℓ) stands for the number of integer partitions of ℓ. The sizes of these classes are well known.

Proposition 2.12
The size of each conjugacy class of S ℓ , being the number of σ ∈ S ℓ such that t(σ) = (t 1 , . . . , t ℓ ) for a given cycle type (t 1 , . . . , t ℓ ) equals Similarly, writing ∆(n) for the number of double partitions of n, we have that ∆(n) is the number of conjugacy classes of B n and that For illustration, we list here the first few values of p and ∆ in Table 2.

Proposition 2.13
The number of elements in B n of the signed cycle type where k = t 1 · 1 + · · · + t n · n and ℓ = s 1 · 1 + · · · + s n · n are the sums of the respective parts.
Proof. The only factor that needs explanation is the power of two. A cycle of length m can be given signs in 2 m ways, 2 m−1 of which resulting in an even number of signs and 2 m−1 of which in an odd number of signs.

An algorithm for the cycle index of B n
We are now able to answer the question how many permutations in S 2 n of which cycle type are induced by the 2 n n! elements of B n by implementing the following algorithm.
Algorithm 1: Counting and tabulating the induced permutations of B n .
Let n ∈ N be given. Step Step 2. For each such double partition, construct a single h ∈ B n with signed cycle type and evaluate the expression in (18) to count how many of them there are.
Step 3. Compute the type t(π h ) of the permutation π h ∈ S 2 n induced by h.
Step 4. Accumulate the result of Steps 2 and 3 over all double partitions in a table.
Example 2.14 The conjugacy classes of B 3 are indexed by the ten double partitions of 3.
Below we list these ten, and at their left we show how many elements of that type there are in B 3 .

Definition 2.15
The cycle index of the induced permutations on B n of the hyperoctahedral group is the polynomial Here, t i is the i-th entry of t(π h ) and ℓ is the Landau function, which assigns to n the largest order of an element from the symmetric group S n . Its values 1, 1, 2, 3, 4, 6, 6, 12, 15, 20, 30, 30, 60, 60, 84, . . .
can be found as sequence A000793 of the Online Encyclopedia of Integer Sequences.
Combining Table (4) and (20), the cycle index polynomial Z 3 of B 3 can be found as Further explicit expressions for the cycle index polynomials Z n of B n can be found in the literature [11] only for n ≤ 6. The above rather simple algorithm implemented on a personal computer can produce the table corresponding to Z n of the form (36) for each n ≤ 10 within a second. In the papers [10,21], the cycle type t(π h ) of the permutation π h ∈ S 2 n induced by h is expressed in terms of the signed cycle type of the signed permutation corresponding to h ∈ B n . Although algebraically of interest, their expressions are unfortunately too abstract to generate explicit numbers in a straightforward way. The above algorithm solves that problem.
3 The 0/1-polytopes in the unit n-cube A 0/1-polytope [24] is the convex hull of a (possibly empty) subset V ⊂ B n . Since distinct subsets of B n give rise to distinct 0/1-polytopes, we can and prefer to define a 0/1-polytope alternatively but equivalently as a map c : B n → {0, 1}, using the obvious correspondence Such a map can be seen as a two-coloring of the vertices of I n with "colors" 0 and 1. We denote the set of all maps B n → {0, 1} by P n , and write P k n ⊂ P n for all c ∈ P n with the property that precisely k elements of B n are mapped to 1: these correspond to the 0/1-polytopes with exactly k vertices. Observe that The double-exponential growth of |P n | in n is illustrated in the below table. Already for n = 6 it exceeds (by one) the number of grains of rice that the poor merchant claimed from the king in the legend of the chess board, as displayed in Table 5.  Table 5: Doubly exponential growth of the number |P n | of 0/1-polytopes in I n .
We assign to each 0/1-polytope c the unique integer N (c) between 0 and 2 2 n − 1 as where β is the binary-to-decimal numbering of v ∈ B n introduced in Figure 5.  Each element h of the hyperoctahedral group B n induces a permutation H h of P n by H h : For each fixed k it restricts to a permutation of P k n ⊂ P n . Via the numbering N defined in (25) it moreover induces a permutation It turns out to be of interest to know the cardinalities |S| and |S k | of the sets Before explaining why, we present an example.  Table 6. The (bold) fixed points correspond to S, and are added up per row and per column.  We see directly that |S| = 48. After identifying the 0/1-polytopes with k vertices for given k ∈ {0, . . . , 4}, we moreover find that |S 0 | = 8, |S 1 | = 8, |S 2 | = 16, |S 3 | = 8, and |S 4 | = 8. ♦ It may decrease complexity and uncover structure when we consider all elements in the orbit E n (c) of a 0/1-polytope c (elements in the same column of the above table) as equivalent. It is clear that 0/1-equivalence of 0/1-polytopes implies their congruence; however, the converse does not hold [24]. Thus, 0/1-equivalence is a finer type of equivalence than congruence.
We will now count the number ε n of 0/1-equivalence classes of 0/1-polytopes. Since 0/1equivalent 0/1-polytopes have the same number of vertices, we will count the number ε k n of 0/1-equivalence classes of 0/1-polytopes with k vertices, after which ε n = k ε k n .
Lemma 3.4 The number ε k n of 0/1-equivalence classes of 0/1-polytopes with k vertices equals Proof. Trivially, given c ∈ P k n , allc ∈ P k n that belong to E n (c) contribute one to the sum. This proves the first equality in (28) Thus, for eachc ∈ E n (c) there are exactly |S c | elements of B n that map c ontoc, proving the second equality.
Using this corollary we can continue to look at the example for n = 2.
consisting of 0/1-polytopes with zero, one, two, two, three, and four vertices, respectively. For all the 0/1-polytopes with, for instance, two vertices, the fixed points add up to 16, confirming the existence of two distinct 0/1-equivalence classes in P 2 2 . ♦

Counting 0/1-polytopes invariant under a given symmetry
Counting the elements of S can be done by counting for each c ∈ P n the number of elements of the set S c from (28). Alternatively, one can also count for each h ∈ B n the number of elements of the set This is the Cauchy-Frobenius Lemma, also known as Burnside's Lemma [8]. Note that counting S c corresponds to counting the fixed points per column of Table 6. As a consequence, the number of 0/1-polytopes that are invariant under a given h ∈ B n with t(π h ) = (t 1 , . . . , t 2 n ) equals the number of subsets of the set of the t 1 + · · · + t 2 n cycles of π h .
Proof. According to Proposition 3.7, the numbers within the same cycle of π h must either all be mapped to 0 or all be mapped to 1 by c • β −1 .
The number of 0/1-polytopes with k vertices that are invariant under a given cube symmetry h equals the number of subsets of the set of t 1 + · · · + t 2 n cycles of π h whose lengths sum to k.
and where the sum ranges over all integer partitions κ of k.
Proof. Let (κ 1 , . . . , κ k ) be a partition of k. The number of ways that this partition can be selected from the partition (t 1 , . . . , t n ) of n equals the product over all j ∈ {1, . . . , k} of the number of ways that κ j cycles of length j can be selected from the t j cycles of length j.
Corollary 3.10 The number of 0/1-equivalence classes of P k n equals Example 3.11 Consider the induced permutation π h of the vertices of I 3 with cycle type t(π h ) = (4, 2, 0, 0, 0, 0, 0, 0), which consists of 4 + 2 = 6 cycles. Hence, the number of 0/1-polytopes that are mapped upon themselves by h equals 2 6 = 64, which illustrates Corollary 3.8. To illustrate Theorem 3.9, consider the five partitions of k = 4, being 1 + 1 + 1 + 1 = 1 + 1 + 2 = 1 + 3 = 2 + 2 = 4 and their corresponding cycle types, Only the first, second, and fourth partition contribute to the sum in (32), which evaluates to Thus, each h ∈ B n with induced cycle type t(π h ) as in (34), leaves invariant fourteen 0/1polytopes in I 3 with four vertices. See also Table 7 in the next example. ♦ 3.3 Counting the 0/1-equivalence classes of P k n Corollary 3.10 in combination with the considerations in Section 2 give a way to compute the number |P k n | of 0/1-equivalence classes of 0/1-polytopes with k vertices as follows. Algorithm 2. Let integers n, k with 0 ≤ k ≤ 2 n be given.
(1) Use Algorithm 1 from Section 2.4 to generate the cycle index Z n of B n in tabulated form.
(2) Generate a second table with the p(k) partitions of k, see for instance [26].
(3) For each cycle type τ = (t 1 , . . . , t 2 n ) ⊢ 2 n from the first table: (a) sum the numbers a(τ, κ) from (32) over all κ ⊢ k; (b) multiply the result by the number of h ∈ B n for which t(π h ) = t.
To illustrate this algorithm, we perform it in detail in the example below.
Example 3. 12 We consider the case n = 3 and k = 4. The part of Table 7 to the left of the 6 × 5 block in boldface is the table representing Z 3 from Table (4).  The part of Table 7 above the boldface part contains the five partitions of 4. Note that only the values of t 1 , . . . , t 4 are needed to be able to compute each of the numbers a(τ, κ). The numbers 1, 12, 1 in the fifth row in boldface are the ones computed in (36) of the previous example. The sum 288 of the numbers in the 6× 5 block divided by the order 48 of B 3 equals 6, indeed the number of nonequivalent 0/1-tetrahedra in the cube, including two degenerate ones, as depicted in Figure 9. ♦ Remark 3.13 The combinatorial road [8,28] to arrive at the same result is to substitute in the cycle index polynomial Z n of B n in (20) the expressions x i = b i + w i . Then the coefficient of the monomial w k b 2 n −k in the expansion equals |P k n |. Although theoretically elegant and valuable, and widely applicable, it is not very suited for computing concrete numerical values.
The methodology described in Sections 2 and 3 leads to a way to compute the number of 0/1-polytopes in I n modulo the symmetries of I n . See also Section 7 for some explicitly computed values. It does not yield a specific element from each 0/1-equivalence class. In the next section we will investigate this enumeration problem.

Minimal matrix representations of 0/1-polytopes
We will now designate in each 0/1-equivalence class E n (c) of a 0/1-polytope c some special representatives. One of them we denote as the minimal representative from that equivalence class. Obvious candidates for such minimal representatives are the 0/1-polytopes c for which where N is the numbering defined in (25). However, with this definition it may happen that c ∈ P k n is a minimal representative, whereas none of its facets in P k−1 n is minimal. For computational purposes, we prefer a minimal representative to have that property.

Matrix representations of 0/1-polytopes
A natural way to represent a 0/1-polytope c, alternative to a mapping c : B n → {0, 1}, is by means of 0/1-matrices whose colums are the vertices of c.

Definition 4.1 (Matrix representation)
If the columns of a matrix P of size n × k are precisely the k distinct vertices of a 0/1-polytope c ⊂ P k n , we will call P a matrix representation of c. With each matrix representation P we associate the integer vectors where v ⊤ n = 2 0 , 2 1 , . . . , 2 n−1 and w ⊤ k = 2 k−1 , . . . , and where Π 1 is the unique k × k column permutation matrix sorting the k entries of v ⊤ n P Π 1 from left to right in increasing order, and Π 2 any n × n row permutation matrix sorting the n possibly non-distinct entries of Π 2 P w k from top to bottom in non-increasing order.
The permutations Π 1 , Π 2 depend on P , but this dependence is suppressed from the notation. As P has distinct columns, each c ∈ P k n has exactly k! distinct matrix representations. (1) P 1 and P 2 are matrix representations of the same 0/1-polytope c ∈ P k n ; (2) there exists a k × k permutation matrix Π such that P 1 = P 2 Π; (3) ν(P 1 ) = ν(P 2 ).
Proof. This is because that no vertex of I n is a convex combination of other vertices of I n , hence 0/1-polytopes are uniquely determined by their vertex set.
Due to the equivalence (1) ⇔ (3) in Proposition 4.2, and with a slight abuse of notation, we will use ν(c) also for a 0/1-polytope c ∈ P n , and assign to it the vector ν(c) taken by any matrix representation P of c. Note that ν : P n → {0, . . . , 2 n } k is injective.
For given c ∈ P k n , we will write M(c) for the set of all matrix representations of allc ∈ E n (c). This induces an equivalence relation on the set Z of all matrix representations of 0/1-polytopes, that we will denote by P 1 ∼ P 2 . Before studying this equivalence on Z, we introduce two simpler relations.

Definition 4.3 (Row complementation/permutation)
A 0/1-matrix P 2 is a row complementation of P 1 , denoted by P 2 c ∼ P 1 , if it results from P 1 after exchanging the zeros and ones in a subset of its rows; it is a row permutation of P 1 , denoted by P 2 p ∼ P 1 if there exists a permutation matrix Π such that P 2 = ΠP 1 .
Both c ∼ and p ∼ are equivalence relations on Z. The 2 n row complementations applied to a given P ∈ Z result in matrix representations of each of the 0/1-polytopes in an orbit under the action of the subgroup B c n ⊂ B n , whereas the n! row permutations of P are matrix representations of those in an orbit under the action of the subgroup B p n ⊂ B n . Thus, following Section 2, a matrix representation of each 0/1-polytope that is in the same 0/1-equivalence class of a given c ∈ P k n can be obtained by performing each of the 2 n n! combined row complementations and permutations to a given matrix representation P of c.

Verification of 0/1-equivalence of matrix representations
For given P 1 , P 2 ∈ B n×k let r 1 = P 1 w k and r 2 = P 2 w k , where w k is the vector from (39). If P 1 c ∼ P 2 , then the j-th entries of r 1 and r 2 are equal in case the j-th rows of P 1 and P 2 are equal, and add up to 2 k − 1 in case these rows are complementary. Hence, verification whether P 1 c ∼ P 2 can be done in at most O(nk) operations, which is dominated by the costs of computing r 1 and r 2 . Verifying whether P 1 p ∼ P 2 asks to inspect if the n-vector r 1 is a permutation of r 2 , requiring O(nk + n log n) operations.
The combination of these two observations yields the following, which can be seen as a variant of stating that r 1 is a signed permutation of r 2 , see Section 2.2.
Proposition 4.4 Let P 1 , P 2 ∈ Z. There exists an R ∈ B n×k such that  Then P 1 c ∼ R p ∼ P 2 for some R ∈ B 3×4 , because the entries (6, 2, 1, 9, 13, 14) of the two 3vectors r 1 and 15e − r 1 can be permuted into the entries (6, 14, 13, 9, 1, 2) of r 2 and 15e − r 2 . Indeed, P 2 is obtained by exchanging and complementing the second and third row of P 1 . ♦ Proposition 4.2 showed that if P 1 and P 2 are matrix representations of the same 0/1-polytope, then P 1 = P 2 Π for a permutation matrix Π that can be found by inspecting if s 1 = v ⊤ n P 1 is a permutation of s 2 = v ⊤ n P 2 , with v n from (39). To verify if P 1 ∼ P 2 , or in other words, if P 2 is a column permutation of a row complementation and row permutation of P 1 , is computationally much more complex.
Proposition 4.6 Let P 1 , P 2 ∈ Z. Then P 1 ∼ P 2 if and only if there exists an R ∈ Z and a permutation matrix Π such that the verification of which can be done in O(k!(nk + n log n)) operations.
Proof. The verification can be done by looping over all k! permutation matrices Π and performing the verification in Proposition 4.4 for each of them.
Remark 4.7 Relation (41) holds if there exist permutation matrices Π 1 and Π 2 such that This more symmetric formulation suggests that in order to verify if P 1 ∼ P 2 , one can establish the existence of permutation matrices Π 1 and Π 2 such that Π 1 P 1 c ∼ P 2 Π 2 in two ways: • for each Π 2 , verify if there exists Π 1 such that Π 1 P 1 c ∼ P 2 Π 2 ; • for each Π 1 , verify if there exists Π 2 such that Π 1 P 1 The second strategy would require an efficient way to verify the existence of a column permutation of P 2 such that it equals a row complementation of the given matrix Π 1 P 1 . This verification is far less trivial than the one in Proposition 4.4. Nevertheless, if k > n + 1, there are ways to repair this and make the second strategy more economic than the first. Because our main interest is 0/1-simplices for which k ≤ n + 1, we will not go into detail.

Minimal matrix representations and their properties
The lexicographical order ≺ on the integer vectors ν(P ) associated with the matrix representations P of 0/1-polytopes c ∈ P n induces a total order on P n as well as on Z.

Definition 4.8 (Minimal representative)
The minimal representative of a c ∈ P k n in E n (c) is the unique 0/1-polytope c * ∈ E n (c) for which ν(c * ) ≺ ν(d) for all d ∈ E n (c * ), d = c * .
The minimal representative c * of c ∈ P k n has k! distinct matrix representations, of which we designate one as the minimal matrix representation.

Definition 4.9 (Minimal matrix representation)
The minimal matrix representation of c ∈ P n in M(c) is the unique matrix representation P * of c * for which v ⊤ n P * = ν(P * ), in other words, whose column numbers v ⊤ n P * are strictly increasing.
We will now study further properties of minimal matrix representations of 0/1-equivalence classes of 0/1-polytopes. The following result proves a desirable property, mentioned already at the beginning of this section.
Lemma 4.10 Let P * be a minimal matrix representation of a 0/1-polytope c ∈ P k n . Then for each j ∈ {1, . . . , k − 1}, the submatrix P * j of P * consisting of its j leftmost columns is a minimal matrix representation of a 0/1-polytope c j ∈ P j n .
Proof. Let P * ∈ B n×k be a minimal matrix representation. Then by Definition 4.9, v ⊤ n P * is increasing, and hence, so is v ⊤ n P * k−1 . To arrive at a contradiction, assume that P * k−1 is not a minimal matrix representation. Then there exists a row permutation Π such that ΠP * k−1 c ∼ P k−1 and ν(P k−1 ) ≺ ν(P * k−1 ). But this means that ΠP * c ∼ P , where P is a matrix whose k − 1 leftmost columns equal P k−1 . Irrespective of the rightmost column of P , this implies that ν(P ) ≺ ν(P * ), contradicting the minimality of P * . This proves that P * k−1 is a minimal matrix representation, and hence inductively, the minimality of all P * j .

Corollary 4.11
Any minimal representative of a 0/1-polytope with k vertices contains a minimal representative of a 0/1-polytope with k − 1 vertices.

Corollary 4.12
The first column of a minimal matrix representation P * of a 0/1-polytope c ∈ P k n equals 0 ∈ R n .
Proof. According to Lemma 4.10, the first column of P * is a minimal matrix representation of a 0/1-polytope with one vertex. Clearly, this is the zero vector.
By Definition 4.8, ν(P * ) = v ⊤ n P * , which means that the integer vector v ⊤ n P * is increasing. The next lemma proves that additionally, P * w p is non-increasing from top to bottom. Lemma 4.13 Let P * be a minimal matrix representation of a 0/1-polytope c ∈ P k n . Then or equivalently, P * w k is non-increasing from top to bottom.

Proof.
Write p * i for row i of P * and p * j for row j of P * . Assume that 1 ≤ i < j ≤ n and p * i w k < p * j w k , contradicting the statement to prove. Then exists and equals the index of the leftmost column in which p * i and p * j differ. The assumption p * i w k < p * j w k implies that p * i e k = 0 and p * j e k = 1. Write P for the matrix that results after the transposition of rows i and j of P * . Then the first p − 1 columns of P * and P coincide. However, in column p, the one in row j is exchanged with the zero in row i above it. As a result, v ⊤ n P ≺ v ⊤ n P * , contradicting that P * is a minimal matrix representation. In Figure 10 we display four elements c 1 , . . . , c 4 from E 3 (c 1 ) of a tetrahedron c 1 . The stabilizer S c 1 of c 1 in B 3 contains two elements, hence |E 3 (c 1 )| = 24. We also display matrix Without proof, we mention the following facts for illustration.
• N (c 2 ) ≤ N (c) for all c ∈ E 3 (c 1 ), but none of its triangular facets is N -minimal; • c 3 is the unique minimal representative of E 3 (c 1 ); • µ(c 4 ) is not nonincreasing, hence c 4 is not the minimal representative of E 3 (c 1 ); • no 0/1-polytope formed by two or three vertices of c 4 is a minimal representative; • c 1 has all properties proved above of the minimal representative, but is not it. Now, let P be any matrix representation of a 0/1-simplex c with k ≤ n + 1 vertices. For each j ∈ {1, . . . , k}, write P j for the matrix obtained from P by first complementing those rows in P that have an entry 1 in column j, and then swapping columns 1 and j of the result. Each matrix P j corresponds to c with one of its vertices placed at the origin. Hence, due to Corollary 4.12, there exists a j ∈ {1, . . . , k} such that P * = Π 1 P j Π 2 for some permutation matrices Π 1 and Π 2 , and where Π 2 leaves the first column of P j invariant. Instead of applying all the n!(k − 1)! permutations and verifying which of them result in P * , we can use that by Lemma 4.13, the row numbers P * w k are non-increasing. Therefore, for each of the (k − 1)! choices for Π 2 , it suffices to simply sort the rows of P j Π 2 . Then P * must be among the resulting k(k − 1)! = k! matrices, (k − 1)! for each value of j ∈ {1, . . . , k}.

Summarized in algorithmic form, this reads as follows.
Algorithm 3: Computing the minimal matrix representation P * of a 0/1-simplex c.
Let P be any matrix representation of c. Define P 1 , . . . , P k as described above.
Each P * j can be seen as a local minimizer over all matrices that can be obtained from P j by permuting its rows and columns. The minimal among all k local minima is then P * . Corollary 4.14 A 0/1-polytope with k vertices has at most k! distinct matrix representations P with P e 1 = 0 and with P w k nonincreasing.
We will now use Algorithm 3 to enumerate the minimal representatives and their minimal matrix representations of all 0/1-triangles in I n , and in particular of the subset of all acute 0/1-triangles. These minimal matrix representations of 0/1-triangles will be extended by a computer code to minimal matrix representations of nonobtuse and acute 0/1-simplices.

All minimal matrix representations of 0/1-triangles
Let T ∈ P 3 n be a 0/1-triangle. We will characterize its minimal matrix representation T * . By Definition 4.9, we know that v ⊤ n T * is increasing; by Corollary 4.12, the first column of T * equals zero; and by Lemma 4.13, T * w 3 is non-increasing. Therefore, we know that and where the right-hand side stands for the n×3 matrix whose top a rows equal [0 1 1], whose next b rows equal [ 0 1 0 ] and so on. Of course, T * is not minimal for all values of a, b, c, d. For instance, if b > c it is not. In that case, swapping the second and third column of T * and sorting the rows, leads to a matrix with a smaller second column number: 2 a+c < 2 a+b .
To further specify a, b, c, d, we compute the k! = 6 matrices that are generated by Algorithm 3, with start matrix T * 1 = T * for some choice of a, b, c, d. Each of those six matrices is of the same form as in (45), but with the numbers a, b, c, d of repeated rows permuted. Instead of writing down the matrices, we only present in Table 8   Observe that Table 8 Proof. Consider the column numbers of T * , v ⊤ n T 11 = 0, 2 a+b − 1, 2 a+b+c − 2 a+b + 2 a − 1 .
Necessary and sufficient conditions for this vector to be lexicographically minimal over all permutations of a, b, c are as follows. The second entry is minimal if and only if a + b ≤ a + c and a + b ≤ b + c, hence if and only if b ≤ c and a ≤ c. If this is the case, additionally the third entry is minimal if and only if a ≤ b. The fact that a + b + c must be bounded above by n is trivial. The additional bound 1 ≤ a + b is a necessary and sufficient condition for the three vertices of T to be distinct.

Corollary 4.16
Let T * be a minimal matrix representation of a 0/1-triangle T in I n . Then: • if a = 0 then T is a right triangle; • if a > 0 then T has acute angles only.
Proof. Suppose that a = 0. Then due to 1 ≤ a+b and a ≤ b ≤ c in (46), we have that 1 ≤ b and 1 ≤ c and thus, T * in (45) obviously represents a nondegenerate right triangle. If 0 < a, then again due to (46), also 0 < b ≤ c. This shows that the difference between the second and third column is not orthogonal to either one of them, and thus is T * not right. Finally, since no triangle in I n can have obtuse angles, also the second bullet is proved.
Theorem 4.15 establishes a bijection between the minimal matrix representations of all 0/1-triangles in I n and the set all points (except the origin due to 1 ≤ a + b) with integer coordinates in the polyhedron K in the nonnegative octant of R 3 defined by the inequalities A closer inspection shows that K is a tetrahedron, the intersection of the so-called pathtetrahedron P defined by the inequalities 0 ≤ a ≤ b ≤ c ≤ n, and the cube-corner C defined by 0 ≤ a, 0 ≤ b, 0 ≤ c and a + b + c ≤ n. This is depicted in Figure 11. Because the cube [0, n] 3 can be subdivided into six congruent path tetrahedra all sharing the same long diagonal, K is one of six congruent parts of the cube corner. In fact, each of those six parts corresponds to exactly one of the matrices in Table 8. Figure 11: The tetrahedron K as intersection a path tetrahedron P and a cube corner C.
Obviously, with the above characterizations, the enumeration of all minimal matrix representations of all 0/1-triangles, or of those of all acute 0/1-triangles is now a trivial matter.

Simple explicit expressions for ε 2 n
The number of equivalence classes ε 2 n of 0/1-triangles in I n was in principle counted in Section 3, using Pólya's theory of counting. However, it did not provide a simple expression for this number, nor did it count the number of acute triangles. To do this here, we use the following change of variables, p = a + b, q = a + c, and r = a. (49) The conditions on a, b and c in Theorem 4.15 are equivalent to the conditions We will count the triples (p, q, r) satisfying (50) by fixing a value for r and counting the tupels (p, q) that satisfy the resulting equation, and summing over the feasible values of r.

Lemma 4.18
Let m ≥ 1 be an integer. The number of integer tupels (x, y) satisfying where ⌊·⌋ is the floor-operator and ⌈·⌉ the ceil-operator.  (49) shows that we may set r = 0 in (50) and continue to count to number of tupels (p, q) satisfying Since the inequality q ≤ p + q is always valid, it can be removed. Thus, we only need to count the number of tupels (p, q) such that 1 ≤ p ≤ q ≤ n − p, which was done in Lemma 4.18.
In the next lemma we will count equivalence classes of triangles for fixed values of r ≥ 1. It will turn out that if 3r > n, there are no solutions. Moreover, substituting r = 0 in (56) below does not yield the result of Corollary 4.19. After its proof it is explained why not. Proof.
Let r ≥ 1 be fixed. If p < 2r, there are no integers q that satisfy the third inequality q ≤ p + q − 2r in (50). If p ≥ 2r, this inequality holds for all q and can thus be removed. Thus, we only need to count the tupels (p, q) for which 2r ≤ p ≤ q ≤ n + r − p. (57) For such tupels to exist, we need that 2r ≤ n + r − p, but since p ≥ 2r this translates into 2r ≤ n + r − 2r. This explains the requirement 3r ≤ n in the statement of this lemma. To count the tupels, subtract 2r − 1 from each term in (57), and define x = p − (2r − 1), y = q − (2r − 1), and z = n − 3r + 2, then Applying Lemma 4.18 gives the number of tupels (x, y) satisfying these inequalities in terms of z, and substituting back z = n − 3r + 2 proves the statement.

Remark 4.21
Choosing r = 0 in (56) does not give (54). This is because setting r = 0 in (57) does not imply 1 ≤ p, as is required, whereas for r ≥ 1, it does.
We will now count the number of equivalence classes of acute triangles. First another lemma.

Proof.
We need to sum the expression in (56) over all r ≥ 1 satisfying 3r ≤ n. Now, since (n − 3r + 2) mod 2 = (n − r) mod 2, we find using Lemma 4.22 that The first sum in the right-hand side of (62) can be evaluated using standard expressions for sums of squares as To verify that this expression equals (61) is a tedious task, but can be done as follows. First, we substitute n = 6k + ℓ with ℓ ∈ {0, . . . , 5} into (61), which after simplifications results in where we have used that 2ℓ + 1 and ℓ 2 + ℓ − 1 = ℓ(ℓ + 1) − 1 are both odd, which implies that the sum of the first three terms in (66) is indeed an integer for all k and ℓ.
In Table 9 are listed the numbers r n and a n of 0/1-equivalence classes of right and acute 0/1-triangles and their sum d n for small values of n.  Table 9: Right, acute, and all 0/1-triangles in I n modulo the action of B n .
In the OEIS, the sequence r n has label A002620, sequence a n has label A181120, and d n has label A034198. Only the latter has as description "number of distinct triangles on vertices of n-dimensional cube", the other two are not associated with counting triangles in I n .

Minimal representatives of acute 0/1-simplices
We will now describe how to generate by means of a computer program minimal matrix representations of each 0/1-equivalence class of so-called acute 0/1-simplices, which are 0/1simplices having only acute dihedral angles. They form the higher dimensional generalizations of the acute 0/1-triangles from the previous section.
Definition 5.1 (Acute k-simplex) Let c ∈ P k n with 1 ≤ k ≤ n be a nondegenerate ksimplex in I n . Let R * ∈ B n×(k+1) be the minimal matrix representation of c. Let P be the n × k matrix with the nonzero columns of R * . If the k × k Gramian G = P ⊤ P satisfies: (1) each off-diagonal entry of G −1 is negative (G −1 is strictly Stieltjes), then c is called an acute 0/1-k-simplex.
The properties (1) and (2) are purely geometric, and concern the dihedral angles of the simplex, for which we refer to [6,7] for details. These angles are invariant under the action of B n . This guarantees that the concept of acute 0/1-simplex is well-defined using only the minimal matrix representation. Note that G is invertible as c is assumed nondegenerate.
As examples of acute simplices, in Figure 12 we display on the left the only acute 0/1tetrahedron in I 3 , and on the right the only acute 0/1-4-simplex in I 4 . Both are members of the family of so-called antipodal simplices in I n . An antipodal n-simplex in I n is 0/1equivalent with the simplex whose vertices are the origin and all v ∈ B n with exactly one entry equal to zero. For this family, the matrices P and G from Definition 5.1 are, indexed by n, P n = e ⊤ 0 I n−1 e , and G n = I n + ee ⊤ + (n − 3)e n e ⊤ n .
As before, e is the all-ones vector of appropriate length and I ℓ is the ℓ × ℓ identity matrix. It is easy to verify that G −1 satisfies the criteria (1) and (2) in Definition 5.1 for the family of antipodal simplices to be acute.

Remark 5.2
The tetrahedral facet T of the antipodal 4-simplex represented by the first four columns K of the matrix R * 4 is congruent to the regular tetrahedron in the left picture. They are, however, not 0/1-equivalent. Indeed, T does not lie in a three-dimensional cubic facet of I 4 , and this property is invariant under the action of B 4 . A congruence Q mapping one onto the other is, for instance, but this congruence Q is not a member of B 4 .

Acute 0/1-simplices and their candidate acute extensions
Here we will list a number of properties of acute simplices that are relevant in the context of their computational enumeration. Some of them are new, others are simply valid for acute simplices in general [6,7,16].
This corresponds to the well-known linear algebraic statement that the inverse of each principal k × k submatrix of G is also a diagonally dominant strictly Stieltjes matrix. Together with Lemma 4.10, this proves the following.
Corollary 5.4 Let P * be the minimal matrix representation of an acute simplex c ∈ P k n . Then for each j ∈ {1, . . . , k − 1}, the submatrix P * j of P * consisting of its j leftmost columns is a minimal matrix representation of an acute simplex c j ∈ P j n .
Corollary 5.4 shows in particular that the first three columns of any minimal matrix representation of an acute 0/1-simplex form a minimal matrix representation of an acute 0/1-triangle.
Definition 5.5 (Acute extensions of S) Let S ⊂ I n be an acute 0/1-simplex with k ≤ n vertices. The set A n (S) of acute extensions of S consists of all v ∈ B n such that conv(S, v) is an acute 0/1-simplex with k + 1 vertices.
The following classical result formulates a necessary condition for a vertex v ∈ B n of I n to be an element of the set A n (S) just defined.
Proposition 5.6 ( [16]) Let S be an acute n-simplex. Then each vertex of S projects orthogonally into the interior of its opposite (n−1)-dimensional facet.
Definition 5.7 (Candidate acute extensions of S) Let S ⊂ I n be an acute 0/1-simplex with k ≤ n vertices. The set C n (S) of candidate acute extensions of S consists of all v ∈ B n such that v projects orthogonally into the interior of S.
Remark 5.8 Due to Proposition 5.6, we have that A n (S) ⊂ C n (S). The sets are in general not equal. This can be seen in Figure 12. For each of the acute triangular facets T of the antipodal 0/1-tetrahedron in I 3 , there exist two vertices of I 3 that project in the interior of T , but only the convex hull of T with one of them yields an acute tetrahedron.
We will now investigate on a linear algebraic level when v ∈ C n (S) or even v ∈ A n (S). For this, let P ∈ B n×k with 1 ≤ k < n be such that G = P ⊤ P satisfies the conditions (1) and (2) in Definition 5.1, and let v ∈ B n . Consider the matrix [P |v]. Its GramianĜ is a simple update of G. Also its inverseĜ −1 is an update of the inverse H of G, as depicted in Figure 13. Figure 13: Updating the inverse of an updated Gramian.
Note thatĜ is positive semi-definite. It is invertible if and only if s > 0. This condition will turn out to be automatically fulfilled if v projects in the interior of its opposite facet.

Lemma 5.9
The vertex v is an element of ∈ C n (S) if and only if h > 0 and e ⊤ h < 1.
Proof. Observe that the orthogonal projection of v on the column span of P equals P h, because P h = P (P ⊤ P ) −1 P ⊤ v.
To lie in the interior of the corresponding facet of S, P h must be a convex combination in which all vertices of that facet, including the origin, participate nontrivially. Thus, the entries of h must be positive and up to less than one.
Proof. If v projects in the interior of its opposite facet, then in particular, v is not equal to a vertex of that facet. Also, no vertex of I n is a convex combination of any of the others. Thus, the convex hull of the facet and v has nonzero volume. The diagram in Figure 13 and Lemma 5.9 again show that even if v ∈ C n (S), it does not need to be in A n (S). Indeed, because hsh ⊤ > 0, the updated matrix H + hsh ⊤ may have nonnegative off-diagonal entries and violate condition (1) in Definition 5.1. Moreover, condition (2) may also be violated, as the row sums ofĜ −1 equal and if v ∈ C n (S) then according to Lemma 5.9, h ⊤ e− 1 < 0. Although this implies that ρ > 0, some of the remaining entries of r may be negative, in spite of He > 0. Suppose now that [P |v] is indeed such, that v ∈ C n (S) but that v ∈ A n (S). For some w ∈ B m , consider the matrix In comparison with the GramianĜ in Figure 13, only the bottom right entry has changed. Obviously, it w ⊤ w is large enough, the corresponding value of s will decrease so much, that the off-diagonal entries of H + hsh ⊤ are negative, and the row sums in (73) positive.
In other words, if a vertex v projects in the interior of an acute facet F , then by moving v orthogonally away from F , the simplex conv(F, v) will ultimately always become acute.
The above discussion proves the following theorem.
Theorem 5.11 Let S be an acute 0/1-simplex in I n . Consider I n as a facet of I n+m . Let the first n entries of v ∈ B n+m correspond to the vertices of I n . Then: and Moreover, for each v ∈ C n (S) there exists an ℓ such that provided that m is large enough.
Proof. Statement (74) follows because the right-hand side consists precisely of those vertices of I n+m whose orthogonal projection on I n land in C n (S). The claims in (75) and (76) follow from the above discussion. Note that the optimal value of ℓ in (76) can, in principle, be computed as soon as the data H, h, g and γ are available, as is visible from Figure 13. Figure 14 serves to illustrate the claims of Theorem 5.11. Consider the acute 0/1triangle T with vertices 0, 3, 5, in the numbering of Figure 14. The set C 3 (T ) consists of vertices 1 and 6, as both project in the interior of T . Only vertex 6 is an element of A 3 (T ). Indeed, the tetrahedron formed by 1 and T is not acute: it has right dihedral angles. However, each of the vertices 9, 17, 25 orthogonally above vertex 1 forms an acute 0/1-tetrahedron with T and thus belong to A 5 (T ), as do the ones 14, 22, 30 orthogonally above vertex 6.
The value of Theorem 5.11 is that in order to determine the set A n (S) of a given minimal representative of an acute 0/1-simplex S, the computational work can be reduced to: • find the smallest k ≤ n for which S ∈ I k and determine C k (S); • determine which v ∈ C k (S) are in A k (S); • for each v ∈ C k (S) \ A k (S), determine the value of ℓ in (76).
After doing so, all remaining vertices of v ∈ B n that are in A n (S) can now be easily listed without having to verify acuteness of the simplex conv(S, v).
The next theorem is not difficult, but will play a central role in the enumeration problem.
Theorem 5.12 Let S ⊂ I n be an acute 0/1-simplex with k vertices. IfŜ is an acute 0/1simplex in I n having S as a facet, then each vertex ofŜ belongs to S or to A n (S). Proof. Let v be a vertex ofŜ that does not belong to S. Then conv(S, v) is a facet ofŜ. SinceŜ is acute, Proposition 5.3 shows that conv(S, v) is acute, and thus v ∈ A n (S).
In the language of Figure 14, Theorem 5.12 expresses that each acute 0/1-simplex having T as a triangular facet, has all its vertices amongst the black bullets. Note that for each of these black bullets, its projection on the triangle T is the orthocenter of T .
Corollary 5.13 Let T be a facet of an acute 0/1-simplex S. Then A n (S) ⊂ A n (T ).
Theorem 5.12 shows the importance of administrating the set of acute extensions in the process of building acute 0/1-simplices from the starting point of a minimal representative an acute 0/1-triangle T . Adding vertices to T , the set of acute extensions of the resulting simplices becomes smaller and smaller as the dimension of the simplex become larger, hence reducing the amount of work to be done to build all minimal representatives of 0/1-simplices having T as minimal triangular facet.
It remains necessary to work with the concept of minimal matrix representations, to reduce the amount of data to be computed. Not only after the construction process but also during.

Minimal acute extensions of acute 0/1-simplices
Let T * be a minimal representative of an acute 0/1-triangle in I n with minimal matrix representation T * . Thus, the vertices of T * are the column vectors of T * . Now, consider the p matrices of size n × 4 defined by where A n (T * ) = {t 1 , . . . , t p } is the set of acute extensions of T * .
Proposition 5.14 Each minimal matrix representation of each acute 0/1-tetrahedron having T * as minimal triangular facet, is among the matrices in (77).
Proof. This follows immediately from Corollary 5.4 and the fact that there are no other t ∈ I n such that [T * |t] is an acute 0/1-tetrahedron. Consequently, we can subdivide the set of acute extensions of a minimal representative of an acute 0/1-simplex into a minimal and a non-minimal part.

Definition 5.15 (Minimal acute extensions)
The set A n (T * ) of acute extensions of a minimal representative T * of an acute 0/1-simplex with k ≤ n vertices, with minimal matrix representation T * , is subdivided as The results of Section 4 immediately show that the following matrices in (77) are in A n • (T * ): (1) the ones for which the column number v ⊤ n t j of t j is smaller than v ⊤ n T * e 3 ; (2) the ones for which the row numbers [T * |t j ]w 4 are not non-increasing.
To make the subdivision of A n (T * ) in (77) into A n * (T * ) and A n • (T * ) complete, one may use an adapted version of Algorithm 3; adapted in the sense that it should be aborted as soon as a matrix representation is encountered that proves that [T * |t j ] is not minimal.
then [T * |t j ]w 4 is not non-increasing if t 2 j itself is not non-increasing. Thus, for a number of t ∈ A n (T * ) it may be directly indicated that they do not belong to t ∈ A n * (T * ).
Suppose that it has been established that the matrix [T * |t ℓ ] is a minimal matrix representation of a 0/1-tetrahedron with minimal representativeT * . In order to continue the construction process of acute 0/1-simplices efficiently, either in a depth-first or a breadth-first fashion, the data structures of acute candidates and acute extensions ofT * need to be updated.
Remark 5.17 It may happen that while t is not a minimal acute extension of some acute 0/1-simplex T * , it is indeed a minimal acute extension of an acute simplex having T * as minimal facet. Indeed, let Then both t 1 and t 2 are acute extensions of T * . Only t 1 is a minimal acute extension of T * , whereas t 2 is not due to criterion (2) above. But t 2 is a minimal acute extension of the minimal matrix representation [T * |t 1 ].
Due to Corollary 5.13 we have that A n (T * ) ⊂ A n (T * ). To determine A n (T * ) exactly, it may not be necessary to verify for each t ∈ A n (T * ) whether the convex hull conv(T * , t) ofT * and t is an acute 0/1-simplex. Indeed, ifT * ⊂ I k for some k < n, it suffices to find out which t ∈ A k (T * ) are in C k (T * ) and which of these are in A k (T * ) and then use Theorem 5.11.

Example 5.18
The matrix T * ∈ B 6×3 in (79) with vertex numbers 0, 3 and 13, is a minimal matrix representation of a minimal representative T * of an acute 0/1-triangle. Clearly T * ⊂ Here we analyze the computational results of the codes presented in Section 7. Looking at the structure of the 0/1-matrices presented there, we observe some patterns. Although not all patters can be mathematically accounted for, there is one pattern that can be fully explained.
Remark 6.1 Since each first column of a minimal matrix representation is zero according to Corollary 4.12, we will omit this redundant column from the notation. What remains is a square matrix, whose Gramian has an inverse that is a diagonally dominant strictly Stieltjes matrix, and which we will also call a minimal matrix representation. See Definition 5.1.

Acute simplices (upper Hessenberg matrix representations)
The computational results in Section 7 show that all acute 0/1-simplices in I 3 , I 4 and I 5 have a minimal matrix representation that is an unreduced upper Hessenberg matrix. For n ≥ 6, many, but not all of them are unreduced upper Hessenberg. A closer inspection of these matrices shows that each of them corresponds to a unique composition of the integer n−1.
In Figure 15 we depict the observed correspondence, restricted to n ≤ 7, as a binary tree. The first n−1 entries in the first row of each matrix form an integer composition λ 1 , . . . , λ k of n−1, by considering consecutive entries with the same value as belonging to the same part. The last n−1 entries of the last column show the same composition. The horizontal and vertical lines separating the parts of both compositions, subdivide the matrix in blocks. There are k identity matrices of consecutive sizes λ 1 × λ 1 , . . . , λ k × λ k containing the first sub-diagonal. The blocks above those identity matrices alternatingly contain only zeros or only ones, starting with ones directly above the identity matrices. Figure 15, the matrix corresponding to the composition 2 + 4 of 6 is missing. This is because it is not a minimal matrix representation. The matrix that is a minimal matrix representation of the corresponding simplex is not upper Hessenberg. In Figure 16, it is depicted to its right. The same is done for the compositions 2 + 5 and 2 + 1 + 4 of 7. Next to them are depicted the corresponding minimal matrix representations.
Proof. The first λ 1 columns of H λ should, together with the origin, form the largest possible subset of vertices with mutual distances equal to two. If λ j > λ 1 + 1, this is not the case. Now, let n ≥ 4 be given, and let λ = λ 1 , . . . , λ k be an integer composition of n−1 with the property that λ 1 = 1 = λ k . It can easily be verified that there are 2 n−4 such compositions.
We will write H λ for the upper Hessenberg matrix that corresponds to λ according to the above description and examples. See also the introduction to this paper. The rule defining the tree in Figure 15 is now depicted in Figure 17. Figure 17: Splitting rule that defines the binary tree in Figure 15.
In the next section we will prove that for given n, each of the 2 n−4 matrices H λ corresponding to a composition λ of n − 1 with first and last part at least 2, represents an acute 0/1-simplex. Conversely, we will show that if H is an n × n unreduced upper Hessenberg matrix that represents an acute 0/1-simplex, then H ∼ H λ for some composition λ of n−1.

An application of the one neighbor theorem
We first recall the following theorem, which limits the number of candidate acute extensions from Definition 5.7 of an acute simplex in I n with n vertices to two. In the context of triangulations this result is called the one neighbor theorem, since it proves that an acute simplex in I n has at most one face-to-face neighbor in I n . See [3,13] for applications of this result in nonobtuse triangulations of I n , and of 0/1-polytopes in I 4 , respectively. Here, we will apply the result to prove the observed structures in Section 6.1.

Lemma 6.6
Let H be an n × (n−1) unreduced upper Hessenberg 0/1-matrix, whose columns together with the origin form an acute (n−1)-simplex in I n . Then there exist at most two (n+ 1) × n unreduced upper Hessenberg matrices whose columns together with the origin form an acute n-simplex in I n+1 , that have H as top left n × (n−1) part.
Proof. Let H be an n × (n−1) unreduced upper Hessenberg 0/1-matrix, whose columns together with the origin form an acute (n−1)-simplex. Then due to Theorem 6.5, there exists at most two vertices g, h ∈ B n with g + h = e such that the n × n matrices [H|g] and [H|h] represent acute n-simplices in I n . As a result, only H g 0 1 and H h 0 1 (80) may be (n+1) × n unreduced upper Hessenberg matrices whose columns together with the origin form acute n-simplices in I n+1 .
Corollary 6.7 There exist at most 2 n−2 unreduced upper Hessenberg matrices of size n × (n−1) whose columns together with the origin are the vertices of an acute (n−1)-simplex.
Proof. One can easily verify that in I 3 , the matrices are the only two 3 × 2 upper Hessenberg matrices whose columns together with the origin are acute triangles in I 3 , the statement is now proved by induction based on Lemma 6.6.
Since H 2 is obtained from H 1 by swapping its first two rows, we see that any unreduced upper Hessenberg matrix that is a minimal matrix representation, has H 1 as its top 3 × 2 block.
In case they do, these two matrices obviously represent the same 0/1-simplex, and thus at most one of them can be a minimal matrix representation.
Proof. Suppose that both (n+1) × n matrices in (80) indeed represent acute n-simplices in I n+1 . Suppose moreover that adding v ∈ B n+1 as a (n+1)-st column results in a matrix representing an acute (n+1)-simplex. Then due to Theorem 6.5, the top n entries of v should consist of g or h. For the left matrix in (80) this leads to four options, H g g 0 1 0 , H g g 0 1 1 , H g h 0 1 0 and H g h 0 1 1 .
We claim that only the rightmost matrix in (82) may represent an acute (n + 1)-simplex. Indeed, the difference between the last two columns of the first matrix is orthogonal to the last. Thus, it has a right triangular facet, and thus due to Proposition 5.3 it cannot represent an acute simplex. The second matrix is obviously singular. The last two columns of the third matrix are orthogonal because g + h = e and thus this simplex too has a right triangular facet. Thus, the fourth matrix remains. For the right matrix in (80) a similar analysis can be made. Finally, note that the matrices in (81) differ only by swapping the last columns.
To be able to fully explain the tree in Figure 15, we will need to go one step further, and even describe which (n+2) × (n+2) unreduced upper Hessenberg matrices with n × (n−1) part equal to H have the potential to be a minimal matrix representation of an acute (n+2)-simplex. Proof. We follow the lines of the proofs of Lemma 6.6 and Corollary 6.8 but then with H consecutively replaced by each of the two matrices in (80). Consider first the left matrix in (80). It gives rise to the following four candidates, Corollary 6.9 explicitly proves that an unreduced upper Hessenberg matrix H λ of size (n+ 1)×(n+1) that represents an acute simplex, can have at most two unreduced upper Hessenberg descendants of size (n + 2) × (n + 2) that represent an acute simplex, and who share their n × (n − 1) top left parts. This is depicted in Figure 18. This also proves that for each unreduced upper Hessenberg matrix that represents an acute 0/1-simplex, there exists a matrix H λ in the tree in Figure 15 with which it is 0/1-equivalent.
We will now proceed to prove that each of the 2 n−4 unreduced upper Hessenberg matrices in the tree indeed represents an acute simplex. For this, we will use the concept of strictly ultrametric matrix, as defined in Section 1.1. Theorem 6.10 Let H λ be the unreduced upper Hessenberg matrix corresponding to the integer decomposition λ = λ 1 , . . . , λ k of n − 1. Then G λ = H ⊤ λ H λ is strictly ultrametric.
Proof. We use the splitting rule proved in Corollaries 6.8 and 6.9 and depicted in Figure 18 as starting point for an inductive proof. Consider the n + 1 columns of the parent matrix in Figure 18, and write them as By definition of strict ultrametricity, there is no triple u, v, w of distinct columns taken from (85) such that one of the three numbers u ⊤ v, v ⊤ w, w ⊤ u is smaller than the other two. We will prove this property also for the n + 2 columns of the left descendant in Figure 18, which are  statement in Theorem 1.2 that det(H λ ) equals the numerator f k of the continued fraction [λ 1 ; λ 2 , . . . , λ k ] = λ 1 + 1 we use the well-known result from continued fraction theory that f k can be computed from the two-term recursion f j = λ j f j−1 + f j−2 , with f 0 = 1 and f −1 = 0.
We inductively assume that the statement holds for both the parent and the grandparent of a vertex in the tree, and prove the statement for the descendants, as depicted in Figure 19.
From thes two relations we can solve f k−1 and f k−2 as f k−1 = p and f k−2 = (1 − λ k )p + q.
Since both are consistent, this finishes the induction step. As the induction basis for the first two levels of the tree in Figure 15 is easily verified, this completes the induction proof.

Computational results
In this final section of this paper we present a selection of the computational data obtained by implementations of the algorithms presented. For simplicity, we chose Matlab as programming environment, as Matlab contains useful built-in functionalities in the area of linear algebra. Faster imlementations can of course be obtained using a lower level programming language.
7.1 The cycle index Z n of B n for the values n ∈ {3, . . . , 9} In Algorithm 1 in Section 2, we described how to compute the cycle index Z n for the induced permutations of B n by the hyperoctahedral group B n . The implementation of this algorithm yields each cycle index Z n as a table, see Figure 10, 11, 12. These tables are a condensed form Table 4, in the sense that zero columns have been removed, and zero entries disregarded, see Table 10, 11, 12.
To generate partitions needed in Algorithm 1, we used Algorithm P in [26]. We also used the most efficient way to determine the cycle type of a given permutation, which is O(p) for a permutation of p objects. If n ≥ 10 then all cycle type computations take more than ninety percent of the total computational time in computing Z n , and this percentage increases for increasing n. Thus, no additional improvements of the algorithm can be expected.

The number of 0/1-polytopes with k vertices
Using Algorithm 2 from Section 3, we computed the number of 0/1-polytopes with k vertices for 0 ≤ k ≤ 2 n , for the values n ≤ 5. They are displayed in Table 13. For n = 5, only half of the results are displayed, as the results for k = ℓ and k = 2 n − ℓ are the same.
In Table 14, we zoom in on the 0/1-simplices in I n with k ≤ n + 1 vertices. In Table 15 we present the number of ways to choose k points from B n . Comparing these numbers with the corresponding numbers in Table 14 shows the large gain of working modulo the action of B n .
Remark 7.1 Note that for k ≥ 4 these numbers include degenerate k-simplices, which lie in a hyperplane of dimension less than k. For k ∈ {2, 3} such degenerate cases do not exist: three distinct point in I n are never colinear.
Finally, in Table 16 we compare the number a(n) of acute 0/1-simplices in I n with their total number s(n), both modulo the action of B n .