1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: PartialHomeomorph.continuousOn_extend
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: refine I.continuous.comp_continuousOn ?_
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : TopologicalSpace H
inst✝⁴ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
inst✝¹ : TopologicalSpace H'
inst✝ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
⊢ ContinuousOn (↑(f.extend I)) (f.extend I).source
state_after: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : TopologicalSpace H
inst✝⁴ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
inst✝¹ : TopologicalSpace H'
inst✝ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
⊢ ContinuousOn (↑(f.symm.restr I.source).symm) (f.extend I).source

tactic: rw [extend_source]
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : TopologicalSpace H
inst✝⁴ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
inst✝¹ : TopologicalSpace H'
inst✝ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
⊢ ContinuousOn (↑(f.symm.restr I.source).symm) (f.extend I).source
state_after: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : TopologicalSpace H
inst✝⁴ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
inst✝¹ : TopologicalSpace H'
inst✝ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
⊢ ContinuousOn (↑(f.symm.restr I.source).symm) f.source

tactic: exact f.continuousOn
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : TopologicalSpace H
inst✝⁴ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
inst✝¹ : TopologicalSpace H'
inst✝ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
⊢ ContinuousOn (↑(f.symm.restr I.source).symm) f.source
state_after: no goals
Theorem: CategoryTheory.MorphismProperty.monomorphisms.iff
File: Mathlib/CategoryTheory/MorphismProperty/Basic.lean

tactic: rfl
state_before: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u_1
inst✝ : Category.{?u.26921, u_1} D
X Y : C
f : X ⟶ Y
⊢ monomorphisms C f ↔ Mono f
state_after: no goals
Theorem: OrderIso.map_sSup_eq_sSup_symm_preimage
File: Mathlib/Order/CompleteLattice.lean

