Bijectivity: testing given functions by fiber profiles, kept apart from whether some bijection exists

On this page
  1. Goal and scope
  2. Givens and symbols
  3. Rules and sources
  4. Main derivation
  5. Substeps and lemmas
  6. Reverse audits
  7. Error controls and negative controls
  8. Result and limitations
  9. Verification and source binding

← Guide index · Original MKO

derivation-mko-bijective-01 · production-20261019-adopted-96

Goal and scope

Let A={1,2,3}, B={4,5,6}, and let f, g:A→B be given by tables: f(1)=5, f(2)=6, f(3)=4; g(1)=4, g(2)=4, g(3)=6. First prove, for any total function, the equivalence: bijective ⇔ the fiber of every b∈B has exactly one element. Then list the complete fiber profiles of f and g in the codomain order 4, 5, 6, and decide that f is bijective while g is neither injective nor surjective. Finally answer the different question of whether some bijection exists: one exists A→B (f is one), none exists {1,2,3}→{4,5}, and ∅→∅ has exactly one, the empty bijection.

The fiber characterization (S03 to S05) is proved for total functions on arbitrary sets; everything else is a finite-set exercise under MKO assumptions a1 and a2. On the existence side, A→B is answered by the explicit witness f, the non-existence for {1,2,3}→{4,5} is proved directly in sub-steps, and the general fact that finite sets admit a bijection exactly when they have the same number of elements is taken from the prerequisite rule finite_counting_basics and not reproved. Infinite cardinalities are not treated; the canonical MKO and its English edition are not changed.

Givens and symbols

  • function_def
  • injective_surjective_def
  • image_preimage_def
  • set_builder
  • finite_counting_basics
  • numeric_evaluation
  • G1 — A={1,2,3}, B={4,5,6}; f:A→B is f(1)=5, f(2)=6, f(3)=4.
  • G2 — g:A→B is g(1)=4, g(2)=4, g(3)=6; its codomain is still declared to be B={4,5,6}.
  • G3 — C={4,5}; question: does a bijection A→C exist?
  • G4 — MKO assumption a1: testing a given function and asking whether some bijection exists are distinct questions. a2: existence exercises use finite sets with nonnegative integer sizes; size zero on both sides permits the unique empty bijection.
  • f,g:A\to B — the two given total functions
  • f^{-1}(\{b\}) — the fiber {a∈A ∣ f(a)=b} of b; the notation does not presuppose that f is invertible
  • |S| — the number of elements of a finite set S
  • A=\{1,2,3\},\ B=\{4,5,6\},\ C=\{4,5\} — the domain and two codomains
  • \varnothing — the empty set

