@@ -30,14 +30,13 @@ theorem mem_biInf {I : Type*} (s : Set I) (l : I → Language α) (x : List α)
3030 (x ∈ ⨅ i ∈ s, l i) ↔ ∀ i ∈ s, x ∈ l i :=
3131 mem_iInter₂
3232
33+ #adaptation_note
34+ /-- A grind regression found moving to nightly-2026-03-31 (changes from lean#13166) -/
3335@[simp]
3436theorem mem_biSup {I : Type *} (s : Set I) (l : I → Language α) (x : List α) :
35- (x ∈ ⨆ i ∈ s, l i) ↔ ∃ i ∈ s, x ∈ l i := by
36- constructor <;> intro h
37- · have := mem_iUnion₂.mp h
38- grind
39- · apply mem_iUnion₂.mpr
40- grind
37+ (x ∈ ⨆ i ∈ s, l i) ↔ ∃ i ∈ s, x ∈ l i where
38+ mp h := bex_def.mp (mem_iUnion₂.mp h)
39+ mpr h := mem_iUnion₂.mpr (bex_def.mpr h)
4140
4241theorem le_one_iff_eq : l ≤ 1 ↔ l = 0 ∨ l = 1 :=
4342 subset_singleton_iff_eq
@@ -50,17 +49,23 @@ theorem mem_sub_one (x : List α) : x ∈ (l - 1) ↔ x ∈ l ∧ x ≠ [] :=
5049theorem reverse_sub (l m : Language α) : (l - m).reverse = l.reverse - m.reverse := by
5150 ext x; simp [mem_sub]
5251
52+ #adaptation_note
53+ /-- A grind regression found moving to nightly-2026-03-31 (changes from lean#13166) -/
5354@ [scoped grind =]
5455theorem sub_one_mul : (l - 1 ) * l = l * l - 1 := by
5556 ext x; constructor
5657 · rintro ⟨u, h_u, v, h_v, rfl⟩
5758 constructor
58- · refine ⟨u, ?_, v, ?_⟩ <;> grind
59- · grind [append_eq_nil_iff, mem_one]
59+ · exact ⟨u, Set.mem_of_mem_inter_left h_u, v, h_v, rfl⟩
60+ · by_contra h
61+ have := mem_sub_one u |>.mp h_u
62+ have := mem_one (u ++ v) |>.mp h
63+ grind [append_eq_nil_iff]
6064 · rintro ⟨⟨u, h_u, v, h_v, rfl⟩, h_x⟩
6165 rcases eq_or_ne u [] with (rfl | h_u')
62- · refine ⟨v, ?_, [], ?_⟩ <;> grind [mem_sub, mem_one]
63- · refine ⟨u, ?_, v, ?_⟩ <;> grind
66+ · use v, (mem_sub l 1 v |>.mpr) ⟨h_v, Not.intro h_x⟩, []
67+ grind [mem_sub, mem_one]
68+ · use u, (mem_sub_one u).mpr ⟨h_u, h_u'⟩, v
6469
6570@ [scoped grind =]
6671theorem mul_sub_one : l * (l - 1 ) = l * l - 1 := by
@@ -70,15 +75,17 @@ theorem mul_sub_one : l * (l - 1) = l * l - 1 := by
7075 _ = (l.reverse * l.reverse - 1 ).reverse := by rw [sub_one_mul]
7176 _ = _ := by rw [reverse_sub, reverse_one, reverse_mul, reverse_reverse]
7277
78+ #adaptation_note
79+ /-- A grind regression found moving to nightly-2026-03-31 (changes from lean#13166) -/
7380@ [scoped grind =]
7481theorem kstar_sub_one : l∗ - 1 = (l - 1 ) * l∗ := by
7582 ext x; constructor
7683 · rintro ⟨h1, h2⟩
7784 obtain ⟨xl, rfl, h_xl⟩ := kstar_def_nonempty l ▸ h1
7885 have h3 : ¬ xl = [] := by grind [one_def]
7986 obtain ⟨x, xl', h_xl'⟩ := exists_cons_of_ne_nil h3
80- have := h_xl x
81- refine ⟨x, ?_ , xl'.flatten, ?_, ?_⟩ <;> grind [join_mem_kstar]
87+ subst h_xl'
88+ refine ⟨x, mem_preimage.mp (h_xl x ?_) , xl'.flatten, join_mem_kstar ?_, ?_⟩ <;> grind
8289 · rintro ⟨y, ⟨h_y, h_1⟩, z, h_z, rfl⟩
8390 refine ⟨?_, ?_⟩
8491 · apply (show l * l∗ ≤ l∗ by exact mul_kstar_le_kstar)
0 commit comments