tactic: rw [map_sSup, ← sSup_image, f.image_eq_preimage]
state_before: α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝¹ : CompleteLattice α
f✝ g s✝ t : ι → α
a b : α
inst✝ : CompleteLattice β
f : α ≃o β
s : Set α
⊢ f (sSup s) = sSup (⇑f.symm ⁻¹' s)
state_after: no goals
Theorem: CategoryTheory.kernel.ι_unop
File: Mathlib/CategoryTheory/Abelian/Opposite.lean

tactic: simp
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Abelian C
X Y : C
f : X ⟶ Y
A B : Cᵒᵖ
g : A ⟶ B
⊢ (kernel.ι g.unop).op = eqToHom ⋯ ≫ cokernel.π g ≫ (kernelUnopOp g).inv
state_after: no goals
Theorem: Pi.update_eq_div_mul_mulSingle
File: Mathlib/Algebra/Group/Pi/Lemmas.lean

tactic: ext j
state_before: ι : Type u_1
α : Type u_2
I : Type u
f : I → Type v
x✝ y : (i : I) → f i
i j : I
inst✝¹ : DecidableEq I
inst✝ : (i : I) → Group (f i)
g : (i : I) → f i
x : f i
⊢ Function.update g i x = g / mulSingle i (g i) * mulSingle i x
state_after: case h
ι : Type u_1
α : Type u_2
I : Type u
f : I → Type v
x✝ y : (i : I) → f i
i j✝ : I
inst✝¹ : DecidableEq I
inst✝ : (i : I) → Group (f i)
g : (i : I) → f i
x : f i
j : I
⊢ Function.update g i x j = (g / mulSingle i (g i) * mulSingle i x) j

tactic: rcases eq_or_ne i j with (rfl | h)
state_before: case h
ι : Type u_1
α : Type u_2
I : Type u
f : I → Type v
x✝ y : (i : I) → f i
i j✝ : I
inst✝¹ : DecidableEq I
inst✝ : (i : I) → Group (f i)
g : (i : I) → f i
x : f i
j : I
⊢ Function.update g i x j = (g / mulSingle i (g i) * mulSingle i x) j
state_after: case h.inl
ι : Type u_1
α : Type u_2
I : Type u
f : I → Type v
x✝ y : (i : I) → f i
i j : I
inst✝¹ : DecidableEq I
inst✝ : (i : I) → Group (f i)
g : (i : I) → f i
x : f i
⊢ Function.update g i x i = (g / mulSingle i (g i) * mulSingle i x) i

case h.inr
ι : Type u_1
α : Type u_2
I : Type u
f : I → Type v
x✝ y : (i : I) → f i
i j✝ : I
inst✝¹ : DecidableEq I
inst✝ : (i : I) → Group (f i)
g : (i : I) → f i
x : f i
j : I
h : i ≠ j
⊢ Function.update g i x j = (g / mulSingle i (g i) * mulSingle i x) j

tactic: simp
state_before: case h.inl
ι : Type u_1
α : Type u_2
I : Type u
f : I → Type v
x✝ y : (i : I) → f i
i j : I
inst✝¹ : DecidableEq I
inst✝ : (i : I) → Group (f i)
g : (i : I) → f i
x : f i
⊢ Function.update g i x i = (g / mulSingle i (g i) * mulSingle i x) i
state_after: no goals

tactic: simp [Function.update_noteq h.symm, h]
state_before: case h.inr
ι : Type u_1
α : Type u_2
I : Type u
f : I → Type v
x✝ y : (i : I) → f i
i j✝ : I
inst✝¹ : DecidableEq I
inst✝ : (i : I) → Group (f i)
g : (i : I) → f i
x : f i
j : I
h : i ≠ j
⊢ Function.update g i x j = (g / mulSingle i (g i) * mulSingle i x) j
state_after: no goals
Theorem: Irrational.add_cases
File: Mathlib/Data/Real/Irrational.lean

tactic: delta Irrational
state_before: q : ℚ
x y : ℝ
⊢ Irrational (x + y) → Irrational x ∨ Irrational y
state_after: q : ℚ
x y : ℝ
⊢ x + y ∉ Set.range Rat.cast → x ∉ Set.range Rat.cast ∨ y ∉ Set.range Rat.cast

tactic: contrapose!
state_before: q : ℚ
x y : ℝ
⊢ x + y ∉ Set.range Rat.cast → x ∉ Set.range Rat.cast ∨ y ∉ Set.range Rat.cast
state_after: q : ℚ
x y : ℝ
⊢ x ∈ Set.range Rat.cast ∧ y ∈ Set.range Rat.cast → x + y ∈ Set.range Rat.cast

tactic: rintro ⟨⟨rx, rfl⟩, ⟨ry, rfl⟩⟩
state_before: q : ℚ
x y : ℝ
⊢ x ∈ Set.range Rat.cast ∧ y ∈ Set.range Rat.cast → x + y ∈ Set.range Rat.cast
state_after: case intro.intro.intro
q rx ry : ℚ
⊢ ↑rx + ↑ry ∈ Set.range Rat.cast

tactic: exact ⟨rx + ry, cast_add rx ry⟩
state_before: case intro.intro.intro
q rx ry : ℚ
⊢ ↑rx + ↑ry ∈ Set.range Rat.cast
state_after: no goals
Theorem: Orientation.inner_rightAngleRotation_right
File: Mathlib/Analysis/InnerProductSpace/TwoDim.lean

tactic: rw [rightAngleRotation]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
⊢ ⟪x, o.rightAngleRotation y⟫_ℝ = -(o.areaForm x) y
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
⊢ ⟪x, (LinearIsometryEquiv.ofLinearIsometry o.rightAngleRotationAux₂ (-o.rightAngleRotationAux₁) ⋯ ⋯) y⟫_ℝ =
    -(o.areaForm x) y

tactic: exact o.inner_rightAngleRotationAux₁_right x y
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
⊢ ⟪x, (LinearIsometryEquiv.ofLinearIsometry o.rightAngleRotationAux₂ (-o.rightAngleRotationAux₁) ⋯ ⋯) y⟫_ℝ =
    -(o.areaForm x) y
state_after: no goals
Theorem: Nat.perfect_iff_sum_divisors_eq_two_mul
File: Mathlib/NumberTheory/Divisors.lean

tactic: rw [perfect_iff_sum_properDivisors h, sum_divisors_eq_sum_properDivisors_add_self, two_mul]
state_before: n : ℕ
h : 0 < n
⊢ n.Perfect ↔ ∑ i ∈ n.divisors, i = 2 * n
state_after: n : ℕ
h : 0 < n
⊢ ∑ i ∈ n.properDivisors, i = n ↔ ∑ i ∈ n.properDivisors, i + n = n + n

tactic: constructor <;> intro h
state_before: n : ℕ
h : 0 < n
⊢ ∑ i ∈ n.properDivisors, i = n ↔ ∑ i ∈ n.properDivisors, i + n = n + n
state_after: case mp
n : ℕ
h✝ : 0 < n
h : ∑ i ∈ n.properDivisors, i = n
⊢ ∑ i ∈ n.properDivisors, i + n = n + n

case mpr
n : ℕ
h✝ : 0 < n
h : ∑ i ∈ n.properDivisors, i + n = n + n
⊢ ∑ i ∈ n.properDivisors, i = n

tactic: rw [h]
state_before: case mp
n : ℕ
h✝ : 0 < n
h : ∑ i ∈ n.properDivisors, i = n
⊢ ∑ i ∈ n.properDivisors, i + n = n + n
state_after: no goals

tactic: apply add_right_cancel h
state_before: case mpr
n : ℕ
h✝ : 0 < n
h : ∑ i ∈ n.properDivisors, i + n = n + n
⊢ ∑ i ∈ n.properDivisors, i = n
state_after: no goals
Theorem: List.right_mem_of_mk_mem_sym2
File: Mathlib/Data/List/Sym.lean

tactic: rw [Sym2.eq_swap] at h
state_before: α : Type u_1
xs : List α
a b : α
h : s(a, b) ∈ xs.sym2
⊢ b ∈ xs
state_after: α : Type u_1
xs : List α
a b : α
h : s(b, a) ∈ xs.sym2
⊢ b ∈ xs

tactic: exact left_mem_of_mk_mem_sym2 h
state_before: α : Type u_1
xs : List α
a b : α
h : s(b, a) ∈ xs.sym2
⊢ b ∈ xs
state_after: no goals
Theorem: MvPolynomial.eval_indicator_apply_eq_zero
File: Mathlib/FieldTheory/Finite/Polynomial.lean

tactic: obtain ⟨i, hi⟩ : ∃ i, a i ≠ b i := by rwa [Ne, Function.funext_iff, not_forall] at h
state_before: K : Type u_1
σ : Type u_2
inst✝² : Fintype K
inst✝¹ : Fintype σ
inst✝ : Field K
a b : σ → K
h : a ≠ b
⊢ (eval a) (indicator b) = 0
state_after: case intro
K : Type u_1
σ : Type u_2
inst✝² : Fintype K
inst✝¹ : Fintype σ
inst✝ : Field K
a b : σ → K
h : a ≠ b
i : σ
hi : a i ≠ b i
⊢ (eval a) (indicator b) = 0

tactic: simp only [indicator, map_prod, map_sub, map_one, map_pow, eval_X, eval_C, sub_self,
  Finset.prod_eq_zero_iff]
state_before: case intro
K : Type u_1
σ : Type u_2
inst✝² : Fintype K
inst✝¹ : Fintype σ
inst✝ : Field K
a b : σ → K
h : a ≠ b
i : σ
hi : a i ≠ b i
⊢ (eval a) (indicator b) = 0
state_after: case intro
K : Type u_1
σ : Type u_2
inst✝² : Fintype K
inst✝¹ : Fintype σ
inst✝ : Field K
a b : σ → K
h : a ≠ b
i : σ
hi : a i ≠ b i
⊢ ∃ a_1 ∈ Finset.univ, 1 - (a a_1 - b a_1) ^ (Fintype.card K - 1) = 0

tactic: refine ⟨i, Finset.mem_univ _, ?_⟩
state_before: case intro
K : Type u_1
σ : Type u_2
inst✝² : Fintype K
inst✝¹ : Fintype σ
inst✝ : Field K
a b : σ → K
h : a ≠ b
i : σ
hi : a i ≠ b i
⊢ ∃ a_1 ∈ Finset.univ, 1 - (a a_1 - b a_1) ^ (Fintype.card K - 1) = 0
state_after: case intro
K : Type u_1
σ : Type u_2
inst✝² : Fintype K
inst✝¹ : Fintype σ
inst✝ : Field K
a b : σ → K
h : a ≠ b
i : σ
hi : a i ≠ b i
⊢ 1 - (a i - b i) ^ (Fintype.card K - 1) = 0

tactic: rw [FiniteField.pow_card_sub_one_eq_one, sub_self]
state_before: case intro
K : Type u_1
σ : Type u_2
inst✝² : Fintype K
inst✝¹ : Fintype σ
inst✝ : Field K
a b : σ → K
h : a ≠ b
i : σ
hi : a i ≠ b i
⊢ 1 - (a i - b i) ^ (Fintype.card K - 1) = 0
state_after: case intro.ha
K : Type u_1
σ : Type u_2
inst✝² : Fintype K
inst✝¹ : Fintype σ
inst✝ : Field K
a b : σ → K
h : a ≠ b
i : σ
hi : a i ≠ b i
⊢ a i - b i ≠ 0

tactic: rwa [Ne, sub_eq_zero]
state_before: case intro.ha
K : Type u_1
σ : Type u_2
inst✝² : Fintype K
inst✝¹ : Fintype σ
inst✝ : Field K
a b : σ → K
h : a ≠ b
i : σ
hi : a i ≠ b i
⊢ a i - b i ≠ 0
state_after: no goals

tactic: rwa [Ne, Function.funext_iff, not_forall] at h
state_before: K : Type u_1
σ : Type u_2
inst✝² : Fintype K
inst✝¹ : Fintype σ
inst✝ : Field K
a b : σ → K
h : a ≠ b
⊢ ∃ i, a i ≠ b i
state_after: no goals
Theorem: StarConvex.preimage_add_right
File: Mathlib/Analysis/Convex/Star.lean

tactic: intro y hy a b ha hb hab
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y z : E
s : Set E
hs : StarConvex 𝕜 (z + x) s
⊢ StarConvex 𝕜 x ((fun x => z + x) ⁻¹' s)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y✝ z : E
s : Set E
hs : StarConvex 𝕜 (z + x) s
y : E
hy : y ∈ (fun x => z + x) ⁻¹' s
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ a • x + b • y ∈ (fun x => z + x) ⁻¹' s

tactic: have h := hs hy ha hb hab
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y✝ z : E
s : Set E
hs : StarConvex 𝕜 (z + x) s
y : E
hy : y ∈ (fun x => z + x) ⁻¹' s
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ a • x + b • y ∈ (fun x => z + x) ⁻¹' s
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y✝ z : E
s : Set E
hs : StarConvex 𝕜 (z + x) s
y : E
hy : y ∈ (fun x => z + x) ⁻¹' s
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
h : a • (z + x) + b • (fun x => z + x) y ∈ s
⊢ a • x + b • y ∈ (fun x => z + x) ⁻¹' s

tactic: rwa [smul_add, smul_add, add_add_add_comm, ← add_smul, hab, one_smul] at h
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y✝ z : E
s : Set E
hs : StarConvex 𝕜 (z + x) s
y : E
hy : y ∈ (fun x => z + x) ⁻¹' s
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
h : a • (z + x) + b • (fun x => z + x) y ∈ s
⊢ a • x + b • y ∈ (fun x => z + x) ⁻¹' s
state_after: no goals
Theorem: Finset.prod_pow_boole
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: simp
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a✝ : α
f✝ g : α → β
inst✝¹ : CommMonoid β
inst✝ : DecidableEq α
s : Finset α
f : α → β
a : α
⊢ (∏ x ∈ s, f x ^ if a = x then 1 else 0) = if a ∈ s then f a else 1
state_after: no goals
Theorem: Real.sin_sq_eq_half_sub
File: Mathlib/Data/Complex/Exponential.lean

tactic: rw [sin_sq, cos_sq, ← sub_sub, sub_half]
state_before: x y : ℝ
⊢ sin x ^ 2 = 1 / 2 - cos (2 * x) / 2
state_after: no goals
Theorem: MeasureTheory.generateFrom_generateSetAlgebra_eq
File: Mathlib/MeasureTheory/SetAlgebra.lean

tactic: refine le_antisymm (fun s ms ↦ ?_) (generateFrom_mono self_subset_generateSetAlgebra)
state_before: α : Type u_1
𝒜 : Set (Set α)
s t : Set α
⊢ generateFrom (generateSetAlgebra 𝒜) = generateFrom 𝒜
state_after: α : Type u_1
𝒜 : Set (Set α)
s✝ t s : Set α
ms : MeasurableSet s
⊢ MeasurableSet s

tactic: refine @generateFrom_induction _ _ (generateSetAlgebra 𝒜) (fun t ht ↦ ?_)
  (@MeasurableSet.empty _ (generateFrom 𝒜))
  (fun t ↦ MeasurableSet.compl)
  (fun f hf ↦ MeasurableSet.iUnion hf)
  s ms
state_before: α : Type u_1
𝒜 : Set (Set α)
s✝ t s : Set α
ms : MeasurableSet s
⊢ MeasurableSet s
state_after: α : Type u_1
𝒜 : Set (Set α)
s✝ t✝ s : Set α
ms : MeasurableSet s
t : Set α
ht : t ∈ generateSetAlgebra 𝒜
⊢ MeasurableSet t

tactic: induction ht with
| base u u_mem => exact measurableSet_generateFrom u_mem
| empty => exact @MeasurableSet.empty _ (generateFrom 𝒜)
| compl u _ mu => exact mu.compl
| union u v _ _ mu mv  => exact MeasurableSet.union mu mv
state_before: α : Type u_1
𝒜 : Set (Set α)
s✝ t✝ s : Set α
ms : MeasurableSet s
t : Set α
ht : t ∈ generateSetAlgebra 𝒜
⊢ MeasurableSet t
state_after: no goals

tactic: exact measurableSet_generateFrom u_mem
state_before: case base
α : Type u_1
𝒜 : Set (Set α)
s✝ t✝ s : Set α
ms : MeasurableSet s
t u : Set α
u_mem : u ∈ 𝒜
⊢ MeasurableSet u
state_after: no goals

tactic: exact @MeasurableSet.empty _ (generateFrom 𝒜)
state_before: case empty
α : Type u_1
𝒜 : Set (Set α)
s✝ t✝ s : Set α
ms : MeasurableSet s
t : Set α
⊢ MeasurableSet ∅
state_after: no goals

tactic: exact mu.compl
state_before: case compl
α : Type u_1
𝒜 : Set (Set α)
s✝ t✝ s : Set α
ms : MeasurableSet s
t u : Set α
hs✝ : generateSetAlgebra 𝒜 u
mu : MeasurableSet u
⊢ MeasurableSet uᶜ
state_after: no goals

tactic: exact MeasurableSet.union mu mv
state_before: case union
α : Type u_1
𝒜 : Set (Set α)
s✝ t✝ s : Set α
ms : MeasurableSet s
t u v : Set α
hs✝ : generateSetAlgebra 𝒜 u
ht✝ : generateSetAlgebra 𝒜 v
mu : MeasurableSet u
mv : MeasurableSet v
⊢ MeasurableSet (u ∪ v)
state_after: no goals
Theorem: Equiv.Perm.toList_pow_apply_eq_rotate
File: Mathlib/GroupTheory/Perm/Cycle/Concrete.lean

tactic: apply ext_nthLe
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p✝ : Perm α
x✝ : α
p : Perm α
x : α
k : ℕ
⊢ p.toList ((p ^ k) x) = (p.toList x).rotate k
state_after: case hl
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p✝ : Perm α
x✝ : α
p : Perm α
x : α
k : ℕ
⊢ (p.toList ((p ^ k) x)).length = ((p.toList x).rotate k).length

case h
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p✝ : Perm α
x✝ : α
p : Perm α
x : α
k : ℕ
⊢ ∀ (n : ℕ) (h₁ : n < (p.toList ((p ^ k) x)).length) (h₂ : n < ((p.toList x).rotate k).length),
    (p.toList ((p ^ k) x)).nthLe n h₁ = ((p.toList x).rotate k).nthLe n h₂

tactic: simp only [length_toList, cycleOf_self_apply_pow, length_rotate]
state_before: case hl
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p✝ : Perm α
x✝ : α
p : Perm α
x : α
k : ℕ
⊢ (p.toList ((p ^ k) x)).length = ((p.toList x).rotate k).length
state_after: no goals

tactic: intro n hn hn'
state_before: case h
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p✝ : Perm α
x✝ : α
p : Perm α
x : α
k : ℕ
⊢ ∀ (n : ℕ) (h₁ : n < (p.toList ((p ^ k) x)).length) (h₂ : n < ((p.toList x).rotate k).length),
    (p.toList ((p ^ k) x)).nthLe n h₁ = ((p.toList x).rotate k).nthLe n h₂
state_after: case h
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p✝ : Perm α
x✝ : α
p : Perm α
x : α
k n : ℕ
hn : n < (p.toList ((p ^ k) x)).length
hn' : n < ((p.toList x).rotate k).length
⊢ (p.toList ((p ^ k) x)).nthLe n hn = ((p.toList x).rotate k).nthLe n hn'

tactic: rw [nthLe_toList, nthLe_rotate, nthLe_toList, length_toList,
  pow_mod_card_support_cycleOf_self_apply, pow_add, mul_apply]
state_before: case h
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p✝ : Perm α
x✝ : α
p : Perm α
x : α
k n : ℕ
hn : n < (p.toList ((p ^ k) x)).length
hn' : n < ((p.toList x).rotate k).length
⊢ (p.toList ((p ^ k) x)).nthLe n hn = ((p.toList x).rotate k).nthLe n hn'
state_after: no goals
Theorem: Filter.frequently_or_distrib_left
File: Mathlib/Order/Filter/Basic.lean

tactic: simp
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
f : Filter α
inst✝ : f.NeBot
p : Prop
q : α → Prop
⊢ (∃ᶠ (x : α) in f, p ∨ q x) ↔ p ∨ ∃ᶠ (x : α) in f, q x
state_after: no goals
Theorem: Real.exp_bound_div_one_sub_of_interval
File: Mathlib/Data/Complex/Exponential.lean

tactic: rcases eq_or_lt_of_le h1 with (rfl | h1)
state_before: x : ℝ
h1 : 0 ≤ x
h2 : x < 1
⊢ rexp x ≤ 1 / (1 - x)
state_after: case inl
h1 : 0 ≤ 0
h2 : 0 < 1
⊢ rexp 0 ≤ 1 / (1 - 0)

case inr
x : ℝ
h1✝ : 0 ≤ x
h2 : x < 1
h1 : 0 < x
⊢ rexp x ≤ 1 / (1 - x)

tactic: simp
state_before: case inl
h1 : 0 ≤ 0
h2 : 0 < 1
⊢ rexp 0 ≤ 1 / (1 - 0)
state_after: no goals

tactic: exact (exp_bound_div_one_sub_of_interval' h1 h2).le
state_before: case inr
x : ℝ
h1✝ : 0 ≤ x
h2 : x < 1
h1 : 0 < x
⊢ rexp x ≤ 1 / (1 - x)
state_after: no goals
Theorem: Set.Icc_diff_right
File: Mathlib/Order/Interval/Set/Basic.lean

tactic: simp [lt_iff_le_and_ne, and_assoc]
state_before: α : Type u_1
β : Type u_2
inst✝ : PartialOrder α
a b c x : α
⊢ x ∈ Icc a b \ {b} ↔ x ∈ Ico a b
state_after: no goals
Theorem: CategoryTheory.MonoidalCategory.whisker_assoc_symm
File: Mathlib/CategoryTheory/Monoidal/Category.lean

tactic: simp
state_before: C✝ : Type u
𝒞 : Category.{v, u} C✝
inst✝² : MonoidalCategory C✝
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : MonoidalCategory C
U V W X✝ Y✝ Z✝ X Y Y' : C
f : Y ⟶ Y'
Z : C
⊢ X ◁ f ▷ Z = (α_ X Y Z).inv ≫ (X ◁ f) ▷ Z ≫ (α_ X Y' Z).hom
state_after: no goals
Theorem: Nat.self_div_pow_eq_ofDigits_drop
File: Mathlib/Data/Nat/Digits.lean

tactic: convert ofDigits_div_pow_eq_ofDigits_drop i (zero_lt_of_lt h) (p.digits n)
  (fun l hl ↦ digits_lt_base h hl)
state_before: n✝ p i n : ℕ
h : 2 ≤ p
⊢ n / p ^ i = ofDigits p (List.drop i (p.digits n))
state_after: case h.e'_2.h.e'_5
n✝ p i n : ℕ
h : 2 ≤ p
⊢ n = ofDigits p (p.digits n)

tactic: exact (ofDigits_digits p n).symm
state_before: case h.e'_2.h.e'_5
n✝ p i n : ℕ
h : 2 ≤ p
⊢ n = ofDigits p (p.digits n)
state_after: no goals
Theorem: Ring.inverse_star
File: Mathlib/Algebra/Star/Basic.lean

tactic: by_cases ha : IsUnit a
state_before: R : Type u
inst✝¹ : Semiring R
inst✝ : StarRing R
a : R
⊢ inverse (star a) = star (inverse a)
state_after: case pos
R : Type u
inst✝¹ : Semiring R
inst✝ : StarRing R
a : R
ha : IsUnit a
⊢ inverse (star a) = star (inverse a)

case neg
R : Type u
inst✝¹ : Semiring R
inst✝ : StarRing R
a : R
ha : ¬IsUnit a
⊢ inverse (star a) = star (inverse a)

tactic: rw [Ring.inverse_non_unit _ ha, Ring.inverse_non_unit _ (mt isUnit_star.mp ha), star_zero]
state_before: case neg
R : Type u
inst✝¹ : Semiring R
inst✝ : StarRing R
a : R
ha : ¬IsUnit a
⊢ inverse (star a) = star (inverse a)
state_after: no goals

tactic: obtain ⟨u, rfl⟩ := ha
state_before: case pos
R : Type u
inst✝¹ : Semiring R
inst✝ : StarRing R
a : R
ha : IsUnit a
⊢ inverse (star a) = star (inverse a)
state_after: case pos.intro
R : Type u
inst✝¹ : Semiring R
inst✝ : StarRing R
u : Rˣ
⊢ inverse (star ↑u) = star (inverse ↑u)

tactic: rw [Ring.inverse_unit, ← Units.coe_star, Ring.inverse_unit, ← Units.coe_star_inv]
state_before: case pos.intro
R : Type u
inst✝¹ : Semiring R
inst✝ : StarRing R
u : Rˣ
⊢ inverse (star ↑u) = star (inverse ↑u)
state_after: no goals
Theorem: Matroid.Indep.of_restriction
File: Mathlib/Data/Matroid/Restrict.lean

tactic: obtain ⟨R, -, rfl⟩ := hNM
state_before: α : Type u_1
M : Matroid α
R I J X Y : Set α
N : Matroid α
hI : N.Indep I
hNM : N ≤r M
⊢ M.Indep I
state_after: case intro.intro
α : Type u_1
M : Matroid α
R✝ I J X Y R : Set α
hI : (M ↾ R).Indep I
⊢ M.Indep I

tactic: exact hI.of_restrict
state_before: case intro.intro
α : Type u_1
M : Matroid α
R✝ I J X Y R : Set α
hI : (M ↾ R).Indep I
⊢ M.Indep I
state_after: no goals
Theorem: List.sublist_orderedInsert
File: Mathlib/Data/List/Sort.lean

tactic: rw [orderedInsert_eq_take_drop]
state_before: α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
x : α
xs : List α
⊢ xs <+ orderedInsert r x xs
state_after: α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
x : α
xs : List α
⊢ xs <+ takeWhile (fun b => decide ¬r x b) xs ++ x :: dropWhile (fun b => decide ¬r x b) xs

tactic: refine Sublist.trans ?_ (.append_left (.cons _ (.refl _)) _)
state_before: α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
x : α
xs : List α
⊢ xs <+ takeWhile (fun b => decide ¬r x b) xs ++ x :: dropWhile (fun b => decide ¬r x b) xs
state_after: α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
x : α
xs : List α
⊢ xs <+ takeWhile (fun b => decide ¬r x b) xs ++ dropWhile (fun b => decide ¬r x b) xs

tactic: rw [takeWhile_append_dropWhile]
state_before: α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
x : α
xs : List α
⊢ xs <+ takeWhile (fun b => decide ¬r x b) xs ++ dropWhile (fun b => decide ¬r x b) xs
state_after: no goals