@@ -192,13 +192,15 @@ theorem kstar_def_nonempty (l : Language α) :
192192theorem  le_iff  (l m : Language α) : l ≤ m ↔ l + m = m :=
193193  sup_eq_right.symm
194194
195- theorem  le_mul_congr  {l₁ l₂ m₁ m₂ : Language α} : l₁ ≤ m₁ → l₂ ≤ m₂ → l₁ * l₂ ≤ m₁ * m₂ := by 
196-   intro h₁ h₂ x hx
197-   simp only [mul_def, mem_image2] at hx ⊢
198-   tauto
195+ instance  : MulLeftMono (Language α) where 
196+   elim _ _ _ := image2_subset_left
199197
200- theorem  le_add_congr  {l₁ l₂ m₁ m₂ : Language α} : l₁ ≤ m₁ → l₂ ≤ m₂ → l₁ + l₂ ≤ m₁ + m₂ :=
201-   sup_le_sup
198+ instance  : MulRightMono (Language α) where 
199+   elim _ _ _ := image2_subset_right
200+ 
201+ @[deprecated mul_le_mul' (since := "2025-10-26")] 
202+ theorem  le_mul_congr  {l₁ l₂ m₁ m₂ : Language α} : l₁ ≤ m₁ → l₂ ≤ m₂ → l₁ * l₂ ≤ m₁ * m₂ :=
203+   mul_le_mul'
202204
203205theorem  mem_iSup  {ι : Sort  v} {l : ι → Language α} {x : List α} : (x ∈ ⨆ i, l i) ↔ ∃ i, x ∈ l i :=
204206  mem_iUnion
@@ -268,15 +270,19 @@ instance : KleeneAlgebra (Language α) :=
268270      | zero => simp
269271      | succ n ih =>
270272        rw [pow_succ, mul_assoc (l^n) l m]
271-         exact le_trans (le_mul_congr le_rfl h ) ih,
273+         exact le_trans (mul_le_mul_left' h _ ) ih,
272274    mul_kstar_le_self := fun  l m h ↦ by 
273275      rw [kstar_eq_iSup_pow, mul_iSup]
274276      refine iSup_le (fun  n ↦ ?_)
275277      induction n with 
276278      | zero => simp
277279      | succ n ih =>
278280        rw [pow_succ, ← mul_assoc m (l^n) l]
279-         exact le_trans (le_mul_congr ih le_rfl) h }
281+         exact le_trans (mul_le_mul_right' ih _) h }
282+ 
283+ @[deprecated add_le_add (since := "2025-10-26")] 
284+ theorem  le_add_congr  {l₁ l₂ m₁ m₂ : Language α} : l₁ ≤ m₁ → l₂ ≤ m₂ → l₁ + l₂ ≤ m₁ + m₂ :=
285+   add_le_add
280286
281287/-- **Arden's lemma**  -/ 
282288theorem  self_eq_mul_add_iff  {l m n : Language α} (hm : [] ∉ m) : l = m * l + n ↔ l = m∗ * n where 
0 commit comments