Rules and sources

  • function_def · prerequisite — Function: f:A→B assigns to each a∈A exactly one f(a)∈B. Two functions are equal ⇔ they have the same domain and codomain and agree at every a.
  • injective_surjective_def · prerequisite — Injective: f(a)=f(a′) ⇒ a=a′. Surjective: every b∈B has some a∈A with f(a)=b. Bijective: both; then there is a unique inverse f⁻¹ with f⁻¹∘f=id_A and f∘f⁻¹=id_B.
  • image_preimage_def · prerequisite — Image and preimage: f(S)={f(a) ∣ a∈S}; f⁻¹(T)={a∈A ∣ f(a)∈T}. The preimage notation does not presuppose that f has an inverse.
  • set_builder · prerequisite — Set-builder notation: x∈{y∈A ∣ P(y)} if and only if x∈A and P(x).
  • finite_counting_basics · prerequisite — Finite counting: for disjoint finite sets A, B, |A∪B|=|A|+|B|; |A×B|=|A|·|B|; there is a bijection between finite sets ⇔ they have the same number of elements.
  • numeric_evaluation · prerequisite — Exact evaluation of an explicit integer or rational expression; independently recomputable.
  • eq_refl_symm_trans · prerequisite — Properties of equality: u=u; if u=v then v=u; if u=v and v=w then u=w.
  • and_intro_elim · prerequisite — Conjunction: from P and Q infer P∧Q; from P∧Q infer P and infer Q.
  • order_basics · prerequisite — Order of the reals: exactly one of u<v, u=v, u>v holds; u<v and v<w give u<w; u<v gives u+w<v+w; u<v and w>0 give uw<vw; u<v and w<0 give uw>vw.
  • set_extensionality · prerequisite — Set equality: A=B if and only if A⊆B and B⊆A, i.e. they have the same elements.
  • forall_intro · prerequisite — ∀-introduction (generalization): if a statement is proved for an arbitrary element x, with no extra assumption on x, it holds for every x in the domain.
  • contrapositive · prerequisite — Contrapositive: P⇒Q is equivalent to ¬Q⇒¬P. The converse Q⇒P is in general not equivalent to P⇒Q.
  • quantifier_negation · prerequisite — Negating quantifiers: ¬(∀x, P(x)) is equivalent to ∃x, ¬P(x), and ¬(∃x, P(x)) is equivalent to ∀x, ¬P(x).
  • exists_intro · prerequisite — ∃-introduction: if some a∈D satisfies P(a), then ∃x∈D, P(x).
  • case_analysis · prerequisite — Proof by cases: if P∨Q holds and both P⇒R and Q⇒R are proved, then R holds. The cases must cover every possibility.
  • cartesian_product_def · prerequisite — Cartesian product: A×B is the set of ordered pairs (a,b) with a∈A and b∈B; (a,b)=(c,d) ⇔ a=c and b=d.
  • mko_bijective_def · cited — A total function f:A→B is bijective exactly when it is both injective and surjective, or equivalently when each fiber of b∈B has exactly one element. For finite sets, some bijection A→B exists exactly when |A|=|B|; equal cardinality does not make every specified f bijective. · mko-bijective
  • fiber_def · prerequisite — Fiber: for a function f:A→B and b∈B, the fiber of b is the preimage f^{-1}({b})={a∈A ∣ f(a)=b}; it is defined for every function and may be empty.
  • count_maps · prerequisite — Counting (multiplication principle): if |A|=m and |B|=n there are n^m functions A→B; if m=n, exactly n! of them are bijections.
  • L_inj_fiber · lemma — For a total function f:A→B: f is injective ⇔ the fiber of every b∈B has at most one element.
  • L_surj_fiber · lemma — For a total function f:A→B: f is surjective ⇔ the fiber of every b∈B has at least one element.
  • L_no_inj_3_2 · lemma — No function h:{1,2,3}→{4,5} is injective.

Main derivation

S01 · definition

Before

f,g\ \text{given by tables on}\ A=\{1,2,3\}

After

f,g:A\to B\ \text{total functions},\ B=\{4,5,6\}

Conditions: none

Rule: function_def · Uses: G1, G2

Leaf basis: function_def

First confirm that the data really are total functions: in the table of f, each of 1, 2, 3 appears exactly once, with values 5, 6, 4 in B; the table of g is the same, with values 4, 4, 6 in B. The codomain is the declared B={4,5,6}, not one read off from the values in the table, so 5, which g never takes, still belongs to the codomain.

S02 · definition

Before

b\in B

After

f^{-1}(\{b\})=\{a\in A\mid f(a)=b\}

Conditions: none

Rule: fiber_def · Uses: S01

Leaf basis: fiber_def + image_preimage_def + set_builder

For each target b of the codomain, define its fiber: all inputs that f sends to b. The complete fiber profile is indexed by the codomain targets and includes targets with no preimage (empty fibers). f^{-1}({b}) is only preimage notation and makes sense for non-invertible functions too.

S03 · equivalent

Before

f\ \text{injective}

After

\forall b\in B:\ |f^{-1}(\{b\})|\le 1

Conditions: none

Rule: L_inj_fiber · Uses: S02

Leaf basis: injective_surjective_def + set_builder + eq_refl_symm_trans

By Lemma L_inj_fiber, injectivity is restated as a condition on fibers: every fiber has at most one element. The two directions of the lemma are proved in S03.1 and S03.2 and hold for total functions on any sets, with no finiteness needed.

S04 · equivalent

Before

f\ \text{surjective}

After

\forall b\in B:\ |f^{-1}(\{b\})|\ge 1

Conditions: none

Rule: L_surj_fiber · Uses: S02

Leaf basis: injective_surjective_def + set_builder

By Lemma L_surj_fiber, surjectivity is restated as: every fiber has at least one element (is nonempty). The proof is in S04.1.

S05 · equivalent

Before

f\ \text{bijective}

After

\forall b\in B:\ |f^{-1}(\{b\})|=1

Conditions: none

Rule: mko_bijective_def · Uses: S03, S04

Leaf basis: injective_surjective_def + and_intro_elim + order_basics

