Zulip Chat Archive

Stream: new members

Topic: Style/usability question on multiple related theorems


J. J. Issai (project started by GRP) (Feb 14 2026 at 20:54):

I have at least three choices for formalizing a result involving natural numbers:

theorem option_1 (assumptions_1) : \forall j (A(j) \and B(j) ) := by sorry_1

theorem option_2 (assumptions_1): \forall j A(j) \and \forall j B(j) := by sorry_2

theorem option_3a (assumptions_1) : \forall j A(j) := by sorry_3
theorem option_3b (assumptions_1):\forall j B(j) := by sorry_4

For concision, I would prefer option 1 or option 2. For use, I will want both option3a and option 3b (I almost never need both in the same section of proof). If A(j) and B(j) are of interest in including in Mathlib, what form is preferred and why? Or would all three options be of use?

If it matters, for j sufficiently large, B(j) implies A(j). Also, if \forall is moved into the assumptions this effectively becomes options 1 and 3ab.

Snir Broshi (Feb 14 2026 at 21:01):

AFAIK Mathlib (and I think ITPs in general) prefer option 3, since it's easier to use

Snir Broshi (Feb 14 2026 at 21:03):

Similar to how (A ∧ B) → ... is discouraged over A → B → ....
I think is mostly used under

J. J. Issai (project started by GRP) (Feb 14 2026 at 21:04):

@Snir Broshi: Thanks. If I went with option 3ab and needed to show option1, what is a good idiom for this?

Snir Broshi (Feb 14 2026 at 21:05):

Well you can do fun j ↦ ⟨option_3a assumptions_1 j, option_3b assumptions_1 j⟩, and there's probably a small theorem that can even convert it for you if you prefer

J. J. Issai (project started by GRP) (Feb 14 2026 at 21:05):

And to be clear

Snir Broshi said:

Similar to how (A ∧ B) → ... is discouraged over A → B → ....
I think is mostly used under

the first option with \and is discouraged and the option with \implies is encouraged? (making sure I understand)

Snir Broshi (Feb 14 2026 at 21:05):

You can use docs#forall_and to convert if it's shorter than the manual option I wrote above


Last updated: Feb 28 2026 at 14:05 UTC