New bounds on the size of nearly perfect matchings in almost regular hypergraphs

Let H$H$ be a k$k$ ‐uniform D$D$ ‐regular simple hypergraph on N$N$ vertices. Based on an analysis of the Rödl nibble, in 1997, Alon, Kim and Spencer proved that if k⩾3$k \geqslant 3$ , then H$H$ contains a matching covering all but at most ND−1/(k−1)+o(1)$ND^{-1/(k-1)+o(1)}$ vertices, and asked whether this bound is tight. In this paper we improve their bound by showing that for all k>3$k > 3$ , H$H$ contains a matching covering all but at most ND−1/(k−1)−η$ND^{-1/(k-1)-\eta }$ vertices for some η=Θ(k−3)>0$\eta = \Theta (k^{-3}) > 0$ , when N$N$ and D$D$ are sufficiently large. Our approach consists of showing that the Rödl nibble process not only constructs a large matching but it also produces many well‐distributed ‘augmenting stars’ which can then be used to significantly improve the matching constructed by the Rödl nibble process. Based on this, we also improve the results of Kostochka and Rödl from 1998 and Vu from 2000 on the size of matchings in almost regular hypergraphs with small codegree. As a consequence, we improve the best known bounds on the size of large matchings in combinatorial designs with general parameters. Finally, we improve the bounds of Molloy and Reed from 2000 on the chromatic index of hypergraphs with small codegree (which can be applied to improve the best known bounds on the chromatic index of Steiner triple systems and more general designs).

1. Introduction 1.1. Background. The problem of finding nearly perfect matchings in regular hypergraphs has a long history in discrete mathematics and such results have applications to other areas e.g., [8]. One such application is Rödl's resolution of a famous conjecture of Erdős and Hanani [7] on the existence of partial Steiner systems. Here a partial Steiner system with parameters (t, k, n) is a kuniform hypergraph on n vertices such that every set of t vertices is contained in at most one edge. It is easy to see that any such system has at most n t / k t edges. Erdős and Hanani [7] conjectured that for every fixed t < k and for every sufficiently large n, there exists a partial Steiner system with parameters (t, k, n) having (1 − o(1)) n t / k t edges. Rödl [29] confirmed this conjecture by introducing a by now celebrated technique called the 'Rödl nibble' which is a versatile approach for finding large matchings in a semi-random manner. In fact, in his paper [29] Rödl used this technique to prove the existence of a nearly perfect matching in a specific hypergraph. Frankl and Rödl [9] extended this result to matchings in D-regular n-vertex hypergraphs with codegree at most D/(log n) 4  However, his proof does not supply an explicit estimate for the error term o(N ). Sharpening this error term, which is useful for many applications, is a challenging problem which attracted the attention of several researchers [12,13,1,22,21,20]. Far reaching generalizations and further extensions were given e.g., in [8,27,15,11,17,16,31,30,6]. In 1997, Alon, Kim and Spencer [1] proved the following theorem, which improved all previous bounds for simple hypergraphs. Here a hypergraph is called simple (or linear ) if its codegree is at most 1. Theorem 1.1 (Alon, Kim and Spencer [1]). Let H be a simple k-uniform D-regular hypergraph on N vertices. If k > 3, there is a matching in H covering all but at most O(N D − 1 k−1 ) vertices. If k = 3, there is a matching in H covering all but at most O(N D −1/2 ln 3/2 D) vertices.
Kostochka and Rödl [20] extended Theorem 1.1 to hypergraphs with small codegrees. Their proof consists a reduction to the case when H is simple, i.e., to Theorem 1.1. [20]). Let k ≥ 3 and let 0 < δ, γ < 1. Then there exists D 0 such that the following holds for D ≥ D 0 .