Bijective means injective and surjective. Replacing each conjunct by the equivalences S03 and S04 gives: every b's fiber has both at most one element and at least one element, which is exactly having one element. This inference does not assume in advance that fibers are finite or that a general function's fiber size is a nonnegative integer. This is the equivalent characterization stated in the MKO.

S06 · equivalent

Before

f^{-1}(\{4\}),\ f^{-1}(\{5\}),\ f^{-1}(\{6\})

After

\{3\},\ \{1\},\ \{2\}

Conditions: none

Rule: set_builder · Uses: G1, S02

Leaf basis: set_builder + set_extensionality + numeric_evaluation

Scan the three elements of A: f(1)=5, f(2)=6, f(3)=4. Target 4 is reached only from 3, target 5 only from 1, and target 6 only from 2. A is finite and all three elements were checked, so each fiber has been found completely. The fiber profile of f (in the order 4, 5, 6) is (1,1,1).

S07 · implies

Before

|f^{-1}(\{4\})|=|f^{-1}(\{5\})|=|f^{-1}(\{6\})|=1

After

f\ \text{bijective}

Conditions: B=\{4,5,6\}

Rule: mko_bijective_def · Uses: S05, S06

Leaf basis: mko_bijective_def + forall_intro + and_intro_elim

B has exactly the three targets 4, 5, 6, and S06 shows that each of the three fibers has exactly one element, so 'every b∈B has a fiber with exactly one element' holds; by S05, f is bijective.

S08 · equivalent

Before

g^{-1}(\{4\}),\ g^{-1}(\{5\}),\ g^{-1}(\{6\})

After

\{1,2\},\ \varnothing,\ \{3\}

Conditions: none

Rule: set_builder · Uses: G2, S02

Leaf basis: set_builder + set_extensionality + numeric_evaluation

Scan g in the same way: g(1)=4, g(2)=4, g(3)=6. Target 4 is reached from 1 and from 2, target 6 only from 3, and target 5 from no input. The complete fiber profile of g (in the order 4, 5, 6) is (2,0,1), and the empty fiber must be listed.

S09 · implies

Before

|g^{-1}(\{4\})|=2

After

g\ \text{not injective}

Conditions: none

Rule: L_inj_fiber · Uses: S03, S08

Leaf basis: L_inj_fiber + contrapositive

The fiber g^{-1}({4})={1,2} has two elements, violating 'every fiber has at most one element'; by the contrapositive of the ⇒ direction of L_inj_fiber, g is not injective. Concrete witness: g(1)=g(2)=4 while 1≠2.

S10 · implies

Before

g^{-1}(\{5\})=\varnothing

After

g\ \text{not surjective}

Conditions: 5\in B

Rule: L_surj_fiber · Uses: S04, S08

Leaf basis: L_surj_fiber + contrapositive

5 belongs to the declared codomain B, but its fiber is empty; by L_surj_fiber, g is not surjective. So g fails both conditions and falls in the class 'neither'.

S11 · implies

Before

|A|=|B|=3,\ g\ \text{not bijective}

After

\neg\,\forall\varphi:A\to B\ (\varphi\ \text{bijective})

Conditions: none

Rule: quantifier_negation · Uses: G1, S09

Leaf basis: quantifier_negation + exists_intro

A and B both have three elements, so their sizes are equal; yet S09 shows g is not bijective. Hence the universal claim 'every function between finite sets of equal size is bijective' has the counterexample g and is false. This is MKO assumption a1: a given function cannot be judged from the sizes of the two sets alone.

S12 · implies

Before

|A|=3,\ |C|=2

After

\neg\exists h:A\to C\ \text{bijective}

Conditions: none

Rule: L_no_inj_3_2 · Uses: G3

Leaf basis: injective_surjective_def + contrapositive

Turn to the existence question. By Lemma L_no_inj_3_2, no h:A→C is injective, so none is bijective. This agrees with the prerequisite finite_counting_basics (3≠2), but here it is proved directly in S12.1 to S12.3 without that general theorem.

S13 · implies

Before

f:A\to B\ \text{bijective}

After

\exists\varphi:A\to B\ \text{bijective}

Conditions: none

Rule: exists_intro · Uses: S07

Leaf basis: exists_intro

The existence question 'is there some bijection A→B?' is answered by an explicit witness: S07 proved f is bijective, so one exists. This agrees with finite_counting_basics (|A|=|B|=3). Note that the answer says only 'some', and says nothing about whether g is bijective.

