Open MathsAll courses

Coefficient sheafification on arbitrary sieve sites

Written by GPT-6.1 Sol (OpenAI), October 2026. Public domain (CC0).

A covering sieve records every permitted further restriction, so its matching diagram is available even when intersections are not objects of the site. Limits of coefficients replace tuples of sections. Conservative set-valued tests can verify the resulting sheaf condition, but the gluing maps themselves must be constructed in the coefficient category.

Use the universe convention of Universes and small categories. Our prerequisites are the general coefficient limits and conservative-test lemma, the finite-cover coefficient theorem and its locally nilpotent examples, the slice convention for coefficient morphisms, and the set-valued sieve plus theorem and local-isomorphism criterion. Those arguments supply the complete set and finite-limit prerequisites used below. For arbitrary locally presentable coefficients, Locally presentable coefficients and accessible sheafification gives the accessible reflection and a counterexample to unconditional finite-limit preservation; the directed-test hypotheses of this lesson retain their force.

1. Matching cones without intersections

Let \(\mathcal C\) be small and let \(J\) be a Grothendieck topology defined by sieves. The maximal sieve covers, covering sieves pull back to covering sieves, and the local character axiom holds. No fiber products or subcanonical hypothesis are assumed. Let \(\mathcal A\) be locally small with all small limits and colimits. Suppose a small jointly conservative family \(\lambda_\nu\colon \mathcal A\to\mathsf{Set}\) preserves small limits and small directed colimits.

For a sieve \(S\subset h_U\), let \(\mathcal E_S\) be its category of arrows: an object is \(f:V\to U\) belonging to \(S\), and an arrow from \(fb\) to \(f\) is the specified \(b:W\to V\). For a coefficient presheaf \(F\), define

\[ \begin{gathered} M_S(F)=\lim_{\mathcal E_S^{op}}F(\operatorname{dom}f),\\ \pi_f:M_S(F)\to F(V),\\ F(b)\pi_f=\pi_{fb}. \end{gathered} \tag{1.1} \]

The diagram is small. These equations characterize its cones and their unique factors. Restrictions give \(\mu_{S,F}:F(U)\to M_S(F)\). A presheaf is a sheaf when these maps are invertible for all covering \(S\), and separated when they are monic. The empty sieve has terminal matching object; if it covers \(U\), the sheaf value at \(U\) must be terminal.

This convention also says that every represented test \(\operatorname{Hom}_{\mathcal A}(B,F(-))\) is a set sheaf. Indeed, represented Hom preserves (1.1) by its limit universal property. Conversely, if every such tested matching comparison is bijective, take \(B=M_S(F)\) to obtain a right inverse to \(\mu\), and use injectivity at \(B=F(U)\) to obtain the other inverse identity. Thus this is exactly the represented-test convention of Stacks, Definition 7.7.6.

The conservative family gives a smaller sufficient test. Preservation of (1.1) identifies \(\lambda_\nu M_S(F)\) with \(M_S(\lambda_\nu F)\), with its specified projections. Consequently \(F\) is a sheaf precisely when every \(\lambda_\nu F\) is a set sheaf. The general coefficient lemma in the prerequisites proves that these tests are jointly faithful and preserve and reflect monomorphisms: use the equalizer to reflect equality and the pullback diagonal to test monicity. It follows that they detect separatedness as well. That lemma also proves that directed coefficient colimits commute with finite limits, including the empty limit.

2. The directed matching construction

The poset \(J(U)^{op}\), ordered by reverse inclusion, is small, nonempty and directed. For covers \(S,T\), their intersection covers: if \(f\in S\), then \(f^*(S\cap T)=f^*T\) covers, and local character applied to \(S\) proves the assertion. The maximal sieve supplies nonemptiness. If \(T\subset S\), forgetting projections gives \(M_S(F)\to M_T(F)\); uniqueness of cone factors proves identity and composition.

For \(u:V\to U\), the functor \(\mathcal E_{u^*S}\to\mathcal E_S\) sends \(g\) to \(ug\). It gives a matching map whose \(g\)-component is \(\pi_{ug}\). It commutes with refinement. Therefore set

\[ \begin{gathered} F^+(U)=\operatorname{colim}_{S\in J(U)^{op}}M_S(F),\\ c_{S,F}:M_S(F)\to F^+(U). \end{gathered} \tag{2.1} \]