Theorem 1.2 (Kostochka and Rödl
Let H be a k-uniform D-regular hypergraph on N vertices with codegree at most C < D 1−γ . Then there is a matching in H covering all but at most O N ( D C ) − 1−δ k−1 vertices.
Vu [33] improved the above result by removing δ and the assumption C ≤ D 1−γ at the cost of a logarithmic term in the bound on the number of uncovered vertices. Theorem 1.3 (Vu [33]). Let k ≥ 3. Then there exist D 0 and a constant c > 0 such that the following holds for D ≥ D 0 .
Let H be a k-uniform D-regular hypergraph on N vertices with codegree at most C. Then there is a matching in H covering all but at most O(N ( D C ) − 1 k−1 log c D) vertices.
Vu [33] also proved a general result using additional information about 'higher codegrees'. In particular, he defined the j-codegree as the maximum number of edges containing a set of j vertices, and proved a general upper bound on the number of uncovered vertices as a function of the j-codegrees.
1.2. New results. Alon, Kim, and Spencer [1] asked whether Theorem 1.1 is tight. Making progress on this twenty three year old question, we improve Theorem 1.1 for all k > 3, when N and D are sufficiently large. Our proof involves a method that goes beyond the classical Rödl nibble technique.
Let H be a k-uniform D-regular hypergraph on N vertices with codegree at most C ≤ D 1−γ . Then H contains a matching covering all but at most N ( D C ) − 1 k−1 −η vertices. In particular, if H is simple the number of uncovered vertices is at most N D − 1 k−1 −η .
Theorem 1.4 (as well as Theorems 1.1-1.3) also hold for hypergraphs which are close to being regular (rather than regular). We provide the precise statement in Theorem 7.1. Moreover, Theorem 7.1 also guarantees the following 'quasirandomness' property of the matching M returned by Theorem 7.1: Suppose we are given a reasonably small set V of subsets of V (H). Then for every S ∈ V, the proportion of vertices of S not covered by M is small. Such a result was first derived by Alon and Yuster [2]. We provide better bounds than in [2] under slightly stronger assumptions. (This quasirandomness property will be important when we deduce Corollary 1.6 from Theorem 7.1.) 1.3. Corollaries. In this subsection we present several applications of our results. In particular, we give new bounds on the chromatic index of hypergraphs with small codegree, and improve well-known results on the size of matchings and the chromatic index of combinatorial designs.
1.3.1. Matchings in Steiner systems. A well-known example of a regular hypergraph with small codegrees is a (full) Steiner system S(t, k, n), which is a k-uniform hypergraph S on n vertices such that every set of t vertices belongs to exactly one edge of S. Solving a problem going back to the nineteenth century, Keevash [18] proved the existence of (full) Steiner systems via randomised algebraic constructions. A combinatorial proof was given in [10]. Since S(t, k, n) is n−1 t−1 / k−1 t−1regular and has codegree n−2 t−2 / k−2 t−2 , we can apply Theorem 1.4 to show the existence of large matchings in (full) Steiner systems as follows.
Corollary 1.5. Let k > t > 1 and let 0 < η < k−3 (k−1)(k 3 −2k 2 −k+4) . Then there exists n 0 = n 0 (k, t, η) such that every (full) Steiner system S(t, k, n) with n ≥ n 0 has a matching covering all but at most n k−2 k−1 −η vertices. Corollary 1.5 improves the best known estimates for S(2, k, n) with k > 3 given in [1]. Better bounds are known for S(2, 3, n), which is usually referred to as a Steiner triple system of order n. The problem of the existence of large matchings in Steiner triple systems has a long history. About forty years ago, Brouwer [4] conjectured that every Steiner triple system of order n contains a matching of size (n − 4)/3. Very recently, Keevash, Pokrovskiy, Sudakov and Yepremyan [19] showed that any Steiner triple system of order n has a matching covering all but at most O(log n/ log log n) vertices. This improved a sequence of previous bounds in [34,23,4,1]. Their method utilises the Rödl nibble as well as robust expansion properties of edge-coloured pseudorandom graphs to find augmenting edge-coloured paths. It even applies in a more general setting: they show that 3-uniform n-vertex hypergraphs satisfying certain pseudorandomness properties have a matching covering all but at most O(log n/ log log n) vertices.

1.3.2.
Chromatic index of hypergraphs with small codegree. The chromatic index χ ′ (H) of a hypergraph H is the minimum number of colours needed to colour its edges so that no two edges which intersect receive the same colour. A classical theorem of Vizing states that every graph with maximum degree at most D has chromatic index at most D + 1. The corresponding problem for k-uniform hypergraphs with k ≥ 3 is still open.
In 1989, Pippenger and Spencer [27] proved that every k-uniform hypergraph with maximum degree at most D and codegree o(D) has the chromatic index D + o(D). Sharpening this o(D)term, and improving a result of Kahn [17], the best known asymptotic bound on the chromatic index of a k-uniform hypergraph was shown by Molloy and Reed [26], who proved that every k-uniform hypergraph with maximum degree at most D and codegree at most C has chromatic index at most D + O(D(D/C) −1/k (log D/C) 4 ). We improve this result as follows. Corollary 1.6. Let k ≥ 3, and let D, N, C > 0, 0 < γ, µ < 1 and 0 < η < k−2 k(k 3 +k 2 −2k+2) . Then there exists N 0 = N 0 (k, γ, η, µ) such that the following holds for all N ≥ N 0 and D ≥ exp(log µ N ).
Let H be a k-uniform multi-hypergraph on N vertices with maximum degree at most D and codegree at most C ≤ D 1−γ . Then the chromatic index of H is at most The above results have applications to the chromatic index of Steiner triple systems (and designs with more general parameters). Indeed, since any colour class of an edge-colouring of a Steiner triple system H on n vertices contains at most ⌊n/3⌋ edges, There are several constructions of Steiner triple systems on n vertices having their chromatic index between g(n) and g(n)+2 [5,24,28,32]; it was conjectured by Meszka, Nedela and Rosa [25] that every Steiner triple system H on n > 7 vertices satisfies χ ′ (H) ≤ g(n) + 2.
On the other hand, the (vertex) degree of a Steiner triple system H on n vertices is (n − 1)/2. Thus an application of the Pippenger-Spencer theorem [27] discussed above implies that χ ′ (H) ≤ n/2 + o(n). This result resolved a longstanding open problem and is asymptotically best possible by (1.1). The result of Molloy and Reed in [26] implies that the error term o(n) can be improved to O(n 2/3 log 4 n) and Corollary 1.6 implies that χ ′ (H) ≤ n/2 + O(n 2/3−η ). More generally, one can apply our results to designs with arbitrary parameters to obtain similar results and improvements.

1.3.3.
Designs over finite fields. Finally, let us mention one more application of our results. While the existence of designs over finite fields (also called q-analogs of designs) is still open, it is well known [3,9] that the existence of asymptotically optimal partial designs over finite fields can be deduced from results on almost perfect matchings in regular hypergraphs with small codegree. Our Theorem 1.4 immediately implies an improvement on the existing best known bounds, which are based on Vu's theorem (Theorem 1.3).
1.4. Organisation of the paper. In Section 2 we introduce our basic terminology. In Section 3 we begin with stating the Martingale inequality that we use throughout the paper to prove several concentration inequalities. Another tool is Lemma 3.5 which allows us to find simple subhypergraphs in hypergraphs with small codegree. In Section 4 we introduce our method and give an overview of the proof of our main result (Theorem 1.4). In Section 5, we analyze the classical Rödl nibble (on an input hypergraph which is simple) to prove Theorem 5.1. Theorem 5.1 shows that in addition to constructing a large matching, the Rödl nibble process actually produces more complex structures (which we call 'augmenting stars'). In Section 6, we then use these augmenting stars to significantly increase the size of the matching produced by the Rödl nibble. This implies Theorem 1.4 in the case where H is simple. In Section 7, we use Lemma 3.5 to extend this result from simple hypergraphs to hypergraphs whose codegree is small. Finally, in Section 8, we deduce Corollary 1.6 from Theorem 7.1.

Notation
. Given a set S and an integer i ≥ 0, let S i be the collection of all subsets of S of size i. A k-set is a set of size k. Given a graph G, the maximum degree of a vertex in G is denoted by ∆(G).
A hypergraph H is a pair (V (H), E(H)) where V (H) is the vertex set and the edge set E(H) is a set of subsets of V (H). For convenience sometimes we write H instead of E(H). A multihypergraph H is a hypergraph which is permitted to have multiple edges. We say H is k-uniform if every edge of H contains precisely k vertices. The degree of a vertex x in H is the number of edges containing x and is denoted by d H (x). A (multi-)hypergraph is regular if all of its vertices have the same degree, and it is D-regular if the degree of each of its vertices is D. Given a set of vertices U ⊆ V (H), we write H[U ] for the sub-hypergraph of H induced by U . A matching in H is a collection of pairwise disjoint edges. For We usually denote the number of vertices in a hypergraph by N . We say that an event holds with high probability (whp) if the probability that it holds tends to 1 as N → ∞.
Given functions f and g, we write f = O(g) if |f | ≤ C|g| for some constant C (which usually depends on the uniformity k). We write f = Ω(g) if f ≥ c|g| for some constant c > 0 (which again usually depends on k). We write We use the asymptotic '≪' notation to state our results. The constants in the hierarchies used to state our results have to be chosen from right to left. More precisely, if we claim that a result holds whenever 1/N ≪ a ≪ b ≪ c ≤ 1, then this means that there are non-decreasing functions f : (0, 1] → (0, 1], g : (0, 1] → (0, 1] and h : (0, 1] → (0, 1] such that the result holds for all 0 < a, b, c ≤ 1 and all N with b ≤ f (c), a ≤ g(b) and 1/N ≤ h(a). We will not calculate these functions explicitly. Hierarchies with more constants are defined in a similar way.

Preliminaries
3.1. Probabilistic tools. In this subsection we collect the large deviation inequalities we need throughout our proof. We will use a martingale inequality due to Alon, Kim and Spencer [1]. For this, we assume our probability space is generated by a finite set of mutually independent Yes or No choices, indexed by i ∈ I. Let Y be a random variable defined on this space. Let p i denote the probability that choice i is Yes. Let c i be such that changing the choice i (but keeping all other choices the same) can change Y by at most c i . We call p i (1 − p i )c 2 i the variance of choice i. Let T be an upper bound on all c i .
Suppose Paul finds the value of Y by asking queries of an always truthful oracle Carole. The queries always ask whether a choice i ∈ I is Yes or No. Paul's choice of the next query can depend on Carole's previous responses. Thus, a strategy for Paul can be represented in the form of a decision tree. A line of questioning is a path from the root to a leaf of this tree -a sequence of questions and responses that determine Y . The total variance of a line of questioning is the sum of variances of the queries in it.
Lemma 3.1 (Martingale inequality [1]). There exists δ > 0 such that if Paul has a strategy for finding Y such that every line of questioning has total variance at most σ 2 , then We will also use the following. Lemma 3.2 (Chernoff-Hoeffding inequality [14]). Suppose X 1 , . . . , X t are independent random variables taking values 0 or 1. Let X := i∈[t] X i . Then 3.2. Useful estimates. We will often use the following estimates in the calculations. Proposition 3.3. Let a, b > 0 with b = 1. Let x 0 , . . . , x n , y 0 , . . . , y n > 0 be such that The following proposition is straightforward to prove using Taylor's theorem.

3.3.
Finding simple subhypergraphs of hypergraphs with small codegrees. The next result allows us to find an almost regular simple subhypergraph in an almost regular hypergraph with small codegree. It is a slight generalization of the results of Kostochka and Rödl [20].
Lemma 3.5. Let k ≥ 3 be an integer, and let α, β, D > 0, 0 < γ, δ < 1 be real numbers satisfying Let H be a k-uniform multi-hypergraph such that αD ≤ d H (v) ≤ βD for any v ∈ V (H) and the codegree of H is at most C, where log D ≤ C ≤ D 1−γ .
Then there exists E simp ⊆ E such that the hypergraph H simp := (V (H), E simp ) satisfies the following conditions.
(i) H simp is simple. (In particular, H simp does not have multiple edges.) (ii) There exists an even integer s ∈ 1 + 2 k 2 δ −1 , 3 + 2 k 2 δ −1 such that for every v ∈ V (H) we have The proof of Lemma 3.5 consists of several probabilistic edge-colouring arguments and is very similar to the proof of Theorem 4 in [20] (but omitting the final step of the proof of Theorem 4, which consists of an application of Theorem 3 in [20]). Therefore, we omit the proof of Lemma 3.5 here, full details are given in Appendix A.

An outline of our method
In this section we will introduce our method by sketching the proof of Theorem 1.4 in the case when H is simple. For the proof to work, slightly more generally, we will assume H is (D ± KD ε )regular, rather than D-regular (see Theorem 6.1 for the precise statement in the case when H is simple, and which also guarantees a 'quasirandomness property'). Using an argument based on random edge-colourings (Lemma 3.5) it is then not difficult to extend the result to the case when H has small codegree.
Let us start by outlining the Nibble process considered in [1]. Suppose H is a k-uniform simple hypergraph on N vertices. The ith stage of Nibble process. Suppose we are given a hypergraph Select every edge of H i−1 with probability 1/D i−1 , and let B i be the set of selected edges. Independently, we also carefully select a random subset W i ⊆ U i−1 . The ith stage of the Nibble process is determined by a choice of B i and W i . Given B i , W i , we set M i := {e ∈ B i : e ∩ e ′ = ∅ for all e ′ ∈ B i with e ′ = e}.
(Note that a vertex w ∈ W i may also lie in some edge e ∈ M i .) The edges of M i are clearly pairwise disjoint. Now set We iterate the above process for 1 ≤ i ≤ ω until we get H ω with vertex-set U ω , where ω is chosen such that Augmenting stars. Our key new idea is to show that there are still many augmenting structures at the end of the Nibble process that can be used to improve M and produce a larger matching.     Hence, our goal is to find a large matching in H A . To this end, we want to show that H A is almost regular and has small codegree so that we may apply a variant of Theorem 1.2. More precisely, we prove the following crucial properties of H A (in (M3) of Theorem 5.1).
(a) Every vertex in L has degree ( Looking at properties (a) and (b) one immediately notices that H A is not almost regular; the degrees of vertices in L are smaller than the degrees of vertices in R. However, crucially, properties (a) and (b) show that the degrees of vertices in L are close to one another, and the degrees of vertices in R are close to one another. To overcome the problem of almost regularity, we boost the degrees of vertices in L as follows. We take D R /D L vertex-disjoint copies of R, say

this boosting does not increase the codegree, so H ′
A also has small codegree, as desired. Thus applying Lemma 3.5 we find a simple almost regular subhypergraph of H ′ A , to which we apply Theorem 5.1 to find a large matching in H ′ A , which then provides the required large matching M A in H A . A large part of this paper is devoted to proving properties (a), (b) and (c). This is done in Lemma 5.7 (Nibble lemma) by carefully tracking random variables that count certain configurations (defined in Section 5.2) throughout the Nibble process and proving concentration inequalities for them using a martingale inequality. This lemma is at the heart of our proof.
Extensions and limitations of the method. It is worth noting that the bound in Theorem 1.4 can be further improved by iterating our method as follows.
To augment the matching M of H, our strategy was to find a large matching M A in the multi-hypergraph H A of augmenting stars of H by applying Theorem 5.1 (to H ′ A ). However, Theorem 5.1 not only provides the matching M A , but it also ensures the property (M3). Thus, one can consider the multi-hypergraph H AA of augmenting stars of H A and use (M3) to guarantee the properties analogous to (a), (b) and (c) for H AA . This allows us to similarly improve M A to obtain M * A . One can then use M * A instead of M A for improving M to obtain an even larger matching in H.
Note that one can iterate the above procedure by considering the multi-hypergraph of augmenting stars of H AA again and so on, to improve the size of the matching even further. However, the uniformities of these hypergraphs grow very quickly, so we do not expect a significant improvement. Hence, for the sake of presentation, we will not optimise our bound in Theorem 1.4.
Also note that the reason why Theorem 1.4 does not apply when k = 3 is that the size of the set W of waste vertices that we need to remove to keep the degree error low during the Nibble process will be too large in this case.

Finding matchings with augmenting stars in almost regular simple hypergraphs
In this section, we prove the following theorem.
Then there exists a matching M of H, and a set W ⊆ V (H) of waste vertices satisfying the following.
The constants in (M3) implicit in O(·), Θ(·) do not depend on e or x. More generally, throughout this section, the constants implicit in O(·), Θ(·) and o(·) depend only on the parameters k, K, γ, ε. For convenience we mostly do not indicate these dependencies.
Note that the properties (M1) and (M2) bound the number of leftover vertices and waste vertices in S ∈ V. The crucial property is (M3). Much of this section is devoted to proving it. In the following subsections we develop the required tools and using them we finish the proof of Theorem 5.1 in Section 5.4. 5.1. The Nibble process. Throughout the remainder of Section 5, let k > 3, ∆ 0 , D 0 , N be integers, and γ, ε ∈ (0, 1), K > 0 be real numbers satisfying (5.1), and suppose H is a k-uniform (D 0 ± ∆ 0 )-regular simple hypergraph on N vertices. For convenience, define p * −1 := 0. Let 1 ≤ i ≤ ω. Suppose we are given the hypergraph Let M i be the set of isolated edges in B i . For any vertex v ∈ U i−1 , let and being mutually independent (and also independent of the choice of edges in B i ) such that and By (5.5), for any vertex v ∈ U i−1 , The following proposition estimates the probability that an edge or a vertex is in the matching M i .
Then there are constants C 0 = C 0 (k) and C 1 = C 1 (k) independent of the index i satisfying the following.
(i) For any F ∈ E(H i−1 ), (iii) We have Proof. First observe that Proposition 3.4 implies that for some constant C 1 = C 1 (k) independent of the index i, proving (ii) and (iii) as desired.

5.2.
Introducing the key random variables. Below we define the key random variables that we track throughout the Nibble process. (Y1) i x ∈ e 1 , y ∈ e 2 and e 1 ∩ e 2 = ∅.
We call such an ordered triple (e 1 , e 2 , e 3 ) ∈ E(H) 3 an instance of Y i (x, y), and e 3 the central edge of the ordered triple (e 1 , e 2 , e 3 ).
For any given pair of distinct vertices x, y ∈ V (H), we can estimate Y 0 (x, y) as follows. There there is at most one edge containing both z j and y since H is simple. Hence there are at most k − 1 choices of e 2 . In total, y) be the number of ordered triples (e 1 , e 2 , e 3 ) ∈ E(H) 3 of edges satisfying the following conditions: We call such an ordered triple (e 1 , e 2 , e 3 ) ∈ E(H) 3 an instance of X i (x, y), and e 3 the central edge of the ordered triple (e 1 , e 2 , e 3 ).

5.3.
The Nibble lemma and its analysis. Before stating the Nibble lemma, we define the following parameters recursively for all 0 ≤ j ≤ i ≤ ω.
If j = i, then q j,i := 1. If j < i, then q j,i : Recursively applying the above definition shows that It is worth noting that (4.1) implies that for any 0 ≤ i < ω, The following lemma is the heart of our proof.
There exist constants C 5 , C 7 , C 8 , C 9 depending on k (but not on the index i or the vertices x, y) The rest of this subsection is devoted to proving Lemma 5.7 (Nibble lemma). Choose constants C 5 , C 7 , C 8 , C 9 , C 10 such that (5.14) C 10 := 2e −k and 1 Hereafter we fix the index 1 ≤ i ≤ ω and assume that (L1) j -(L5) j hold for all 0 ≤ j ≤ i − 1.

5.3.1.
Estimating the basic parameters of the Nibble process. In the following proposition we estimate the parameters D j , ∆ j and q t,j defined in (5.9)-(5.11).
There exist constants C * , C 2 , C 3 , c 4 and C 4 depending on k (but not on the index j) such that the statements (A0) j -(A3) j hold for all 1 ≤ j ≤ i.
Proof. Choose constants C ′ , C * , C 2 , C 3 , c 4 and C 4 such that Note that by (5.12) and Proposition 5.
By (A2) s and (A3) s for 1 ≤ s ≤ j − 1, we have , using Proposition 5.2(iii) and Proposition 3.3, for any 1 ≤ t ≤ j, we have so the first part of (A1) j follows. Moreover, by (A3) j−1 we have Thus the first part of (A2) j holds. The second part follows by using (5.17). It remains to prove (A3) j . Note that This completes the proof of the first part of (A3) j . Now combining this with the fact that ∆ 0 ≤ KD ε 0 , we have by (A0) j and (A2) j , proving (A3) j and completing the proof of the proposition.
Thus for every S ∈ V, we have Proof. By Proposition 5.2, we have In the next subsection we will present two results that play a key role in the proof of the Nibble lemma.

5.3.2.
Almost independence of events. The following proposition is a generalisation of [1, Claim 1]. It is heavily used in the proof of the Nibble lemma to show that certain events of whether a given set of vertices are in U i , V (M i ) are 'nearly' independent. The key difference between Claim 1 of [1] and the lemma below is that here we remove the assumption that the vertices are contained in a hyperedge, which is essential for our applications. Recall that C 9 = C 9 (k) was chosen in (5.14).
Proposition 5.10 (Almost independence). Let 0 ≤ n 1 , n 2 ≤ 3k be integers, and let x 1 , . . . , x n 1 , y 1 , . . . , y n 2 ∈ U i−1 be distinct vertices. Then The proof of Proposition 5.10 is similar to the proof of Claim 1 in [1]. Thus, we omit it here. Full details are given in Appendix B.
Recall that for the ith stage of the Nibble process, our probability space is generated from mutually independent events of the form F ∈ B i and w ∈ W i . To prove concentration for various random variables in our analysis of the Nibble lemma, we will use Lemma 3.1 (Martingale inequality) where 'Paul' determines a random variable by asking whether each choice of the form F ∈ B i or w ∈ W i is Yes or No. The following observation (which follows from (L1) i−1 ) bounds the number of such queries Paul needs in order to determine whether a vertex of H i−1 is in U i . Proposition 5.11. Let y ∈ U i−1 = V (H i−1 ). Then Paul needs at most O(D i−1 ) queries of whether an edge is in B i to determine whether y is in V (M i ) and one query to determine whether y is in W i .
Hence, to determine whether y is in U i , Paul needs at most O(D i−1 ) queries of whether an edge is in B i , and one query of whether a vertex is in W i .

Proof of Lemma 5.7 (Nibble lemma).
Step 1. Proving that (L1) i holds with high probability. Note that D i (x) is the number of instances e of D i−1 (x) such that e \ {x} ⊆ U i . Hence by (5.6) and Proposition 5.10, Note that in the last equality we used ∆ i−1 = o(D i−1 ) (which holds by Proposition 5.8).
We will prove the claim by applying the Martingale inequality (Lemma 3.1). Indeed, to determine the random variable By the union bound, with probability at Step 2. Proving that (L2) i holds with high probability. Proof. Let us fix an S ∈ V. By (5.6), we have For any 1 ≤ j ≤ i − 1, we assumed (L2) j holds, so we have Combining this with (5.24) and our assumption that |S| ≥ √ D 0 log N , we obtain that Hence by Proposition 5.9 and Lemma 3.2 (Chernoff-Hoeffding inequality), with probability at least 1 − e −Ω(log 2 N ) .
Since |V| ≤ exp(log 3/2 N ) by the assumption of Theorem 5.1, we can take the union bound over all S ∈ V to deduce that (a) of (L2) i holds. Now note that Now we will use the Martingale inequality (Lemma 3.1) to prove a concentration inequality for the random variable |S ∩ U i |. By Proposition 5.11, |S ∩ U i | is determined by at most O(|S ∩ U i−1 |D i−1 ) queries of whether an edge X ∈ B i and at most |S ∩ U i−1 | queries of whether a vertex w ∈ W i . The first one is yes with probability 1/D i−1 and the second one is yes with probability at most O(∆ i−1 /D i−1 ) (by Proposition 5.9). Moreover, changing whether X ∈ B i changes |S ∩ U i | by at most O(k 2 ) = O k (1), as there are at most k pairwise disjoint edges in H i−1 that intersect X and changing whether w ∈ W i , of course, only changes |S ∩ U i | by at most one. Thus we can apply Lemma 3.1 with σ = Θ(|S ∩ U i−1 | 1/2 ) and λ = Θ(|S ∩ U i−1 | 1/4 ) (with an appropriately chosen multiplicative constant factor), to obtain that with probability at least Hence by (5.24) and Proposition 5.2(iii), with probability at least 1 − e −Ω(log 2 N ) , we have Hence by taking the union bound over all S ∈ V, we deduce that (b) and (c) of (L2) i hold as well. ♦ Proof. We will use the Martingale inequality (Lemma 3.1) to prove the claim.
To determine the random variable Z i (x), Paul must determine  (5.13)) and λ = Θ(log N ) with an appropriately chosen multiplicative constant, to obtain that with probability at least 1 − e −Ω(log 2 N )) , Together with Proposition 5.