S14 · implies

Before

|A|=|B|=3

After

3^3=27\ \text{functions},\ 3!=6\ \text{bijections}

Conditions: none

Rule: count_maps · Uses: G1

Leaf basis: count_maps + numeric_evaluation

By the multiplication principle there are 3^3=27 functions A→B, of which 3!=6 are bijections, so 21 functions are not bijective, and g is one of them. Equal size only guarantees that some bijection exists; it does not make most functions bijective.

S15 · implies

Before

\varnothing\to\varnothing

After

\varepsilon=\varnothing\ \text{is the unique bijection}\ \varnothing\to\varnothing

Conditions: none

Rule: injective_surjective_def · Uses: G4, function_def

Leaf basis: function_def + injective_surjective_def + cartesian_product_def + forall_intro

A function ∅→∅ is a subset of ∅×∅=∅ in which every domain element has exactly one value; the domain has no elements, so the condition holds vacuously, and the only subset, ∅, is the only function, written ε. Injectivity holds vacuously (there are no two inputs to compare) and so does surjectivity (the codomain has no target to reach), so ε is a bijection; in terms of fibers, the codomain has no targets and 'every fiber has exactly one element' is vacuously true as well. This matches a2: when |∅|=0=|∅| there is the unique empty bijection.

S16 · implies

Before

\text{S07, S09, S10, S12, S13, S15}

After

f\ \text{bijective};\ g\ \text{neither};\ \exists\,A\to B;\ \nexists\,A\to C;\ \exists!\,\varnothing\to\varnothing

Conditions: none

Rule: and_intro_elim · Uses: S07, S09, S10, S12, S13, S15

Leaf basis: and_intro_elim

Collect the results under the two kinds of question. Given functions: f has fiber profile (1,1,1) and is bijective; g has fiber profile (2,0,1) and is neither injective nor surjective. Existence: a bijection A→B exists (witness f), none exists A→C, and exactly one exists ∅→∅.

Substeps and lemmas

S03.1 · implies

Before

f\ \text{injective},\ a,a'\in f^{-1}(\{b\})

After

a=a'

Conditions: none

Rule: injective_surjective_def · Uses: S02, injective_surjective_def, set_builder

Leaf basis: injective_surjective_def + set_builder + eq_refl_symm_trans

(⇒) Let f be injective and let a, a′ both lie in the fiber of b. By set-builder notation f(a)=b and f(a′)=b, so f(a)=f(a′); injectivity gives a=a′. Any two elements of the fiber are equal, so it has at most one element.

S03.2 · implies

Before