The matching map for \(u\), followed by \(c_{u^*S,F}\), defines the restriction from each coprojection. Since \((uv)^*S=v^*u^*S\), restriction identities and composition hold on every matching projection and then on the colimit. A transformation of presheaves acts on these same cones; hence plus is a functor. The maximal matching object is canonically \(F(U)\): its identity projection is inverse to its restriction cone. Its coprojection defines a natural unit \(\eta_F:F\to F^+\).

For every member \(f:V\to U\) of \(S\), one has \(f^*S=h_V\). The just-defined restrictions consequently satisfy the actual coefficient equation

\[ F^+(f)c_{S,F}=\eta_{F,V}\pi_f. \tag{2.2} \]

Preservation of the matching limits and directed colimits gives canonical comparisons

\[ \begin{gathered} \lambda_\nu M_S(F)\simeq M_S(\lambda_\nu F),\\ \lambda_\nu(F^+)\simeq(\lambda_\nu F)^+. \end{gathered} \tag{2.3} \]

Every comparison respects the displayed projections, refinement maps, restrictions, coprojections and unit; these equations determine its factors uniquely and prove naturality. The complete set-valued sieve proof in the prerequisites now applies to each test. It states that plus is separated, that plus of a separated presheaf is a sheaf with monic unit, and that a sheaf has invertible plus unit. Reflection of monomorphisms and isomorphisms gives the same assertions in \(\mathcal A\). In particular,

\[ a_{\mathcal A}F=F^{++},\qquad \alpha_F=\eta_{F^+}\eta_F \tag{2.4} \]

is a sheaf with natural unit for every coefficient presheaf. The set proof includes empty covering sieves: matching over them is the singleton, and local character handles their further restrictions. Thus (2.3) and conservativity include these cases too. Exercise 4 shows why one plus step cannot replace (2.4).

3. All adjunction maps are coefficient maps

Let \(b:F\to E\) be a coefficient transformation with \(E\) a sheaf. For each covering sieve form

\[ \begin{gathered} q_S=\mu_{S,E}^{-1}M_S(b),\\ q_S:M_S(F)\to E(U). \end{gathered} \tag{3.1} \]

This arrow exists in \(\mathcal A\). If \(T\subset S\) covers, its restriction along each \(f\in T\) is \(b_{\operatorname{dom}f}\pi_f\), whether one first uses \(q_S\) or first forgets to \(M_T(F)\) and uses \(q_T\). The restrictions of \(E(U)\) along \(T\) are jointly monic, since \(\mu_{T,E}\) is invertible and limit projections are jointly monic. Thus the arrows agree. For empty \(T\), the target \(E(U)\) is terminal and they agree as well. The \(q_S\) form a coefficient cocone and give \(b^+_U:F^+(U)\to E(U)\).

For \(u:V\to U\), compare \(E(u)q_S\) with \(q_{u^*S}\) after the matching map. After restriction by \(g\in u^*S\), both are \(b_{\operatorname{dom}g}\pi_{ug}\). Joint monicity for that covering sieve proves equality; the empty case has terminal target. Colimit uniqueness proves naturality of \(b^+\). The maximal sieve gives \(b^+\eta_F=b\).

Conversely, if \(g:F^+\to E\) satisfies \(g\eta_F=b\), equation (2.2) and naturality give

\[ \begin{gathered} E(f)g_Uc_{S,F}=b_{\operatorname{dom}f}\pi_f \\(f\in S). \end{gathered} \tag{3.2} \]

These are the projections of (3.1), so joint monicity makes \(g_Uc_{S,F}=q_S\); an empty \(S\) again has terminal target. All coprojections together determine a map out of the colimit. Hence \(g=b^+\). We have proved both inverse identities between \(b\mapsto b^+\) and restriction along \(\eta_F\). Applying this twice proves the natural bijection

\[ \begin{gathered} \operatorname{Hom}_{\mathsf{Sh}}(a_{\mathcal A}F,E)\\ \simeq\operatorname{Hom}_{\mathsf{PSh}}(F,E),\\ h\mapsto h\alpha_F,\qquad b\mapsto(b^+)^+. \end{gathered} \tag{3.3} \]