28)
Combining this with (5.32), and using that Z i (x) = A 1 This proves (a). For convenience let us redefine B 1 := A 1 1 and B 2 : It remains to prove (b)-(d) by estimating B 1 and B 2 . First let us prove (b) by showing that Since this is trivial when i = 0, we may assume that i ≥ 1.
For 0 ≤ j ≤ i − 1, by (c) of (L3) j , we have Therefore, the summand of B 2 is the sum of the following terms (which are estimated below using (5.35) and Proposition 5.8).
Hence B 2 is the sum of the following terms: Hence, proving (b). To prove (c) note that by Proposition 5.8, Then it follows from (5.37) and (5.36) that B 1 is asymptotically larger than B 2 . Indeed the ratio of the third term on the right hand side of (5.36) and (1−ε) N ) by (5.13) and the sentence after it. The ratio of the first term on the right hand side of (5.36) and B 1 is estimated similarly. This completes the proof of (c) and also implies (d). Hence this finishes the proof of the claim. ♦ Step 4. Proving (L4) i holds with high probability. For any distinct x, y ∈ U i−1 , note that Y i (x, y) is the number of instances (e 1 , e 2 , e 3 ) of Y i−1 (x, y) that satisfy (e 1 ∪ e 2 ∪ e 3 ) \ {x, y} ⊆ U i (namely (Y 3 ) i ). Hence by (5.6), and Proposition 5.10, we have the following recurrence relation.
Claim 5. With probability at least 1−e −Ω(log 2 N ) , the following holds. For any distinct x, y ∈ U i−1 , Proof. We will use the Martingale inequality (Lemma 3.1) to prove the claim. Let x, y ∈ U i−1 be distinct vertices. Recall that Y i (x, y) is the number of instances (e 1 , e 2 , e 3 ) of Y i−1 (x, y) such that (e 1 ∪ e 2 ∪ e 3 ) \ {x, y} ⊆ U i . We call all the instances of Y i−1 (x, y) candidates.  1 (x, y)) queries of whether a vertex is in W i in order to determine Y i (x, y).

