Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 19dd4be

Browse files
committed
chore(tactic/reserved_notation): change precedence of sup and inf (#10623)
Put the precedence of `⊔` and `⊓` at 68 and 69 respectively, which is above `+` (65), `∑` and `∏` (67), and below `*` (70). This makes sure that inf and sup behave in the same way in expressions where arithmetic operations appear (which was not the case before). Discussion: https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/inf.20and.20sup.20don't.20bind.20similarly Co-authored-by: Rémy Degenne <remydegenne@gmail.com>
1 parent 61b0f41 commit 19dd4be

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

src/algebra/lattice_ordered_group.lean

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,10 @@ by rw [← inv_inv (a⁻¹ ⊔ b⁻¹), inv_sup_eq_inv_inf_inv a⁻¹ b⁻¹, in
108108
-- Bourbaki A.VI.10 Prop 7
109109
-- a ⊓ b + (a ⊔ b) = a + b
110110
@[to_additive]
111-
lemma inf_mul_sup [covariant_class α α (*) (≤)] (a b : α) : a ⊓ b * (a ⊔ b) = a * b :=
112-
calc a ⊓ b * (a ⊔ b) = a ⊓ b * ((a * b) * (b⁻¹ ⊔ a⁻¹)) :
111+
lemma inf_mul_sup [covariant_class α α (*) (≤)] (a b : α) : (a ⊓ b) * (a ⊔ b) = a * b :=
112+
calc (a ⊓ b) * (a ⊔ b) = (a ⊓ b) * ((a * b) * (b⁻¹ ⊔ a⁻¹)) :
113113
by { rw mul_sup b⁻¹ a⁻¹ (a * b), simp, }
114-
... = a ⊓ b * ((a * b) * (a ⊓ b)⁻¹) : by rw [inv_inf_eq_sup_inv, sup_comm]
114+
... = (a ⊓ b) * ((a * b) * (a ⊓ b)⁻¹) : by rw [inv_inf_eq_sup_inv, sup_comm]
115115
... = a * b : by rw [mul_comm, inv_mul_cancel_right]
116116

117117
namespace lattice_ordered_comm_group
@@ -372,8 +372,8 @@ theorem abs_div_sup_mul_abs_div_inf [covariant_class α α (*) (≤)] (a b c :
372372
|(a ⊔ c) / (b ⊔ c)| * |(a ⊓ c) / (b ⊓ c)| = |a / b| :=
373373
begin
374374
letI : distrib_lattice α := lattice_ordered_comm_group_to_distrib_lattice α,
375-
calc |(a ⊔ c) / (b ⊔ c)| * |a ⊓ c / (b ⊓ c)| =
376-
((b ⊔ c ⊔ (a ⊔ c)) / ((b ⊔ c) ⊓ (a ⊔ c))) * |a ⊓ c / (b ⊓ c)| : by rw sup_div_inf_eq_abs_div
375+
calc |(a ⊔ c) / (b ⊔ c)| * |(a ⊓ c) / (b ⊓ c)| =
376+
((b ⊔ c ⊔ (a ⊔ c)) / ((b ⊔ c) ⊓ (a ⊔ c))) * |(a ⊓ c) / (b ⊓ c)| : by rw sup_div_inf_eq_abs_div
377377
... = (b ⊔ c ⊔ (a ⊔ c)) / ((b ⊔ c) ⊓ (a ⊔ c)) * (((b ⊓ c) ⊔ (a ⊓ c)) / ((b ⊓ c) ⊓ (a ⊓ c))) :
378378
by rw sup_div_inf_eq_abs_div (b ⊓ c) (a ⊓ c)
379379
... = (b ⊔ a ⊔ c) / ((b ⊓ a) ⊔ c) * (((b ⊔ a) ⊓ c) / (b ⊓ a ⊓ c)) : by
@@ -383,7 +383,7 @@ begin
383383
nth_rewrite 3 inf_comm,
384384
rw [inf_right_idem, inf_assoc], }
385385
... = (b ⊔ a ⊔ c) * ((b ⊔ a) ⊓ c) /(((b ⊓ a) ⊔ c) * (b ⊓ a ⊓ c)) : by rw div_mul_comm
386-
... = (b ⊔ a) * c / (b ⊓ a * c) :
386+
... = (b ⊔ a) * c / ((b ⊓ a) * c) :
387387
by rw [mul_comm, inf_mul_sup, mul_comm (b ⊓ a ⊔ c), inf_mul_sup]
388388
... = (b ⊔ a) / (b ⊓ a) : by rw [div_eq_mul_inv, mul_inv_rev, mul_assoc, mul_inv_cancel_left,
389389
← div_eq_mul_inv]

src/tactic/reserved_notation.lean

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,10 @@ precedence `?`:max
5151
precedence `fixing`:0
5252

5353
-- used in `order/lattice.lean`
54-
reserve infixl ` ⊓ `:70
55-
reserve infixl ` ⊔ `:65
54+
-- These priorities are chosen to be above `+`, `∑`, and `∏`, but below `*`. There is no particular
55+
-- reason for this choice.
56+
reserve infixl ` ⊓ `:69
57+
reserve infixl ` ⊔ `:68
5658

5759
-- used in `algebra/module/linear_map.lean`
5860
reserve infix ` ≃ₗ `:25

0 commit comments

Comments
 (0)