Precomposition in \(F\) and postcomposition in \(E\) commute with (3.1); uniqueness proves both naturality variables. Thus \(a_{\mathcal A}\) is left adjoint to the full sheaf inclusion. The counit at a sheaf is \(\epsilon_E=\alpha_E^{-1}\). One triangle is this inverse identity. For the other, naturality of \(\alpha\) shows that \(\epsilon_{aF}a(\alpha_F)\) and \(1_{aF}\) have the same composite with \(\alpha_F\); uniqueness in (3.3) equates them. No arbitrary tested function was lifted to a coefficient morphism.

4. Limits, colimits and change of coefficients

Matching functors preserve all small limits, since iterated limits have the same compatible-cone property. A presheaf limit of sheaves therefore has invertible matching comparisons, and is their limit in the full sheaf category. For a small sheaf diagram its colimit is the associated sheaf of its presheaf colimit: (3.3) identifies maps from that object with compatible families of maps from the original diagram. The same argument proves that \(a_{\mathcal A}\) preserves small colimits with their specified coprojections and sheaf targets.

Plus preserves finite limits. Commute the finite diagram through each matching limit, and then through the directed colimit (2.1), using the coefficient lemma cited in Section 1. The resulting cone comparison is exactly the canonical comparison, because all its matching projections and coprojections agree. Applying this twice proves that \(a_{\mathcal A}\) is left exact, including at the terminal object.

Directed sheaf colimits commute with finite sheaf limits. In the presheaf category that comparison is invertible pointwise by the same coefficient lemma. Apply the left exact functor \(a_{\mathcal A}\) and use the preceding descriptions of sheaf limits and colimits. This identifies every leg of the desired comparison. It does not assert that a directed presheaf colimit of sheaves is itself a sheaf; infinite matching limits need not commute with that colimit.

Let \(T\colon \mathcal A\to\mathcal B\) preserve small limits and small directed colimits, where both coefficient categories satisfy Section 1. Its limit comparisons send coefficient sheaves to coefficient sheaves. Its matching and colimit comparisons give, first for plus and then for double plus, a natural isomorphism

\[ \begin{gathered} \gamma_{T,F}:T a_{\mathcal A}F \xrightarrow{\sim}a_{\mathcal B}(TF),\\ \gamma_{T,F}\,T\alpha_F=\alpha_{TF}. \end{gathered} \tag{4.1} \]

Every restriction, source transformation and unit is respected by the unique cone and cocone factors. Equivalently, its inverse is the unique sheaf factor of \(T\alpha_F\) from (3.3). This also proves that all these comparisons are coherent: for another such functor \(Q\colon \mathcal B\to\mathcal D\),

\[ \gamma_{QT,F}=\gamma_{Q,TF}\,Q(\gamma_{T,F}). \tag{4.2} \]

Both inverse composites are the unique factor of \(QT\alpha_F\). The identity functor gives the identity comparison, and applying the same uniqueness to three functors gives associativity. Neither functor is required to be full or conservative. Directed-colimit preservation is essential to this argument; Exercise 3 separates it from limit preservation.

5. Morphisms and local isomorphisms

For coefficient presheaves set \(\mathcal H(F,E)(U)=\operatorname{Nat}(F|_{\mathcal C/U},E|_{\mathcal C/U})\). This is a small set: it is a subset of a small product of coefficient Hom sets. Postcomposition of slice labels defines its restriction maps, which satisfy the presheaf laws componentwise.

Theorem 5.1. If \(E\) is a coefficient sheaf, then \(\mathcal H(F,E)\) is a set sheaf, with no sheaf hypothesis on \(F\).

Proof. A matching family on a covering sieve \(S\) consists of transformations \(h_f\) on the slice over \(\operatorname{dom}f\), satisfying \(h_{fb}=h_f|_b\). For a label \(a:V\to U\), and \(b:W\to V\) in \(a^*S\), form the actual arrows

\[ \begin{gathered} F(V)\xrightarrow{F(b)}F(W) \xrightarrow{(h_{ab})_{1_W}}E(W),\\ \phi_a=\mu_{a^*S,E}^{-1}\big\langle (h_{ab})_{1_W}F(b)\big\rangle_b. \end{gathered} \tag{5.1} \]

