@@ -127,14 +127,13 @@ lemma chain_property_set_has_bound (k : ℤ) :
127127 simpa using h
128128 have : (⋃ s ∈ c,s) ∪ (if k = S then ({o} : Set X) else ∅) = (⋃ s ∈ c,s) := by
129129 ext x
130- rw [mem_union,mem_iUnion]
131130 constructor
132131 · rintro (l | r)
133132 · exact l
134133 simp only [mem_ite_empty_right, mem_singleton_iff] at r
135134 obtain ⟨z, hz⟩ := h
136135 rw [r.right]
137- simp only [mem_iUnion, exists_prop]
136+ push _ ∈ _
138137 use z, hz
139138 specialize hc hz
140139 dsimp only [property_set] at hc
@@ -152,15 +151,15 @@ lemma chain_property_set_has_bound (k : ℤ) :
152151 exact hc.left
153152 constructor
154153 · intro x hx y hy
155- simp only [mem_iUnion, exists_prop] at hx hy
154+ push _ ∈ _ at hx hy
156155 obtain ⟨sx, hsx, hsx'⟩ := hx
157156 obtain ⟨sy, hsy, hsy'⟩ := hy
158157 obtain hxy | hyx := hchain.total hsx hsy
159158 · exact (hc hsy).right.left (hxy hsx') hsy'
160159 · exact (hc hsx).right.left hsx' (hyx hsy')
161160 · obtain ⟨x,hx⟩ := h
162161 intro hk
163- simp only [defaultA, mem_iUnion, exists_prop]
162+ push _ ∈ _
164163 exact ⟨x, hx, (hc hx).right.right hk⟩
165164 · exact fun s a ↦ subset_iUnion₂_of_subset s a fun ⦃a⦄ a ↦ a
166165
@@ -212,7 +211,7 @@ lemma cover_big_ball (k : ℤ) : ball o (4 * D ^ S - D ^ k) ⊆ ⋃ y ∈ Yk X k
212211 left
213212 exact o_mem_Yk_S
214213 obtain ⟨z,hz,hz'⟩ := this
215- simp only [mem_iUnion, mem_ball, exists_prop]
214+ push _ ∈ _
216215 use z, hz
217216 rw [Set.not_disjoint_iff] at hz'
218217 obtain ⟨x,hx,hx'⟩ := hz'
@@ -337,9 +336,8 @@ lemma I3_subset_I2 {k : ℤ} (hk : -S ≤ k) (y : Yk X k) :
337336 I3 hk y ⊆ I2 hk y := by
338337 intro x hx
339338 rw [I3] at hx
340- simp only [mem_union, mem_diff, mem_iUnion, exists_prop, not_or, not_exists,
341- not_and] at hx
342- obtain l|r := hx
339+ push _ ∈ _ at hx
340+ obtain l | r := hx
343341 · exact I1_subset_I2 hk y l
344342 · exact r.left
345343
@@ -405,7 +403,7 @@ mutual
405403 linarith
406404 rw [dif_neg hk_s, dif_neg hk_s]
407405 intro hx
408- simp only [mem_preimage, mem_inter_iff, mem_iUnion, exists_prop] at hx
406+ push _ ∈ _ at hx
409407 obtain ⟨⟨z1, hz1, hz1'⟩, ⟨z2, hz2, hz2'⟩⟩ := hx
410408 have hz_eq : z1 = z2 := I3_prop_1 (I_induction_proof hk hk_s) ⟨hz1', hz2'⟩
411409 subst hz_eq
@@ -421,8 +419,8 @@ mutual
421419 have hx' := hx
422420 rw [I3,I3] at hx
423421 obtain ⟨hl,hr⟩ := hx'
424- simp only [mem_inter_iff, mem_union, mem_diff, mem_iUnion, exists_prop, not_or,
425- not_exists, not_and ] at hx
422+ push _ ∈ _ at hx
423+ simp only [not_or, not_exists ] at hx
426424 by_cases hx_mem_Xk : x ∈ Xk hk
427425 · rw [not_iff_false_intro hx_mem_Xk] at hx
428426 simp_rw [false_and,and_false,or_false] at hx
@@ -449,7 +447,7 @@ lemma I3_prop_3_2 {k : ℤ} (hk : -S ≤ k) (y : Yk X k) :
449447 revert this
450448 apply ball_subset_ball (by gcongr; norm_num)
451449 · rw [dif_neg hk_s] at this
452- simp only [mem_preimage, mem_iUnion, exists_prop] at this
450+ push _ ∈ _ at this
453451 obtain ⟨y',hy',hyi3⟩ := this
454452 have : -S ≤ k - 1 := I_induction_proof hk hk_s
455453 have : x ∈ ball (y' : X) (4 * D ^ (k-1 )) := I3_prop_3_2 _ y' hyi3
@@ -556,11 +554,12 @@ mutual
556554 have hx_notMem_i1 : ∀ y',x ∉ I1 hk y' := by
557555 simp only [Xk,mem_iUnion, not_exists] at hx_mem_Xk
558556 exact hx_mem_Xk
559- simp only [mem_union, mem_diff, mem_iUnion, exists_prop, not_or, not_exists,
560- not_and ]
557+ push _ ∈ _
558+ simp only [not_or, not_exists ]
561559 refine Or.inr ⟨hy_i2,hx_mem_Xk, fun y' hy' ↦ ?_⟩
562560 rw [I3]
563- simp only [mem_union, mem_diff, mem_iUnion, exists_prop, not_or, not_exists, not_and]
561+ push _ ∈ _
562+ simp only [not_or, not_exists, not_and]
564563 exact ⟨hx_notMem_i1 y', fun hy_i2' _ _ ↦ hy_min y' hy_i2' hy'⟩
565564 termination_by (2 * (S + k)).toNat + 1
566565end
@@ -653,10 +652,10 @@ lemma cover_by_cubes {l : ℤ} (hl : -S ≤ l) :
653652 intro hk1 y x hx
654653 have h : -S < k + 1 := by linarith
655654 have : x ∈ I2 hk1 y := I3_subset_I2 hk1 y hx
656- rw [I2,dif_neg h.ne.symm ] at this
657- simp only [mem_preimage, mem_iUnion, exists_prop] at this
658- obtain ⟨z,_, hz'⟩ := this
659- specialize hind (I_induction_proof hk1 h.ne.symm ) z hz'
655+ rw [I2, dif_neg h.ne' ] at this
656+ push _ ∈ _ at this
657+ obtain ⟨z, _, hz'⟩ := this
658+ specialize hind (I_induction_proof hk1 h.ne' ) z hz'
660659 exact hind
661660
662661lemma dyadic_property {l : ℤ} (hl : -S ≤ l) {k : ℤ} (hl_k : l ≤ k) :
@@ -687,13 +686,13 @@ lemma dyadic_property {l : ℤ} (hl : -S ≤ l) {k : ℤ} (hl_k : l ≤ k) :
687686 by_cases hx_mem_Xk : x ∈ Xk hk
688687 · have hx_i1: x ∈ I1 hk y := by
689688 rw [I3] at hxk
690- simp only [mem_union, mem_diff, mem_iUnion, exists_prop, not_or, not_exists,
691- not_and ] at hxk
689+ push _ ∈ _ at hxk
690+ simp only [not_or, not_exists ] at hxk
692691 rw [not_iff_false_intro hx_mem_Xk,false_and,and_false,or_false] at hxk
693692 exact hxk
694693 rw [I1] at hx_i1
695694 rw [dif_neg hk_not_neg_s] at hx_i1
696- simp only [mem_preimage, mem_iUnion, exists_prop] at hx_i1
695+ push _ ∈ _ at hx_i1
697696 obtain ⟨u, hu, hu'⟩ := hx_i1
698697 have hxy'' : x ∈ I3 _ y'' := this hxl
699698 have : y'' = u := by
@@ -703,16 +702,16 @@ lemma dyadic_property {l : ℤ} (hl : -S ≤ l) {k : ℤ} (hl_k : l ≤ k) :
703702 apply Subset.trans _ (I1_subset_I3 _ _)
704703 rw [I1,dif_neg hk_not_neg_s]
705704 intro x' hx'
706- simp only [mem_preimage, mem_iUnion, exists_prop]
705+ push _ ∈ _
707706 use y''
708707 · have hx_notMem_i1 (y_1 : Yk X k) : x ∉ I1 hk y_1 := by
709708 rw [Xk] at hx_mem_Xk
710709 simp only [mem_iUnion, not_exists] at hx_mem_Xk
711710 exact hx_mem_Xk y_1
712711 have hx_mem_i2_and : x ∈ I2 hk y ∧ ∀ u < y, x ∉ I3 hk u:= by
713712 rw [I3] at hxk
714- simp only [mem_union, mem_diff, mem_iUnion, exists_prop, not_or, not_exists,
715- not_and ] at hxk
713+ push _ ∈ _ at hxk
714+ simp only [not_or, not_exists ] at hxk
716715 rw [iff_false_intro (hx_notMem_i1 y), iff_true_intro hx_mem_Xk, false_or, true_and] at hxk
717716 exact hxk
718717 have hx_mem_i2 := hx_mem_i2_and.left
@@ -721,32 +720,33 @@ lemma dyadic_property {l : ℤ} (hl : -S ≤ l) {k : ℤ} (hl_k : l ≤ k) :
721720 intro u hu
722721 specialize hx_notMem_i3_u u hu
723722 rw [I3] at hx_notMem_i3_u
724- simp only [mem_union, mem_diff, mem_iUnion, exists_prop, not_or, not_exists, not_and,
725- not_forall, not_not] at hx_notMem_i3_u
723+ push _ ∈ _ at hx_notMem_i3_u
724+ -- xxx: can push_neg help here?
725+ simp only [not_or, not_exists, not_and, not_forall, not_not] at hx_notMem_i3_u
726726 rw [iff_true_intro (hx_notMem_i1 u),iff_true_intro hx_mem_Xk] at hx_notMem_i3_u
727727 rw [true_and,true_implies] at hx_notMem_i3_u
728728 intro h
729729 obtain ⟨v, hv, hv'⟩ := hx_notMem_i3_u h
730730 exact hx_mem_i2_and.right v (hv.trans hu) hv'
731731 rw [I2, dif_neg hk_not_neg_s] at hx_mem_i2
732- simp only [mem_preimage, mem_iUnion, exists_prop] at hx_mem_i2
732+ push _ ∈ _ at hx_mem_i2
733733 obtain ⟨u, hu, hxu⟩ := hx_mem_i2
734734 obtain rfl : y'' = u := by
735735 apply I3_prop_1 (I_induction_proof hk hk_not_neg_s)
736736 use hy''
737737 have : I3 (I_induction_proof hk hk_not_neg_s) y'' ∩ Xk hk = ∅ := by
738738 ext x'
739- simp only [mem_inter_iff, mem_empty_iff_false, iff_false, not_and]
739+ push _ ∈ _; simp only [iff_false, not_and]
740740 intro hx_i3' hx_xk'
741741 apply hx_mem_Xk
742742 rw [Xk] at hx_xk' ⊢
743743 simp only [mem_iUnion] at hx_xk' ⊢
744744 obtain ⟨u, hu⟩ := hx_xk'
745745 use u
746746 rw [I1,dif_neg hk_not_neg_s] at hu ⊢
747- simp only [mem_preimage, mem_iUnion, exists_prop] at hu ⊢
747+ push _ ∈ _ at hu ⊢
748748 obtain ⟨u', hu', hu''⟩ := hu
749- use u',hu'
749+ use u', hu'
750750 obtain rfl : u' = y'' := I3_prop_1 (I_induction_proof hk hk_not_neg_s) (And.intro hu'' hx_i3')
751751 exact hxu
752752 intro x' hx'
@@ -757,8 +757,8 @@ lemma dyadic_property {l : ℤ} (hl : -S ≤ l) {k : ℤ} (hl_k : l ≤ k) :
757757 rw [← this]
758758 exact mem_inter hx' hcontra
759759 exact this
760- simp only [mem_union, mem_diff, mem_iUnion, exists_prop, not_or, not_exists,
761- not_and,iff_true_intro hx_not_xk, true_and]
760+ push _ ∈ _
761+ simp only [exists_prop, not_or, not_exists, not_and, iff_true_intro hx_not_xk, true_and]
762762 right
763763 constructor
764764 · rw [I2, dif_neg hk_not_neg_s]
@@ -772,14 +772,14 @@ lemma dyadic_property {l : ℤ} (hl : -S ≤ l) {k : ℤ} (hl_k : l ≤ k) :
772772 simp only [mem_iUnion]
773773 use u
774774 rw [I3]
775- simp only [mem_union, mem_diff, mem_iUnion, exists_prop, not_or, not_exists, not_and,
776- not_forall]
775+ push _ ∈ _
776+ simp only [exists_prop, not_or, not_exists, not_and, not_forall]
777777 rw [iff_true_intro hx_not_xk, iff_true_intro hx_not_i1', true_and, true_implies]
778778 intro hx_i2'
779779 by_contra
780780 apply hx_notMem_i2_u u hu
781781 rw [I2, dif_neg hk_not_neg_s] at hx_i2' ⊢
782- simp only [mem_preimage, mem_iUnion] at hx_i2' ⊢
782+ push _ ∈ _ at hx_i2' ⊢
783783 obtain ⟨z,hz,hz'⟩ := hx_i2'
784784 use z, hz
785785 suffices z = y'' by
0 commit comments