\forall b:\ |f^{-1}(\{b\})|\le 1,\ f(a)=f(a')

After

a=a'

Conditions: none

Rule: injective_surjective_def · Uses: S02, set_builder, function_def

Leaf basis: function_def + set_builder + injective_surjective_def

(⇐) Suppose every fiber has at most one element and f(a)=f(a′). Put b=f(a); since f is a function A→B, b∈B. By set-builder notation a and a′ both lie in the fiber of b, which has at most one element, so a=a′; that is, f is injective. S03.1 and S03.2 together prove Lemma L_inj_fiber.

S04.1 · equivalent

Before

\exists a\in A:\ f(a)=b

After

f^{-1}(\{b\})\neq\varnothing

Conditions: none

Rule: set_builder · Uses: S02, injective_surjective_def, set_builder

Leaf basis: set_builder + injective_surjective_def

Surjectivity means: every b∈B has some a∈A with f(a)=b. For fixed b, 'some a has f(a)=b' says exactly that the set {a∈A ∣ f(a)=b} has an element, i.e. the fiber is nonempty. Quantifying over all b gives Lemma L_surj_fiber.

S12.1 · case_split

Before

h:\{1,2,3\}\to\{4,5\}

After

h(1)=h(2)\ \lor\ h(1)\neq h(2)

Conditions: none

Rule: case_analysis · Uses: G3, function_def

Leaf basis: case_analysis + injective_surjective_def

Take any function h:A→C and split into two cases, which cover every possibility. Case 1, h(1)=h(2): since 1≠2, h is already not injective, and this case is done. Case 2, h(1)≠h(2), is handled in S12.2 and S12.3.

S12.2 · implies

Before

h(1)\neq h(2),\ h(1),h(2)\in\{4,5\}

After

\{h(1),h(2)\}=\{4,5\}

Conditions: none

Rule: case_analysis · Uses: S12.1, G3

Leaf basis: case_analysis + set_extensionality

Case 2: h(1) is 4 or 5. If h(1)=4 then h(2)≠4 and h(2)∈{4,5}, so h(2)=5; if h(1)=5 then likewise h(2)=4. Both sub-cases give {h(1),h(2)}={4,5}.

S12.3 · implies

Before

h(3)\in\{4,5\}=\{h(1),h(2)\}

After

h(3)=h(1)\ \lor\ h(3)=h(2)

Conditions: none

Rule: injective_surjective_def · Uses: S12.2

Leaf basis: injective_surjective_def + case_analysis + forall_intro

h(3) also lies in {4,5}={h(1),h(2)}, so h(3)=h(1) or h(3)=h(2); since 3≠1 and 3≠2, either way injectivity fails. Case 1 (S12.1) and Case 2 both show h is not injective, and h was arbitrary, so S12.1 to S12.3 prove Lemma L_no_inj_3_2.

Reverse audits

  • S16 · sufficient_goal_reduction · S07, S09, S10, S12, S13, S15, and_intro_elim — Goal G is the full set of verdicts in the goal. The sufficient condition H is the conjunction of the sub-results, each proved forwards from the givens in earlier steps; H⇒G uses only conjunction introduction and never takes G as a premise.
  • S15 · premise_audit · function_def, injective_surjective_def, cartesian_product_def, forall_intro — All conditions are universal statements over the empty set and hold vacuously; uniqueness comes from ∅×∅ having only one subset.
  • S14 · premise_audit · count_maps, numeric_evaluation — The counting rule is a prerequisite not proved here; this step is illustrative only, and the main conclusions S07 and S09 to S13 do not depend on it.
  • S13 · premise_audit · S07, exists_intro — Existential introduction needs one witness; the reverse (some bijection exists ⇒ every function is bijective) fails, as S11 shows by counterexample.
  • S12.3 · premise_audit · injective_surjective_def, case_analysis, forall_intro — Both cases reach the same conclusion and no extra assumption was put on h, so the conclusion generalizes to every h.
  • S12.2 · premise_audit · case_analysis, set_extensionality — What is used is that C has only two elements; the two sub-cases exhaust the possible values of h(1). The converse is not needed.
  • S12.1 · premise_audit · case_analysis, injective_surjective_def — The two cases, equal or not equal, are complementary and exhaustive; Case 1 is refuted directly by the definition of injective.
  • S12 · premise_audit · L_no_inj_3_2, injective_surjective_def — A bijection must be injective; since no h is injective, none is bijective. The step does not claim there is no surjection A→C (for example 1↦4, 2↦5, 3↦5 is one).
  • S11 · premise_audit · S09, quantifier_negation, exists_intro — One explicit counterexample suffices to refute a universal claim; the step does not claim that most functions fail to be bijective (that is the count in S14).
  • S10 · premise_audit · L_surj_fiber, S08, S01 — The conclusion relies on 5∈B; shrinking the codomain to {4,6} would give a different function and does not affect the verdict for the declared codomain.
  • S09 · premise_audit · L_inj_fiber, contrapositive, S08 — One fiber with more than one element suffices to refute injectivity; the step claims nothing about the other fibers.
  • S08 · inverse_equivalence · set_builder, set_extensionality, G2 — All three elements of A were checked against each target; the listed elements satisfy the condition and the others do not, so the sets agree element by element.
  • S07 · premise_audit · S05, S06, G1 — What is needed is that every target of the codomain was examined; all three elements of B appear in S06, so no target is missed. Only the ⇐ direction of S05 is used here.
  • S06 · inverse_equivalence · set_builder, set_extensionality, G1 — Each listed element satisfies f(a)=b and the other two elements of A were checked not to; by extensionality the sets on both sides are the same, so the step holds both ways.
  • S05 · inverse_equivalence · S03, S04, and_intro_elim, order_basics — Each conjunct is replaced by an equivalent condition, so the conjunction stays equivalent; for integers, n≤1 and n≥1 ⇔ n=1 holds both ways (antisymmetry and reflexivity).
  • S04.1 · inverse_equivalence · set_builder, injective_surjective_def — The membership condition of set-builder notation is itself two-way: an element of the fiber is the required a, and the required a is an element of the fiber.
  • S04 · inverse_equivalence · L_surj_fiber — The equivalence of S04.1 holds both ways for each b, and stays two-way after quantifying over all b.
  • S03.2 · premise_audit · function_def, set_builder, injective_surjective_def — The key point is that b=f(a) belongs to B, so that the hypothesis about every fiber of b∈B applies; this is guaranteed because f is a total function.
  • S03.1 · premise_audit · injective_surjective_def, set_builder, eq_refl_symm_trans — Only the definition of injective and symmetry and transitivity of equality are used; this is one direction, and the converse is proved separately in S03.2.
  • S03 · inverse_equivalence · L_inj_fiber — ⇒ is proved in S03.1 and ⇐ in S03.2; both directions have reasons, so this is an equivalence.
  • S02 · premise_audit · fiber_def, image_preimage_def — This only names a set that exists for every function; it does not claim that any fiber is nonempty or has one element.
  • S01 · premise_audit · G1, G2, function_def — This step only reads the tables and checks the two requirements of a function (every input has a value, and only one); it derives no new fact. Replacing the codomain by the set of values would change the surjectivity verdict later, so the codomain must be the declared one.

Error controls and negative controls

Equal sizes do not make a given function bijective

The misconception identified in the MKO is declaring a given f bijective straight from |A|=|B|. g is a counterexample: |A|=|B|=3, but g(1)=g(2)=4 and 5 has no preimage. Only 6 of the 27 functions A→B are bijections (S14). Equal size answers only whether some bijection exists (S13); a given function must be judged by its fibers.

Checking one condition is not enough

Checking only injectivity or only surjectivity can mislead. k:{1,2}→{4,5,6} with k(1)=4, k(2)=5 is injective, but the fiber of 6 is empty, so it is not surjective. For finite sets of equal size injective and surjective do imply each other, but that is a theorem needing its own proof and may not simply be assumed; it also fails for infinite sets, for example n↦n+1 on ℕ is injective but not surjective. This guide checks both conditions for f through its fiber profile.

Do not omit empty fibers

Listing only the values that occur in g's table gives 4↦{1,2} and 6↦{3} and misses the target 5. The fiber profile must run through the declared codomain, and the empty fiber of 5 is exactly the evidence that g is not surjective (S10).

  • |A|=|B|=3, so g is bijective → reject — g(1)=g(2)=4 with 1≠2, so g is not injective; the fiber of 5 is empty, so g is not surjective.
  • k:{1,2}→{4,5,6} with k(1)=4, k(2)=5 is injective, hence bijective → reject — The fiber of 6 is empty, so k is not surjective; moreover |{1,2}|=2≠3, so no bijection {1,2}→{4,5,6} exists at all.
  • g is not bijective, so no bijection A→B exists → reject — Testing a given function and existence are different questions; f is a bijection A→B (S07, S13).
  • There is no function between empty sets, so ∅→∅ has no bijection → reject — The empty function ε=∅ is the unique function ∅→∅; injectivity and surjectivity hold vacuously, so it is a bijection (S15).

Result and limitations

The fiber profile of f (in the order 4, 5, 6) is (1,1,1), so f is bijective; the fiber profile of g is (2,0,1), so g is neither injective (g(1)=g(2)) nor surjective (5 has no preimage), even though |A|=|B|=3. In general a total function is bijective exactly when every fiber has exactly one element (S05). Existence is a separate question: a bijection A→B exists (f), no bijection {1,2,3}→{4,5} exists (indeed no injection does), and ∅→∅ has exactly one, the empty bijection.

  • The general fact that finite sets admit a bijection exactly when they have the same number of elements is taken from the prerequisite finite_counting_basics and not proved here; this guide answers A→B by the witness f and proves directly that there is no injection from a 3-element set to a 2-element set.
  • The counting rule count_maps (27 and 6) is a prerequisite; S14 is illustrative and the main conclusions do not depend on it.

Verification and source binding

6 declared checks for this guide; only the listed expressions are covered.

  • source commit: b28a5edbd46279b1db2a3f3f48bb3f447e18899f
  • adopted source SHA-256: 3cc1ae7f0a2851556bf4390ecba06ec72251dbf8678c4accbd7061d54a693764
  • original source SHA-256: 3cc1ae7f0a2851556bf4390ecba06ec72251dbf8678c4accbd7061d54a693764
  • Lean: NOT_RUN · independent AI: NOT_MEASURED

Same-source full JSON (formulas, ASTs, controls and revision log)