Subclaim 2.
If we change the response to a single query (keeping all others the same), then Y i (x, y) changes by at most O(D i−1 ). Using (L1) i−1 and the fact that H i−1 is simple, it is easy to show the following.

( * )
For any given vertex v ∈ U i−1 \ {x, y}, the number of candidates (e 1 , e 2 , e 3 ) such that v ∈ e 1 ∪ e 2 ∪ e 3 \ {x, y} is O(D i−1 ). Now we prove the subclaim using ( * ). First consider queries asking if a vertex is in W i . Changing whether a given vertex v is in W i affects at most O(D i−1 ) candidates by ( * ). Thus in this case Y i (x, y) changes by at most O(D i−1 ). Now consider queries asking whether if an edge, say e ′ , is in B i . There are at most k pairwise disjoint edges that intersect with e ′ , so changing whether e ′ is in B i changes V (M i ) by at most k 2 vertices, and each of those vertices affects at most O(D i−1 ) candidates by ( * ). Thus, Y i (x, y) changes by at most O(D i−1 ) in this case as well, proving Subclaim 2.
By (5.6) and Proposition 5.10, the expected value of the former number is 1 , y), and by Proposition 5.2 the expected value of the latter number is at most (1± (5.14). Hence we have the following recurrence relation.
Claim 7. With probability at least 1−e −Ω(log 2 N ) , the following holds. For any distinct x, y ∈ U i−1 , Proof. We will use the Martingale inequality (Lemma 3.1) to prove the claim. Let x, y ∈ U i−1 be distinct vertices. Note that X i (x, y) is the number of instances (e 1 , e 2 , e 3 ) of X i−1 (x, y) and Y i−1 (x, y) such that both the events (T1) e 3 ∈ j≤i E(M j ) and (T2) (e 1 ∪ e 2 ) \ (e 3 ∪ {x, y}) ⊆ U i hold. We call all the instances of X i−1 (x, y) and Y i−1 (x, y) candidates. 1 (x, y)) queries of whether a vertex is in W i in order to determine X i (x, y).
Subclaim 1 follows easily from (L1) i−1 and Proposition 5.11. Subclaim 2. If we change the response to a single query (keeping all others the same), then X i (x, y) changes by at most O k (1).
First let us consider queries asking if a vertex is in W i . Changing whether a given vertex v is in W i does not affect whether (T1) events hold for the candidates. Moreover, there are at most O k (1) candidates (e 1 , e 2 , e 3 ) such that v ∈ (e 1 ∪ e 2 ) \ (e 3 ∪ {x, y}) and (T1) holds, due to the following reason. By symmetry, we may assume that v ∈ e 1 \ (e 3 ∪ {x, y}). There is exactly one choice of e 1 (as H is simple), at most k choices of e 3 that satisfy (T1), k − 1 choices of the vertex in e 2 ∩ e 3 , and given such a vertex, there is at most one choice of e 2 (as H is simple). Thus, changing whether v ∈ W i affects at most O k (1) candidates. Thus X i (x, y) changes by at most O k (1). Now we focus on queries asking if an edge, say e ′ , is in B i . There are at most k pairwise disjoint edges in H i−1 that intersect with e ′ , so changing whether e ′ is in B i changes E(M i ) by at most k + 1 edges. Call such edges affected. Each affected edge is the central edge e 3 of at most O k (1) candidates. Thus changing whether e ′ is in B i affects at most O k (1) candidates by affecting their (T1) events.
It remains to count the number of candidates for which (T2) events are affected. Note that changing whether e ′ is in B i changes V (M i ) by at most k 2 vertices. Let us call those vertices affected. Recall that, for a candidate to contribute towards X i (x, y), it is necessary that (T1) holds for it. Since H i−1 is simple, for each affected vertex v, there are at most O k (1) candidates (e 1 , e 2 , e 3 ) such that v ∈ (e 1 ∪ e 2 ) \ (e 3 ∪ {x, y}), and (T1) holds. Thus, X i (x, y) changes by at most O k (1). This completes the proof of Subclaim 2.
Thus using Subclaims 1 and 2, Proposition 5.9, and the fact that an edge is in B i with probability 1/D i−1 , we can apply Lemma 3.1 with σ = Θ( X i−1 (x, y) + Y i−1 (x, y)) (so σ = ω(log N ) by the assumption of Claim 7) and λ = Θ(log N ) with an appropriately chosen multiplicative constant, to obtain that with probability at least 1 − e −Ω(log 2 N ) , By the union bound, with probability at least 1 − |U i−1 | 2 e −Ω(log 2 N ) = 1 − e −Ω(log 2 N ) , the claim holds. Proof. We may assume that since otherwise X i (x, y) ≤ X i−1 (x, y) + Y i−1 (x, y) = O(log 2 N ) and the claim automatically holds.
In the rest of the proof of Claim 8, for convenience, we write X i−1 and Y i−1 instead of X i−1 (x, y) and Y i−1 (x, y), respectively. By (5.39), Claim 7, (L4) i−1 and (L5) i−1 the following inequality holds with probability at least 1 − e −Ω(log 2 N ) , where in the second and third inequality we used By the definition of ω, we have D ω ≤ D γ 0 , and D ω−1 > D γ 0 . Thus we have proving the claim. Proof. For any 1 ≤ i ≤ ω, (L2) i (a) implies that By Proposition 5.8 (A3) i−1 and (L2) i−1 (c) we have where the constant implicit in Θ(·) is independent of the index i. Hence we have, where in (5.45) we used Claim 9 and the fact that For any x ∈ U ω , let Z ω := (k − 1)e −k j<ω q k−2 j,ω D j be the main term of Z ω (x). Then Proof. We have We estimate each of these error terms as follows: where in each of the above inequalities we used ∆ω  Now let e = {v 1 , . . . , v k }. For each 1 ≤ j ≤ k, the number of choices for e j ∈ E(H) such that {v j } = e ∩ e j and e 1 , . . . , e j are disjoint is D ω ± ∆ ω ± O k (1) since H is simple and (L1) ω holds. Thus, Hence the claim follows by Proposition 5.8 (A3) ω and Claim 9. ♦ Claim 13. For any x ∈ U ω , where the constants implicit in O(·) and D R = Θ(D Proof. Fix an arbitrary vertex is the number of augmenting stars (e M , {e 1 , . . . , e k }) ∈ A(H) such that x ∈ e 1 ∪ · · · ∪ e k . Since e 1 , . . . , e k are disjoint, x lies in exactly one of them. Without loss of generality, assume that x ∈ e 1 . There are Z ω (x) such choices for e 1 , and given such a choice of e 1 , let x 1 be the unique vertex in e 1 ∩ V (M ) and e M ∈ E(M ) be the edge that contains x 1 .
Let e M \ {x 1 } := {x 2 , . . . , x k }. For each 2 ≤ j ≤ k, we have to choose an edge e j ∈ E(H) that contains x j such that e j is disjoint from e 1 ∪ · · · ∪ e j−1 , |e j ∩ e M | = 1 and e j \ e M ⊆ U ω . Since H is simple, there are at most O k (1) edges that contain x j and intersect e 1 ∪ · · · ∪ e j−1 , so the number of such choices of e j is D ω ( Thus there are augmenting stars (e M , {e 1 , e 2 , . . . , e k }) ∈ A(H) such that x ∈ e 1 ∪ · · · ∪ e k . Therefore, by Proposition 5.8(A3) ω and Claim 9, we obtain ) and the constants implicit in O(·) and Θ(·) do not depend on the vertex x, as desired.
♦ It remains to bound the codegree of {x, y} for x, y ∈ U ω , which is the number of augmenting stars (e M , {e 1 , . . . , e k }) of H with respect to (M, W ), where x, y ∈ k i=1 e i \ e M . Firstly, note that the number of augmenting stars where x, y ∈ e j \ e M , for some 1 ≤ j ≤ k is O(D k−1 ω ). Indeed, as H is simple, there is at most one choice for e j , and the number of choices for each e i with i = j is O(D ω ) by (L1) ω . Secondly, the number of augmenting stars where x ∈ e j 1 \ e M and y ∈ e j 2 \ e M for j 1 = j 2 is O(X ω (x, y)D k−2 ω ). Indeed, the number of choices for such triples (e M , e j 1 , e j 2 ) is X ω (x, y) by definition, and the number of choices for each e i with i ∈ {j 1 , j 2 } is O(D ω ) by (L1) ω . Hence in total, the codegree of {x, y} in H A is at most by Claim 9, where the constant implicit in O(·) does not depend on the choice of x and y, as desired. ♦

6.
Using augmenting stars to find large matchings in almost regular simple hypergraphs Using Theorem 5.1, in this section we prove the following result which implies Theorem 1.4 in the case when H is simple (by taking V = {V (H)}).
Let H be a k-uniform (D ± KD ε )-regular simple hypergraph on N vertices, where N ≥ N 0 and D ≥ exp(log µ N ). Let V be a collection of subsets of V (H) such that |V| ≤ exp(log 4/3 N ) and for each S ∈ V, we have |S| ≥ √ D log N . Then there is a matching in H covering all but at most |S|D − 1 k−1 −η vertices of S, for every S ∈ V.
Let us choose N 0 ∈ N and δ such that In the rest of the proof, the implicit constants in O(·) and Θ(·) will only depend on the parameters δ, η, ε, µ, k, K.
Let H be a k-uniform (D ± KD ε )-regular simple hypergraph on N vertices, where D ≥ exp(log µ N ).
Applying Theorem 5.1 to H (with D = D 0 , ∆ 0 = KD ε , and V ∪ {V (H)} playing the role of V) , we obtain a matching M of H and a set of waste vertices W ⊆ V (H) such that the following hold.
Hence H ′ A is almost regular. Moreover, the codegree of H ′ A is still at most C H A ≤ C 0 . Note that for each T ∈ V ′ we have T ⊆ R, and thus we can define T 1 := {v 1 : v ∈ T } and Now we may apply Lemma 3.5 to H ′ A . Since H ′ A is almost regular and has codegree at most C 0 , we can find a simple spanning subhypergraph H ′′ A of H ′ A such that every vertex x has degree Note that |V (H ′′ A )| = Θ(N ). Since D ≥ exp(log µ N ), we can apply Theorem 5.1 to the (k(k − 1) + 1)-uniform simple hypergraph H ′′ A (with V ′ 1 and γ ′ playing the role of V and γ respectively, and with some ε ′ ∈ (0, 1) satisfying 1 − ε ′ ≪ γ, 1 − γ, k −1 playing the role of ε) to obtain a matching M ′ of H ′′ A and W ′ ⊆ V (H ′′ A ) such that the following holds for every T 1 ∈ V ′ 1 where (6.4) where in (6.4) we used D ≥ exp(log µ N ).
Let M ′′ be the subhypergraph of M ′ induced by L ∪ R 1 = E(M ) ∪ R 1 . Identifying R 1 and R, the matching M ′′ can be viewed as a matching of H A and the number of vertices in T not covered by M ′′ is bounded by (6.4), which is asymptotically at most (6.5) Since γ < 1 2 , it is straightforward to check that Hence (6.5) is at most Hence the total number of vertices of S not covered by M * is at most the sum of |S ∩W | (bounded in (M2) H ) and (6.7). This sum is asymptotically at most (6.8) We now analyse (6.8). Let be defined on (0, 1). First we claim that . Then γ = min(γ 1,3 , γ 2,3 ) by (6.2). Note that the first term and the third term of F (x) are equal at x = γ 1,3 and the second term and the third term of F (x) are equal at x = γ 2,3 . Moreover, We will consider two cases. If γ 1,3 < γ 2,3 , then at x = γ = γ 1,3 , the first and third term of F (x) are equal and are both larger than the second term because D Hence (6.9) holds in this case by (6.1). If γ 1,3 ≥ γ 2,3 , then at x = γ = γ 2,3 , the second and third term of F (x) are equal and are both at least as large as the first term because Hence equation (6.9) holds in this case as well by (6.1). Thus by (6.8), the number of vertices in S ∈ V ∪ {V (H)} not covered by M * is at most and η ∈ (0, η 0 ). Then there exists N 0 = N 0 (k, K, γ, ε, η, µ) such that for any integer N ≥ N 0 , the following holds, provided that D ≥ exp(log µ N ) and C ≤ D 1−γ . Let H be a k-uniform (D ± KC 1−ε D ε )-regular multi-hypergraph on N vertices with codegree at most C. Let V be a collection of subsets of V (H) such that |S| ≥ D/C log N for each S ∈ V and |V| ≤ exp(log 4/3 N ).
Then there is a matching in H that covers all but at most |S|(D/C) − 1 k−1 −η vertices in S, for every S ∈ V.
Proof. Choose N 0 ∈ N and a new constant δ such that 0 Our choice of δ implies that In the proof below, the implicit constants in O(·) and Θ(·) will only depend on the parameters δ, γ, ε, µ, k, K.
We divide the proof into two cases depending on whether log D ≤ C ≤ D 1−γ or C < log D. First consider the case log D ≤ C ≤ D 1−γ . By applying Lemma 3.5 with δ/2 playing the role of δ, there exists a simple k-uniform N -vertex subhypergraph H simp of H such that for any v ∈ V (H), Then η * < η 0 by (7.1). We also let Then we have ∆ * ≤ (D * ) ε * . In either case, we have η 0 = min η ⋄ , 1 − 1 k−1 − ε * . Moreover, (7.1) implies that ε * < 1 − 1 k−1 . Since η * < η 0 and |S| ≥ √ D * log N for each S ∈ V, we may apply Theorem 6.1 to H simp (with ε * , η * and µ/2 playing the roles of ε, η and µ), to obtain a matching in H simp which covers all but at most For the case C < log D, we may enlarge the codegree bound C to log D and apply the analogous statements as above, where D * = Θ D 1−δ/2 (log D) 2−δ/2 . As in (7.4), the hypergraph H simp contains a matching covering all but at most

Chromatic index of hypergraphs with small codegree
Before proving Corollary 1.6, we need the following lemma which allows us to embed a given hypergraph into an almost regular hypergraph with not too many vertices while preserving both the maximum degree and codegree. This allows us to apply Theorem 7.1 (which applies only to almost regular hypergraphs).
Lemma 8.1. For any integer k ≥ 3, there exist N 0 = N 0 (k), D 0 = D 0 (k), and K = K(k) satisfying the following. For any N ≥ N 0 , D ≥ D 0 and C ∈ N, let H be an N -vertex k-uniform multi-hypergraph with maximum degree at most D and codegree at most C. There exists a kuniform multi-hypergraph H ′ such that • H ⊆ H ′ , • every vertex v ∈ V (H ′ ) has degree between D − K and D, • H ′ has codegree at most C, • |V (H ′ )| = (k − 1) 2 D 2 N . Moreover, if H has no multiple edges then H ′ also has no multiple edges.
Since it is straightforward to prove Lemma 8.1 based on the existence of Steiner systems with parameters (2, k, n) (which was proved by Wilson [35,36,37]), we present its proof in Appendix C. Now we are ready to deduce Corollary 1.6 as follows: the existence of the desired edge-colouring of H follows from the existence of a suitable matching in an auxiliary 'incidence' hypergraph H ′ . We find such a matching via Theorem 7.1.
Proof of Corollary 1.6. We may assume that D is an integer. By Lemma 8.1, there exists a kuniform hypergraph H ′ such that H ⊆ H ′ , every vertex of H ′ has degree between D − K and D for some K = K(k), the codegree of H ′ is at most C, and Hence it suffices to bound the chromatic index of H ′ as it is at least the chromatic index of H. Now let us define a (k + 1)-uniform auxiliary hypergraph H 0 as follows.
Then it is straightforward to check that every e ∈ E(H ′ ) has degree exactly D in H 0 , and for every v ∈ V (H ′ ) and 1 ≤ i ≤ D, we have d H 0 (v i ) = d H ′ (v). Moreover, H 0 has codegree at most C and Also note that every matching M of H 0 corresponds to a partial edge-colouring of H ′ with D colours by colouring, for each edge ev i . Also note that for every S ∈ V, by (8.2), the inequality |S| ≥ D/C log |V (H 0 )| is satisfied since |S| = D and we assumed that D ≥ exp(log µ N ). Also note that this assumption and (8.2) imply that D ≥ exp(log µ/2 |V (H 0 )|). So we can apply Theorem 7.1 to H 0 (with µ/2, η ′ and 1/4 playing the roles of µ, η and ε), to obtain a matching M that covers all but at most D(D/C) −1/k−η ′ vertices in S, for every S ∈ V. In other words, there exists a partial edge-colouring of H ′ with D colours, where each vertex v ∈ V (H ′ ) is incident to at most D(D/C) −1/k−η ′ non-coloured edges. Let H ′′ be the subhypergraph of H ′ consisting only of non-coloured edges of H ′ ; thus H ′′ has maximum degree at most D(D/C) −1/k−η ′ . Since every edge of H ′′ shares a vertex with at most k(D(D/C) −1/k−η ′ − 1) other edges, H ′′ has chromatic index at most Hence, to colour H ′′ one needs less than D(D/C) −1/k−η new colours (different from the D colours used for the partial edge-colouring of H ′ ), implying that H ′ has chromatic index at most D + D(D/C) −1/k−η , as desired.
Appendix A. Finding simple subhypergraphs of hypergraphs with small codegrees We will use the following four lemmas taken directly from Lemma 7 and the proofs of Lemmas 4-6 in [20], where they are stated for hypergraphs, but they are also applicable to multi-hypergraphs, since the proofs are based on random edge-colourings.
Let H be a k-uniform multi-hypergraph with codegree at most C and αD ≤ d H (v) ≤ βD for any v ∈ V (H). Then there exists E ′ ⊆ E(H) such that the multi-hypergraph H ′ := (V (H), E ′ ) satisfies the following.
(1) The codegree of H ′ is at most log(D/C).
Let k ≥ 3 be an integer, and let α, β, D > 0, 0 < δ < 1/3 be real numbers satisfying Let H be a k-uniform multi-hypergraph with codegree at most log D and αD ≤ d H (v) ≤ βD for any v ∈ V (H). Then there exists E ′ ⊆ E(H) such that H ′ := (V (H), E ′ ) satisfies the following.
(1) The codegree of H ′ is at most 2δ −1 . Combining the four lemmas above, we are now ready to prove Lemma 3.5.
Proof of Lemma 3.5. Let H be a k-uniform multi-hypergraph satisfying all the conditions of the corollary. By Lemma A.1, there exists E ′ ⊆ E(H) such that the k-uniform multi-hypergraph H ′ := (V (H), E ′ ) has codegree C ′ ≤ log(D/C), and for any v ∈ V (H ′ ), Then αD ≤ βD 2C , so we may apply Lemma A.2 to the multi-hypergraph H ′ (where D/C plays the role of D in Lemma A.2) to show that there exists E ′′ ⊆ E ′ such that the k-uniform multi-hypergraph H ′′ := (V (H), E ′′ ) has codegree at most 2δ −1 and for any v ∈ V (H ′′ ), Let G be a graph with V (G) := E ′′ such that e 1 = e 2 ∈ E ′′ are adjacent if and only if |e 1 ∩ e 2 | ≥ 2. Since the codegree of H ′′ is at most 2δ −1 , we have ∆(G) ≤ 2 k 2 δ −1 . Hence by Lemma A.4 there exists an s-regular graph G reg with vertex set E ′′ such that G reg contains G, where s is an even integer between 1 + 2 k 2 δ −1 and 3 + 2 k 2 δ −1 . Applying Lemma A.3 to H ′′ (with (D/C) 1−δ , log(D/C), G reg playing the role of D, T and G in the statement of Lemma A.3), we obtain E * ⊆ E ′′ such that the number of edges e ∈ E H ′′ (v) that are isolated vertices in G reg [E * ] is Let E simp be the collection of e ∈ E * that are isolated in G reg [E * ]. Then by the definition of G reg , the k-uniform hypergraph H simp := (V (H), E simp ) is a simple hypergraph satisfying (i) and (ii), as desired.
Appendix B. Almost independence of events Proof of Proposition 5.10. Let s be an arbitrary integer with 1 ≤ s ≤ n 1 + n 2 ≤ 6k. If where t(F 1 , . . . , F s ) is the number of edges in E(H i−1 ) \ {F 1 , . . . , F s } intersecting at least one of F 1 , . . . , F s , and t(F j ) is the number of edges in E(H i−1 ) \ {F j } intersecting F j for 1 ≤ j ≤ s.
Since H i−1 is simple, we have 0 ≤ t(F 1 ) + · · · + t(F s ) − t(F 1 , . . . , F s ) ≤ s 2 k 2 ≤ 36k 4 as there are at most k 2 edges intersecting both F j 1 and F j 2 for 1 ≤ j 1 = j 2 ≤ s. where the sum here runs over all s-tuples of edges (F 1 , F 2 , . . . , F s ) such that z j ∈ F j where F j ∩ F j ′ = ∅ whenever F j = F j ′ .
Claim 15. For any s with 1 ≤ s ≤ n 1 + n 2 , S * = S(1 + O(D −1 i−1 )). Proof. Every s-tuple (F 1 , F 2 , . . . , F s ) with the property that z j ∈ F j for j ∈ [s] falls into one of the following three types: Let S 1 be the set of s-tuples where F 1 , F 2 , . . . , F s are disjoint and distinct, let S 2 be the set of s-tuples where F 1 , F 2 , . . . , F s are distinct but F j ∩ F j ′ = ∅ for some distinct j, j ′ ∈ [s], and let S 3 be the set of s-tuples where F j = F j ′ for some distinct j, j ′ ∈ [s].
Note that |S − S * | ≤ Q 1 + Q 2 + Q 3 where Let us first estimate Q 2 . There are no terms corresponding to s-tuples of S 2 in * but they exist in . Hence by (B2), we have Q 2 ≤ |S 2 |·Θ(D −s i−1 ). Since |S 2 | ≤ s 2 k·(D i−1 ±∆ i−1 ) s−1 = O(D s−1 i−1 ), we obtain Q 2 ≤ O(D −1 i−1 ). Now let us estimate Q 3 . An edge is called special if it contains at least two of the vertices z 1 , z 2 , . . . , z s . The number of special edges is at most s 2 ≤ 36k 2 . Let T ℓ be the set of s-tuples (F 1 , F 2 , . . . , F s ) in S 3 such that there are exactly ℓ distinct edges among F 1 , F 2 , . . . , F s . Then Now let t be an arbitrary integer with 1 ≤ t ≤ n 1 ≤ 3k. Since the event w j ∈ W i is independent of all the other events, it follows that for distinct vertices w 1 , . . . , w t ∈ U i−1 (where a vertex w j is allowed to be contained in {z 1 , . . . , z s }), We are now ready to prove the lemma. For x j ∈ U i−1 , the event that x j ∈ U i is equivalent to the event that x j ∈ V (M i ) and x j ∈ W i . Then by the inclusion-exclusion principle the desired probability P n 1 j=1 (x j ∈ U i ) ∧ n 2 j=1 (y j ∈ V (M i )) can be written as the sum and difference of probabilities of conjunctions of various subsets of the set of events {x j ∈ V (M i ), x j ∈ W i | 1 ≤ j ≤ n 1 } ∪ {y j ∈ V (M i ) | 1 ≤ j ≤ n 2 }. The number of these terms is at most 3 2n 1 +n 2 = O(1), so using (B.7) for each of these terms, we obtain that the desired probability is equal to n 1 j=1 P(x j ∈ U i ) · n 2 j=1 P(y j ∈ V (M i )) + O(D −1 i−1 ) which can be written in the form given in the proposition, since n 1 j=1 P(x j ∈ U i ) n 2 j=1 P(y j ∈ V (M i )) ∼ (1 − e −k ) n 1 (e −k ) n 2 is bounded away from zero, by (5.6) and Proposition 5.2.