They form a cone: restriction along \(c:Z\to W\) changes \((h_{ab})_{1_W}\) to its \(c\)-component by naturality, then to \((h_{abc})_{1_Z}\) by the matching equation; the source restriction becomes \(F(bc)\). Thus the bracket in (5.1) is the unique matching-limit factor. For an arrow \(e:D\to V\), compare \(E(e)\phi_a\) and \(\phi_{ae}F(e)\) after each restriction \(b'\in(ae)^*S\). Both become \((h_{aeb'})_{1}F(eb')\), using the same cone equation. Joint monicity of that sheaf cover gives naturality. For an empty sieve the target is terminal, giving the same equality.

If \(a\in S\), then \(a^*S\) is maximal, so its identity projection makes \(\phi_a=(h_a)_{1_V}\). At every further label \(t\), the matching equation \(h_{at}=h_a|_t\) therefore shows that the global transformation restricts to the entire \(h_a\). Finally, two global transformations with those restrictions agree at each label after its pulled-back covering sieve. Separation of \(E\) equates their components. This proves existence and uniqueness, including an empty cover, where all target values on its slice are terminal. \(\square\)

Composition and identities commute with restrictions on every component. Compatible local isomorphisms of coefficient sheaves therefore glue: apply Theorem 5.1 to the transformations and their inverses; the inverses are compatible because they invert the same restricted maps. Their composites restrict to identities, so separation makes both composites identities. In particular, a fixed coefficient sheaf morphism that is an isomorphism on every slice of a covering sieve is an isomorphism. This requires invertibility on the entire local slice, rather than only at its identity label.

For a transformation \(v:F\to G\) of coefficient presheaves, say that its \(\nu\)-test is locally bijective when the set map \(\lambda_\nu v\) has the two sieve tests of the prerequisite: every target section lifts on a covering sieve, and any two source sections with equal images agree on a covering sieve. Applying (4.1) to each \(\lambda_\nu\), the exact set-valued criterion and conservativity give

\[ \begin{gathered} a_{\mathcal A}v\text{ is invertible} \\\Longleftrightarrow\quad \forall\nu, \lambda_\nu v\\ \text{ is locally bijective}. \end{gathered} \tag{5.2} \]

Indeed, the tested associated map is the associated tested map by the unit-compatible comparison, and the tests reflect an isomorphism at each object. Each test and each section may use a different covering sieve. No intersection of infinitely many covers is assumed, and no uniform coefficient section is manufactured from separately chosen tested sections.

6. Agreement with covering-family formulas

Suppose instead that covering families with their required pullbacks generate \(J\), as in the earlier coefficient lesson. If \(R=(u_i:U_i\to U)\) covers, write \(\langle R\rangle\) for its generated sieve. Its matching limit is the earlier product-and-equalizer matching object. To prove this, restrict a sieve cone to the \(u_i\). Conversely, from a matching family of arrows out of any coefficient object \(B\), define the entry at \(f=u_i h\) by restricting its \(i\)-entry along \(h\). If also \(f=u_j k\), the pair \((h,k)\) factors through \(U_i\times_UU_j\); the original matching equation equates the two entries. Further restriction preserves them. These procedures are inverse on every cone, so they give the unique coefficient isomorphism, natural in \(F\) and in refinement.

Generated covering sieves are cofinal in the reverse-inclusion index: every covering sieve contains one by the generating-family convention. Any two such choices have a common generated covering refinement, obtained from the common refinement of their families. Thus the corresponding comma index is nonempty and connected, which is the colimit cofinality condition. The family normalization and canonical refinement maps are proved in the earlier coefficient lesson. The matching isomorphisms consequently identify both plus constructions, including their restrictions and units. Double plus and (3.3) identify their associated sheaves through the unit. Empty families give the empty sieve and terminal matching objects on both sides. This proves compatibility while retaining the finite-cover theorem's narrower coefficient hypotheses when that theorem is used.

7. Four graded exercises with complete solutions

Exercise 1 (basic: a missing overlap). Let the base poset have objects \(p,a,b\), with only the proper arrows \(a\to p\) and \(b\to p\). Give \(p\) the covering sieve consisting of those two arrows and give the leaves only maximal covers. Compute coefficient sheafification and its unit. Describe the entire sheaf category.

Solution. This specifies a topology: pullback of the proper cover to either leaf is maximal. In local character at \(p\), covering pullbacks at both leaves force both arrows to belong to the candidate sieve, so it covers. For maximal covers the identity pullback gives local character directly. There is no object mapping to both leaves, so the base fiber product of their arrows does not exist.

A presheaf is an object \(M\) with maps \(M\to A\), \(M\to B\). The proper sieve category is discrete, and its matching object is \(A\times B\). This sieve is the final object of the reverse cover index at \(p\), while each leaf has only its maximal cover. Consequently plus replaces \(M\) by \(A\times B\), leaves \(A,B\) unchanged, and uses the two product projections. Its unit at \(p\) is the pair of the original maps; at the leaves it is the identity. The result already satisfies the proper-cover comparison and all maximal ones, so double plus gives the same sheaf through its unit.

Restriction to the leaves is an equivalence \(\mathsf{Sh}(\mathcal C,\mathcal A)\simeq\mathcal A\times\mathcal A\). Its inverse sends \((A,B)\) to this product diagram, and sends a pair of maps to their product map at \(p\). A sheaf's matching isomorphism is the inverse comparison; it is natural because it is specified by its two projections. Thus the claim includes all objects, arrows and universal identifications, without an overlap object in the base.

Exercise 2 (intermediate: the actual infinite matching comparison). Replace the two leaves by leaves indexed by \(n\ge1\), with the covering sieve of all leaves. In \(\mathsf T\), the category of locally \(t\)-nilpotent \(k[t]\)-modules, put \(F(p)=0\), \(F(n)=k[t]/(t^n)\), with zero maps from \(p\). Compute coefficient plus and the comparison from its underlying set to the set-valued plus. Which hypothesis in (2.3) fails?

Solution. The topology axioms are verified as in Exercise 1: every leaf must belong to a sieve with covering pullbacks on the full covering family. Matching over the proper sieve is the countable product. Write \(M_n=k[t]/(t^n)\). The product in \(\mathsf T\) is

\[ \begin{gathered} P=\{(x_n)_n:\\ \exists r\ge1, t^r x_n=0\text{ for all }n\},\\ P\subset\prod_{n\ge1}M_n. \end{gathered} \tag{7.1} \]

This is a submodule: two killing powers are bounded by their maximum. A cone from a locally nilpotent module sends each of its elements into a tuple with that element's killing power, so its ordinary product map factors uniquely through \(P\). This proves the product universal property with its actual projections. Such products, submodule equalizers and the zero terminal object give all small limits in \(\mathsf T\). Coproducts and quotients are ordinary module coproducts and quotients: each element of a direct sum has finite support, hence a common killing power, and a quotient inherits that property. Colimits are quotients of direct sums by the diagram relations, with the ordinary compatible-map universal property. Thus the category has all the limits and colimits used here.

The proper cover is final in the reverse index. Therefore \(F^+(p)=P\), \(F^+(n)=M_n\), and the restrictions are product projections. It is already a coefficient sheaf. The plus unit at \(p\) is the zero map \(0\to P\). For the underlying-set presheaf, plus at \(p\) is the unrestricted product of the underlying sets. The comparison induced by the projections is exactly the inclusion in (7.1). The tuple \((1\bmod t^n)_n\) is absent from its image, since coordinate \(n>r\) survives multiplication by \(t^r\).

The earlier finite-cover lesson proves, with its actual set-colimit construction, that the underlying-set functor on \(\mathsf T\) is conservative and preserves finite limits and directed colimits. Its missing property here is preservation of the infinite matching product. The two plus constructions are defined and computable, but (2.3) is not an isomorphism for this functor. This does not assert a failure of coefficient sheafification or a lack of coefficient products.

Exercise 3 (advanced: separate bounds cannot be made uniform). On the usual open-set site of \(\mathbb R\), let \(F_n(U)\) be the singleton when \(\operatorname{diam}U<1/n\), and empty otherwise, with \(F_n(\varnothing)=1\). Regard \(F=(F_n)_{n\ge1}\) as a presheaf with coefficients in \(\mathsf{Set}^{\mathbb N}\). Compute its associated coefficient sheaf and compare sheafification before and after the coefficient product functor.

Solution. A subset of a set of diameter less than \(1/n\) has diameter less than \(1/n\), so all restrictions exist uniquely. Each inclusion \(F_n\to1\) is locally injective. Every open set is covered by contained intervals of diameter less than \(1/n\): at each point choose an interval inside the open set with radius less than \(1/(2n)\). Thus it is locally surjective, and the exact set criterion gives \(aF_n=1\) through the unit.

Evaluations on the discrete coefficient index preserve all limits and colimits and are jointly conservative: inverse component functions of an objectwise bijection give its inverse in this product category. Formula (2.3) and double plus consequently give \(a_{\mathsf{Set}^{\mathbb N}}F=(1)_n\), with these very component units.

Every nonempty open set contains a nondegenerate interval and therefore has strictly positive diameter. For some sufficiently large \(n\), its \(F_n\)-value is empty. Hence \(P=\prod_nF_n\) has empty value on every nonempty open and singleton value on the empty open. It is a sheaf: any cover of a nonempty open has a nonempty member, so both its matching set and its section set are empty; over the empty open both are singleton. Therefore \(aP=P\), while \(\prod_n aF_n=1\). The canonical comparison is the noninvertible inclusion \(P\to1\). Individually there are arbitrarily small neighborhoods for each bound; no covering by nonempty opens can satisfy all bounds simultaneously.

The coefficient product functor \(\Pi:\mathsf{Set}^{\mathbb N}\to\mathsf{Set}\) preserves small limits, since limits of compatible tuples commute. It does not preserve directed colimits. To see this directly, let \((D_m)_n=1\) for \(n\le m\) and \((D_m)_n=\varnothing\) for \(n>m\), with the unique increasing maps. Every \(\Pi D_m\) is empty, but their componentwise colimit has every component singleton, so its product is singleton. Thus the missing hypothesis of (4.1) is exactly directed-colimit preservation. No claim about uniform lifting follows from the separate evaluation tests in (5.2).

Exercise 4 (challenge: both plus steps are necessary). Let the base poset be the diamond \(c<a,b<p\). Only maximal sieves cover \(a,b\); every sieve covers \(c\); a sieve of \(p\) covers exactly when it contains both arrows from \(a,b\). For a nonzero field \(k\), take \(F(p)=0\), \(F(a)=F(b)=k\), \(F(c)=k^2\). Restrictions to \(c\) are the first and second coordinate inclusions, respectively. Compute \(F^+\), \(F^{++}\) and the double unit.

Solution. A sieve containing either identity is maximal. The proper minimal cover of \(p\) is \(R=\{a,b,c\}\); its pullbacks at \(a,b,c\) are maximal. The empty cover at \(c\) pulls back only along its identity. This proves pullback stability for the generating covers. For local character at \(p\) with cover \(R\), covering pullbacks at \(a,b\) force both to belong to the proposed sieve, hence make it covering. At the other objects, a maximal cover has an identity test and at \(c\) every sieve already covers. Upward closure and the identity case give the remaining covers and verify all topology axioms.

The zero restrictions from \(p\) commute with both paths to \(c\), so this is a presheaf. Matching over \(R\) consists of triples with

\[ \begin{gathered} (x,0)=z=(0,y),\\ x,y\in k, z\in k^2. \end{gathered} \tag{7.2} \]

Only the zero triple satisfies these equations. Since \(R\) is final in the reverse cover index at \(p\), its first plus value is zero. At \(c\) the empty sieve is final, so plus has the terminal coefficient value zero. At \(a,b\) only the maximal cover occurs and plus leaves their values equal to \(k\). Thus \(F^+\) has values \((0,k,k,0)\) in the order \((p,a,b,c)\), with zero restrictions into \(c\).

Its matching object on \(R\) is now \(k\times k\): the two maps to zero impose no relation. The comparison from \(F^+(p)=0\) is not invertible. The second plus replaces that value by \(k^2\) and leaves \((k,k,0)\) at the other objects, with coordinate projections from \(p\). These values satisfy every specified sheaf comparison. The double unit is \(0\to k^2\) at \(p\), identities at \(a,b\), and \(k^2\to0\) at \(c\). All squares commute. The first plus removed equality constraints on the overlap; only the second supplied the newly compatible pairs.

8. Freely accessible references

Pierre Schapira, An Introduction to Sheaves on Grothendieck Topologies, Hypotheses (1.5.1), Theorems 1.5.5 and 1.6.1, develops conservative coefficient tests, morphism sheaves and associated sheaves. The Stacks coefficient-sheaf definition gives the represented-Hom convention. The linked course prerequisites supply the complete proofs used here; Sections 1–6 give the matching-sieve constructions without base fiber products.

Original lesson text and worked solutions: CC0-1.0.