Zulip Chat Archive
Stream: mathlib4
Topic: Naming consistency around `if_pos`/`ite_pos`
Emilie (Shad Amethyst) (Feb 15 2024 at 13:27):
It seems odd to me that docs#if_pos is the equivalent of docs#if_true (in std4), but docs#ite_pos refers to the ordering of if-then-else.
On top of that, most of the lemmas around docs#ite_pos and docs#ite_le_one are only used in three files (the positivity tactic, Archive/Sensitivity.lean and Order/Pi.lean),
and they seem to me like they could easily be substituted with four much more general lemmas (plus four more for dite):
ite_le : a ≤ x → b ≤ x → ite h a b ≤ xite_lt : a < x → b < x → ite h a b < xle_ite : x ≤ a → x ≤ b → x ≤ ite h a blt_ite
Removing ite_pos in favor of lt_ite & others would both remove the confusion about the meaning of pos in ite_pos and make those lemmas more general.
We could also use this opportunity to decide on a naming convention to stick to for if-then-else (if_xyz versus ite_xyz).
Ruben Van de Velde (Feb 15 2024 at 13:46):
We definitely want to keep the signature of if_pos if not the name
Yaël Dillies (Feb 15 2024 at 13:49):
Feel free to generalise ite_pos so long as the positivity extension still works
Mario Carneiro (Feb 15 2024 at 15:23):
I think if_true should be renamed to ite_true
Kevin Buzzard (Feb 15 2024 at 17:14):
How about \forall P, P a -> P b -> P (ite h a b) :-)
Last updated: May 02 2025 at 03:31 UTC