Skip to content

fix: disambiguate duplicate Verso labels in Section 5.4 - #640

Open
Chessing234 wants to merge 1 commit into
teorth:mainfrom
Chessing234:fix/section-5-4-verso-labels
Open

fix: disambiguate duplicate Verso labels in Section 5.4#640
Chessing234 wants to merge 1 commit into
teorth:mainfrom
Chessing234:fix/section-5-4-verso-labels

Conversation

@Chessing234

Copy link
Copy Markdown
Contributor

proposition 5.4.4 alone had seven declarations sharing one docstring label, so the rendered book repeats the same heading seven times in a row.

lettered the clusters the text leaves unlettered (examples 5.4.2, proposition 5.4.4) and added a short descriptor where the text already supplies a letter (definitions 5.4.1 / 5.4.5 / 5.4.6, proposition 5.4.7(a) and (e)).

comment-only, no statements or proofs touched.


Generated by Claude Code

Proposition 5.4.4 alone had seven declarations under one label, so the
rendered book repeats the same heading seven times. Letter the unlettered
clusters (Examples 5.4.2, Proposition 5.4.4) and add a short descriptor
where the text already supplies a letter (Definitions 5.4.1/5.4.5/5.4.6,
Proposition 5.4.7(a) and (e)).

Signed-off-by: Taksh <takshkothari09@gmail.com>
@teorth

teorth commented Aug 11, 2026

Copy link
Copy Markdown
Owner

Almost all of this is good — the descriptive qualifiers on Definition 5.4.1 (positive)/(negative), Definition 5.4.5 (positive case)/…, Definition 5.4.6, and the sub-qualifiers on Proposition 5.4.7(a)/(e) are exactly the right technique, and I would take those as-is.

The one hunk to change is Proposition 5.4.4, which this labels (a) through (g). In the text those letters are already taken, and they mean something different (ch5.tex):

Proposition [Basic properties of positive reals]. For every real number x, exactly one of the following three statements is true: (a) x is zero; (b) x is positive; (c) x is negative. A real number x is negative if and only if -x is positive. If x and y are positive, then so are x+y and xy.

So (a)/(b)/(c) label the three alternatives of the trichotomy, not three separate results — and there is no (d)–(g) at all. Under this PR, Real.not_zero_pos : ¬(x = 0 ∧ x.IsPos) becomes "Proposition 5.4.4(b)", but a reader who looks that up finds "(b) x is positive".

Descriptive qualifiers of the kind you already use elsewhere in this very PR would fit well, e.g.

Proposition 5.4.4 (trichotomy, at least one) / Exercise 5.4.1     -- Real.trichotomous
Proposition 5.4.4 (trichotomy, zero/positive exclusive)          -- Real.not_zero_pos
Proposition 5.4.4 (trichotomy, zero/negative exclusive)          -- Real.not_zero_neg
Proposition 5.4.4 (trichotomy, positive/negative exclusive)      -- Real.not_pos_neg
Proposition 5.4.4 (negation)                                     -- Real.neg_iff_pos_of_neg
Proposition 5.4.4 (sum)                                          -- Real.pos_add
Proposition 5.4.4 (product)                                      -- Real.pos_mul

Any equivalent wording is fine — the point is just not to reuse (a)/(b)/(c) for a different decomposition.

Worth flagging that #616 has the same issue elsewhere in this file: it labels Exercise 5.4.9 (a)(f), where the text gives that exercise parts (i)–(iv) (it is one of the few exercises Tao numbers with romans). If you are touching Section_5_4.lean anyway, folding that correction in here would be welcome.

For reference, #639 is the model — it keeps the book’s real letters for Proposition 4.3.3(a)/(c)/(d)/(e)/(g) and adds descriptive qualifiers only to separate declarations sharing a letter. I merged that one, along with 14 others today.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants