1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Subalgebra.bot_eq_top_iff_finrank_eq_one
File: Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean

tactic: haveI := Module.Free.of_equiv (Subalgebra.topEquiv (R := F) (A := E)).toLinearEquiv.symm
state_before: F : Type u_1
E : Type u_2
inst✝⁵ : CommRing F
inst✝⁴ : StrongRankCondition F
inst✝³ : Ring E
inst✝² : Algebra F E
S : Subalgebra F E
inst✝¹ : Nontrivial E
inst✝ : Module.Free F E
⊢ ⊥ = ⊤ ↔ finrank F E = 1
state_after: F : Type u_1
E : Type u_2
inst✝⁵ : CommRing F
inst✝⁴ : StrongRankCondition F
inst✝³ : Ring E
inst✝² : Algebra F E
S : Subalgebra F E
inst✝¹ : Nontrivial E
inst✝ : Module.Free F E
this : Module.Free F ↥⊤
⊢ ⊥ = ⊤ ↔ finrank F E = 1

tactic: rw [← finrank_top, ← subalgebra_top_finrank_eq_submodule_top_finrank,
  Subalgebra.finrank_eq_one_iff, eq_comm]
state_before: F : Type u_1
E : Type u_2
inst✝⁵ : CommRing F
inst✝⁴ : StrongRankCondition F
inst✝³ : Ring E
inst✝² : Algebra F E
S : Subalgebra F E
inst✝¹ : Nontrivial E
inst✝ : Module.Free F E
this : Module.Free F ↥⊤
⊢ ⊥ = ⊤ ↔ finrank F E = 1
state_after: no goals
Theorem: Ordinal.le_sub_of_le
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: rw [← add_le_add_iff_left b, Ordinal.add_sub_cancel_of_le h]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b c : Ordinal.{u_4}
h : b ≤ a
⊢ c ≤ a - b ↔ b + c ≤ a
state_after: no goals
Theorem: PartialHomeomorph.contDiff_univUnitBall
File: Mathlib/Analysis/InnerProductSpace/Calculus.lean

tactic: suffices ContDiff ℝ n fun x : E => (√(1 + ‖x‖ ^ 2 : ℝ))⁻¹ from this.smul contDiff_id
state_before: n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
⊢ ContDiff ℝ n ↑univUnitBall
state_after: n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
⊢ ContDiff ℝ n fun x => (√(1 + ‖x‖ ^ 2))⁻¹

tactic: have h : ∀ x : E, (0 : ℝ) < (1 : ℝ) + ‖x‖ ^ 2 := fun x => by positivity
state_before: n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
⊢ ContDiff ℝ n fun x => (√(1 + ‖x‖ ^ 2))⁻¹
state_after: n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
h : ∀ (x : E), 0 < 1 + ‖x‖ ^ 2
⊢ ContDiff ℝ n fun x => (√(1 + ‖x‖ ^ 2))⁻¹

tactic: refine ContDiff.inv ?_ fun x => Real.sqrt_ne_zero'.mpr (h x)
state_before: n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
h : ∀ (x : E), 0 < 1 + ‖x‖ ^ 2
⊢ ContDiff ℝ n fun x => (√(1 + ‖x‖ ^ 2))⁻¹
state_after: n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
h : ∀ (x : E), 0 < 1 + ‖x‖ ^ 2
⊢ ContDiff ℝ n fun x => √(1 + ‖x‖ ^ 2)

tactic: exact (contDiff_const.add <| contDiff_norm_sq ℝ).sqrt fun x => (h x).ne'
state_before: n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
h : ∀ (x : E), 0 < 1 + ‖x‖ ^ 2
⊢ ContDiff ℝ n fun x => √(1 + ‖x‖ ^ 2)
state_after: no goals

tactic: positivity
state_before: n : ℕ∞
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
x : E
⊢ 0 < 1 + ‖x‖ ^ 2
state_after: no goals
Theorem: DirichletCharacter.LSeriesSummable_mul
File: Mathlib/NumberTheory/LSeries/Dirichlet.lean

tactic: refine .of_norm <| h.norm.of_nonneg_of_le (fun _ ↦ norm_nonneg _) fun n ↦ norm_term_le s ?_
state_before: N : ℕ
χ : DirichletCharacter ℂ N
f : ℕ → ℂ
s : ℂ
h : LSeriesSummable f s
⊢ LSeriesSummable ((fun n => χ ↑n) * f) s
state_after: N : ℕ
χ : DirichletCharacter ℂ N
f : ℕ → ℂ
s : ℂ
h : LSeriesSummable f s
n : ℕ
⊢ ‖((fun n => χ ↑n) * f) n‖ ≤ ‖f n‖

tactic: rw [Pi.mul_apply, norm_mul]
state_before: N : ℕ
χ : DirichletCharacter ℂ N
f : ℕ → ℂ
s : ℂ
h : LSeriesSummable f s
n : ℕ
⊢ ‖((fun n => χ ↑n) * f) n‖ ≤ ‖f n‖
state_after: N : ℕ
χ : DirichletCharacter ℂ N
f : ℕ → ℂ
s : ℂ
h : LSeriesSummable f s
n : ℕ
⊢ ‖χ ↑n‖ * ‖f n‖ ≤ ‖f n‖

tactic: exact mul_le_of_le_one_left (norm_nonneg _) <| norm_le_one ..
state_before: N : ℕ
χ : DirichletCharacter ℂ N
f : ℕ → ℂ
s : ℂ
h : LSeriesSummable f s
n : ℕ
⊢ ‖χ ↑n‖ * ‖f n‖ ≤ ‖f n‖
state_after: no goals
Theorem: EReal.bot_mul_of_pos
File: Mathlib/Data/Real/EReal.lean

tactic: rw [EReal.mul_comm]
state_before: x : EReal
h : 0 < x
⊢ ⊥ * x = ⊥
state_after: x : EReal
h : 0 < x
⊢ x * ⊥ = ⊥

tactic: exact mul_bot_of_pos h
state_before: x : EReal
h : 0 < x
⊢ x * ⊥ = ⊥
state_after: no goals
Theorem: Mathlib.Meta.NormNum.IsInt.to_isRat
File: Mathlib/Tactic/NormNum/Result.lean

tactic: simp
state_before: α : Type u_1
inst✝ : Ring α
n✝ : ℤ
⊢ 1 * ↑1 = 1
state_after: no goals

tactic: simp
state_before: α : Type u_1
inst✝ : Ring α
n✝ : ℤ
⊢ ↑1 * 1 = 1
state_after: no goals

tactic: simp
state_before: α : Type u_1
inst✝ : Ring α
n✝ : ℤ
⊢ ↑n✝ = ↑n✝ * ⅟↑1
state_after: no goals
Theorem: MeasureTheory.Measure.rnDeriv_lt_top
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

tactic: suffices ∀ n, ∀ᵐ x ∂ν, x ∈ spanningSets μ n → μ.rnDeriv ν x < ∞ by
  filter_upwards [ae_all_iff.2 this] with _ hx using hx _ (mem_spanningSetsIndex _ _)
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝ : SigmaFinite μ
⊢ ∀ᵐ (x : α) ∂ν, μ.rnDeriv ν x < ⊤
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝ : SigmaFinite μ
⊢ ∀ (n : ℕ), ∀ᵐ (x : α) ∂ν, x ∈ spanningSets μ n → μ.rnDeriv ν x < ⊤

tactic: intro n
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝ : SigmaFinite μ
⊢ ∀ (n : ℕ), ∀ᵐ (x : α) ∂ν, x ∈ spanningSets μ n → μ.rnDeriv ν x < ⊤
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝ : SigmaFinite μ
n : ℕ
⊢ ∀ᵐ (x : α) ∂ν, x ∈ spanningSets μ n → μ.rnDeriv ν x < ⊤

tactic: rw [← ae_restrict_iff' (measurable_spanningSets _ _)]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝ : SigmaFinite μ
n : ℕ
⊢ ∀ᵐ (x : α) ∂ν, x ∈ spanningSets μ n → μ.rnDeriv ν x < ⊤
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝ : SigmaFinite μ
n : ℕ
⊢ ∀ᵐ (x : α) ∂ν.restrict (spanningSets μ n), μ.rnDeriv ν x < ⊤

tactic: apply ae_lt_top (measurable_rnDeriv _ _)
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝ : SigmaFinite μ
n : ℕ
⊢ ∀ᵐ (x : α) ∂ν.restrict (spanningSets μ n), μ.rnDeriv ν x < ⊤
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝ : SigmaFinite μ
n : ℕ
⊢ ∫⁻ (x : α) in spanningSets μ n, μ.rnDeriv ν x ∂ν ≠ ⊤

tactic: refine (lintegral_rnDeriv_lt_top_of_measure_ne_top _ ?_).ne
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝ : SigmaFinite μ
n : ℕ
⊢ ∫⁻ (x : α) in spanningSets μ n, μ.rnDeriv ν x ∂ν ≠ ⊤
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝ : SigmaFinite μ
n : ℕ
⊢ μ (spanningSets μ n) ≠ ⊤

tactic: exact (measure_spanningSets_lt_top _ _).ne
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝ : SigmaFinite μ
n : ℕ
⊢ μ (spanningSets μ n) ≠ ⊤
state_after: no goals

tactic: filter_upwards [ae_all_iff.2 this] with _ hx using hx _ (mem_spanningSetsIndex _ _)
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝ : SigmaFinite μ
this : ∀ (n : ℕ), ∀ᵐ (x : α) ∂ν, x ∈ spanningSets μ n → μ.rnDeriv ν x < ⊤
⊢ ∀ᵐ (x : α) ∂ν, μ.rnDeriv ν x < ⊤
state_after: no goals
Theorem: MvPolynomial.degreeOf_C_mul_le
File: Mathlib/Algebra/MvPolynomial/Degrees.lean

tactic: unfold degreeOf
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p✝ q p : MvPolynomial σ R
i : σ
c : R
⊢ degreeOf i (C c * p) ≤ degreeOf i p
state_after: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p✝ q p : MvPolynomial σ R
i : σ
c : R
⊢ Multiset.count i (C c * p).degrees ≤ Multiset.count i p.degrees

tactic: convert Multiset.count_le_of_le i <| degrees_mul (C c) p
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p✝ q p : MvPolynomial σ R
i : σ
c : R
⊢ Multiset.count i (C c * p).degrees ≤ Multiset.count i p.degrees
state_after: case h.e'_4.h.e'_4
R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p✝ q p : MvPolynomial σ R
i : σ
c : R
⊢ p.degrees = (C c).degrees + p.degrees

tactic: simp [degrees_C]
state_before: case h.e'_4.h.e'_4
R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p✝ q p : MvPolynomial σ R
i : σ
c : R
⊢ p.degrees = (C c).degrees + p.degrees
state_after: no goals
Theorem: List.Perm.rec_heq
File: .lake/packages/batteries/Batteries/Data/List/Perm.lean

tactic: induction hl with
| nil => rfl
| cons a h ih => exact f_congr h ih
| swap a a' l => exact f_swap
| trans _h₁ _h₂ ih₁ ih₂ => exact ih₁.trans ih₂
state_before: α : Type u_1
β : List α → Sort u_2
f : (a : α) → (l : List α) → β l → β (a :: l)
b : β []
l l' : List α
hl : l ~ l'
f_congr : ∀ {a : α} {l l' : List α} {b : β l} {b' : β l'}, l ~ l' → HEq b b' → HEq (f a l b) (f a l' b')
f_swap : ∀ {a a' : α} {l : List α} {b : β l}, HEq (f a (a' :: l) (f a' l b)) (f a' (a :: l) (f a l b))
⊢ HEq (List.rec b f l) (List.rec b f l')
state_after: no goals

tactic: rfl
state_before: case nil
α : Type u_1
β : List α → Sort u_2
f : (a : α) → (l : List α) → β l → β (a :: l)
b : β []
l l' : List α
f_congr : ∀ {a : α} {l l' : List α} {b : β l} {b' : β l'}, l ~ l' → HEq b b' → HEq (f a l b) (f a l' b')
f_swap : ∀ {a a' : α} {l : List α} {b : β l}, HEq (f a (a' :: l) (f a' l b)) (f a' (a :: l) (f a l b))
⊢ HEq (List.rec b f []) (List.rec b f [])
state_after: no goals

tactic: exact f_congr h ih
state_before: case cons
α : Type u_1
β : List α → Sort u_2
f : (a : α) → (l : List α) → β l → β (a :: l)
b : β []
l l' : List α
f_congr : ∀ {a : α} {l l' : List α} {b : β l} {b' : β l'}, l ~ l' → HEq b b' → HEq (f a l b) (f a l' b')
f_swap : ∀ {a a' : α} {l : List α} {b : β l}, HEq (f a (a' :: l) (f a' l b)) (f a' (a :: l) (f a l b))
a : α
l₁✝ l₂✝ : List α
h : l₁✝ ~ l₂✝
ih : HEq (List.rec b f l₁✝) (List.rec b f l₂✝)
⊢ HEq (List.rec b f (a :: l₁✝)) (List.rec b f (a :: l₂✝))
state_after: no goals

tactic: exact f_swap
state_before: case swap
α : Type u_1
β : List α → Sort u_2
f : (a : α) → (l : List α) → β l → β (a :: l)
b : β []
l✝ l' : List α
f_congr : ∀ {a : α} {l l' : List α} {b : β l} {b' : β l'}, l ~ l' → HEq b b' → HEq (f a l b) (f a l' b')
f_swap : ∀ {a a' : α} {l : List α} {b : β l}, HEq (f a (a' :: l) (f a' l b)) (f a' (a :: l) (f a l b))
a a' : α
l : List α
⊢ HEq (List.rec b f (a' :: a :: l)) (List.rec b f (a :: a' :: l))
state_after: no goals

tactic: exact ih₁.trans ih₂
state_before: case trans
α : Type u_1
β : List α → Sort u_2
f : (a : α) → (l : List α) → β l → β (a :: l)
b : β []
l l' : List α
f_congr : ∀ {a : α} {l l' : List α} {b : β l} {b' : β l'}, l ~ l' → HEq b b' → HEq (f a l b) (f a l' b')
f_swap : ∀ {a a' : α} {l : List α} {b : β l}, HEq (f a (a' :: l) (f a' l b)) (f a' (a :: l) (f a l b))
l₁✝ l₂✝ l₃✝ : List α
_h₁ : l₁✝ ~ l₂✝
_h₂ : l₂✝ ~ l₃✝
ih₁ : HEq (List.rec b f l₁✝) (List.rec b f l₂✝)
ih₂ : HEq (List.rec b f l₂✝) (List.rec b f l₃✝)
⊢ HEq (List.rec b f l₁✝) (List.rec b f l₃✝)
state_after: no goals
Theorem: integral_one_div_of_pos
File: Mathlib/Analysis/SpecialFunctions/Integrals.lean

tactic: simp only [one_div, integral_inv_of_pos ha hb]
state_before: a b : ℝ
n : ℕ
ha : 0 < a
hb : 0 < b
⊢ ∫ (x : ℝ) in a..b, 1 / x = Real.log (b / a)
state_after: no goals
Theorem: Finset.disjSups_right_comm
File: Mathlib/Data/Finset/Sups.lean

tactic: simp_rw [disjSups_assoc, disjSups_comm]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝⁴ : DecidableEq α
inst✝³ : DecidableEq β
inst✝² : DistribLattice α
inst✝¹ : OrderBot α
inst✝ : DecidableRel Disjoint
s t u v : Finset α
⊢ s ○ t ○ u = s ○ u ○ t
state_after: no goals
Theorem: IsCompactOperator.isCompact_closure_image_of_bounded
File: Mathlib/Analysis/NormedSpace/CompactOperator.lean

tactic: rwa [NormedSpace.isVonNBounded_iff]
state_before: 𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁸ : NontriviallyNormedField 𝕜₁
inst✝⁷ : SeminormedRing 𝕜₂
σ₁₂ : 𝕜₁ →+* 𝕜₂
M₁ : Type u_3
M₂ : Type u_4
M₃ : Type u_5
inst✝⁶ : SeminormedAddCommGroup M₁
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : AddCommMonoid M₂
inst✝³ : NormedSpace 𝕜₁ M₁
inst✝² : Module 𝕜₂ M₂
inst✝¹ : ContinuousConstSMul 𝕜₂ M₂
inst✝ : T2Space M₂
f : M₁ →ₛₗ[σ₁₂] M₂
hf : IsCompactOperator ⇑f
S : Set M₁
hS : Bornology.IsBounded S
⊢ IsVonNBounded 𝕜₁ S
state_after: no goals
Theorem: Nat.coprime_sub_self_right
File: Mathlib/Data/Nat/GCD/Basic.lean

tactic: rw [Coprime, Coprime, gcd_sub_self_right h]
state_before: m n : ℕ
h : m ≤ n
⊢ m.Coprime (n - m) ↔ m.Coprime n
state_after: no goals
Theorem: Prop.forall_iff
File: Mathlib/Logic/Basic.lean

tactic: by_cases H : h <;> simpa only [H]
state_before: α : Sort u_1
β : Sort u_2
p✝ q : α → Prop
p : Prop → Prop
x✝ : p False ∧ p True
h : Prop
h₁ : p False
h₂ : p True
⊢ p h
state_after: no goals
Theorem: Filter.tendsto_comap_iff
File: Mathlib/Order/Filter/Basic.lean

tactic: rwa [map_map]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
l : Filter α
f : α → β
g : β → γ
a : Filter α
c : Filter γ
h : Tendsto (g ∘ f) a c
⊢ map g (map f a) ≤ c
state_after: no goals
Theorem: Submodule.ClosedComplemented.of_quotient_finiteDimensional
File: Mathlib/Analysis/NormedSpace/Complemented.lean

tactic: obtain ⟨q, hq⟩ : ∃ q, IsCompl p q := p.exists_isCompl
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedSpace 𝕜 G
inst✝² : CompleteSpace E
p q : Subspace 𝕜 E
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 (E ⧸ p)
hp : IsClosed ↑p
⊢ ClosedComplemented p
state_after: case intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedSpace 𝕜 G
inst✝² : CompleteSpace E
p q✝ : Subspace 𝕜 E
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 (E ⧸ p)
hp : IsClosed ↑p
q : Subspace 𝕜 E
hq : IsCompl p q
⊢ ClosedComplemented p

tactic: haveI : FiniteDimensional 𝕜 q := (p.quotientEquivOfIsCompl q hq).finiteDimensional
state_before: case intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedSpace 𝕜 G
inst✝² : CompleteSpace E
p q✝ : Subspace 𝕜 E
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 (E ⧸ p)
hp : IsClosed ↑p
q : Subspace 𝕜 E
hq : IsCompl p q
⊢ ClosedComplemented p
state_after: case intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedSpace 𝕜 G
inst✝² : CompleteSpace E
p q✝ : Subspace 𝕜 E
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 (E ⧸ p)
hp : IsClosed ↑p
q : Subspace 𝕜 E
hq : IsCompl p q
this : FiniteDimensional 𝕜 ↥q
⊢ ClosedComplemented p

tactic: exact .of_isCompl_isClosed hq hp q.closed_of_finiteDimensional
state_before: case intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedSpace 𝕜 G
inst✝² : CompleteSpace E
p q✝ : Subspace 𝕜 E
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 (E ⧸ p)
hp : IsClosed ↑p
q : Subspace 𝕜 E
hq : IsCompl p q
this : FiniteDimensional 𝕜 ↥q
⊢ ClosedComplemented p
state_after: no goals
Theorem: cpow_eq_nhds
File: Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean

tactic: suffices ∀ᶠ x : ℂ in 𝓝 a, x ≠ 0 from
  this.mono fun x hx ↦ by
    dsimp only
    rw [cpow_def_of_ne_zero hx]
state_before: α : Type u_1
a b : ℂ
ha : a ≠ 0
⊢ (fun x => x ^ b) =ᶠ[𝓝 a] fun x => cexp (Complex.log x * b)
state_after: α : Type u_1
a b : ℂ
ha : a ≠ 0
⊢ ∀ᶠ (x : ℂ) in 𝓝 a, x ≠ 0

tactic: exact IsOpen.eventually_mem isOpen_ne ha
state_before: α : Type u_1
a b : ℂ
ha : a ≠ 0
⊢ ∀ᶠ (x : ℂ) in 𝓝 a, x ≠ 0
state_after: no goals

tactic: dsimp only
state_before: α : Type u_1
a b : ℂ
ha : a ≠ 0
this : ∀ᶠ (x : ℂ) in 𝓝 a, x ≠ 0
x : ℂ
hx : x ≠ 0
⊢ (fun x => x ^ b) x = (fun x => cexp (Complex.log x * b)) x
state_after: α : Type u_1
a b : ℂ
ha : a ≠ 0
this : ∀ᶠ (x : ℂ) in 𝓝 a, x ≠ 0
x : ℂ
hx : x ≠ 0
⊢ x ^ b = cexp (Complex.log x * b)

tactic: rw [cpow_def_of_ne_zero hx]
state_before: α : Type u_1
a b : ℂ
ha : a ≠ 0
this : ∀ᶠ (x : ℂ) in 𝓝 a, x ≠ 0
x : ℂ
hx : x ≠ 0
⊢ x ^ b = cexp (Complex.log x * b)
state_after: no goals
Theorem: piecewise_ae_eq_restrict_compl
File: Mathlib/MeasureTheory/Measure/Restrict.lean

tactic: rw [ae_restrict_eq hs.compl]
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f g : α → β
inst✝ : DecidablePred fun x => x ∈ s
hs : MeasurableSet s
⊢ s.piecewise f g =ᶠ[ae (μ.restrict sᶜ)] g
state_after: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f g : α → β
inst✝ : DecidablePred fun x => x ∈ s
hs : MeasurableSet s
⊢ s.piecewise f g =ᶠ[ae μ ⊓ 𝓟 sᶜ] g

tactic: exact (piecewise_eqOn_compl s f g).eventuallyEq.filter_mono inf_le_right
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
inst✝¹ : MeasurableSpace α
μ : Measure α
s t : Set α
f g : α → β
inst✝ : DecidablePred fun x => x ∈ s
hs : MeasurableSet s
⊢ s.piecewise f g =ᶠ[ae μ ⊓ 𝓟 sᶜ] g
state_after: no goals
Theorem: CategoryTheory.Limits.biproduct.fromSubtype_eq_lift
File: Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean

tactic: simp
state_before: J : Type w
K : Type u_1
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
f : J → C
inst✝² : HasBiproduct f
p : J → Prop
inst✝¹ : HasBiproduct (Subtype.restrict p f)
inst✝ : DecidablePred p
⊢ ∀ (j : J), fromSubtype f p ≫ π f j = (lift fun j => if h : p j then π (Subtype.restrict p f) ⟨j, h⟩ else 0) ≫ π f j
state_after: no goals
Theorem: Equiv.Perm.SameCycle.symm
File: Mathlib/GroupTheory/Perm/Cycle/Basic.lean

tactic: rw [zpow_neg, ← hi, inv_apply_self]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
f g : Perm α
p : α → Prop
x y z : α
x✝ : f.SameCycle x y
i : ℤ
hi : (f ^ i) x = y
⊢ (f ^ (-i)) y = x
state_after: no goals
Theorem: AlgebraicGeometry.pullbackRestrictIsoRestrict_hom_restrict
File: Mathlib/AlgebraicGeometry/Restrict.lean

tactic: delta pullbackRestrictIsoRestrict
state_before: C : Type u₁
inst✝ : Category.{v, u₁} C
X Y : Scheme
f : X ⟶ Y
U : Opens ↑↑Y.toPresheafedSpace
⊢ (pullbackRestrictIsoRestrict f U).hom ≫ Scheme.ιOpens (f ⁻¹ᵁ U) = pullback.fst
state_after: C : Type u₁
inst✝ : Category.{v, u₁} C
X Y : Scheme
f : X ⟶ Y
U : Opens ↑↑Y.toPresheafedSpace
⊢ (IsOpenImmersion.isoOfRangeEq pullback.fst (X.ofRestrict ⋯) ⋯).hom ≫ Scheme.ιOpens (f ⁻¹ᵁ U) = pullback.fst

tactic: simp
state_before: C : Type u₁
inst✝ : Category.{v, u₁} C
X Y : Scheme
f : X ⟶ Y
U : Opens ↑↑Y.toPresheafedSpace
⊢ (IsOpenImmersion.isoOfRangeEq pullback.fst (X.ofRestrict ⋯) ⋯).hom ≫ Scheme.ιOpens (f ⁻¹ᵁ U) = pullback.fst
state_after: no goals
Theorem: CompHaus.effectiveEpi_tfae
File: Mathlib/Topology/Category/CompHaus/EffectiveEpi.lean

tactic: tfae_have 1 → 2
state_before: B X : CompHaus
π : X ⟶ B
⊢ [EffectiveEpi π, Epi π, Function.Surjective ⇑π].TFAE
state_after: case tfae_1_to_2
B X : CompHaus
π : X ⟶ B
⊢ EffectiveEpi π → Epi π

B X : CompHaus
π : X ⟶ B
tfae_1_to_2 : EffectiveEpi π → Epi π
⊢ [EffectiveEpi π, Epi π, Function.Surjective ⇑π].TFAE

tactic: tfae_have 2 ↔ 3
state_before: B X : CompHaus
π : X ⟶ B
tfae_1_to_2 : EffectiveEpi π → Epi π
⊢ [EffectiveEpi π, Epi π, Function.Surjective ⇑π].TFAE
state_after: case tfae_2_iff_3
B X : CompHaus
π : X ⟶ B
tfae_1_to_2 : EffectiveEpi π → Epi π
⊢ Epi π ↔ Function.Surjective ⇑π

B X : CompHaus
π : X ⟶ B
tfae_1_to_2 : EffectiveEpi π → Epi π
tfae_2_iff_3 : Epi π ↔ Function.Surjective ⇑π
⊢ [EffectiveEpi π, Epi π, Function.Surjective ⇑π].TFAE

tactic: tfae_have 3 → 1
state_before: B X : CompHaus
π : X ⟶ B
tfae_1_to_2 : EffectiveEpi π → Epi π
tfae_2_iff_3 : Epi π ↔ Function.Surjective ⇑π
⊢ [EffectiveEpi π, Epi π, Function.Surjective ⇑π].TFAE
state_after: case tfae_3_to_1
B X : CompHaus
π : X ⟶ B
tfae_1_to_2 : EffectiveEpi π → Epi π
tfae_2_iff_3 : Epi π ↔ Function.Surjective ⇑π
⊢ Function.Surjective ⇑π → EffectiveEpi π

B X : CompHaus
π : X ⟶ B
tfae_1_to_2 : EffectiveEpi π → Epi π
tfae_2_iff_3 : Epi π ↔ Function.Surjective ⇑π
tfae_3_to_1 : Function.Surjective ⇑π → EffectiveEpi π
⊢ [EffectiveEpi π, Epi π, Function.Surjective ⇑π].TFAE

tactic: tfae_finish
state_before: B X : CompHaus
π : X ⟶ B
tfae_1_to_2 : EffectiveEpi π → Epi π
tfae_2_iff_3 : Epi π ↔ Function.Surjective ⇑π
tfae_3_to_1 : Function.Surjective ⇑π → EffectiveEpi π
⊢ [EffectiveEpi π, Epi π, Function.Surjective ⇑π].TFAE
state_after: no goals

tactic: intro
state_before: case tfae_1_to_2
B X : CompHaus
π : X ⟶ B
⊢ EffectiveEpi π → Epi π
state_after: case tfae_1_to_2
B X : CompHaus
π : X ⟶ B
a✝ : EffectiveEpi π
⊢ Epi π

tactic: infer_instance
state_before: case tfae_1_to_2
B X : CompHaus
π : X ⟶ B
a✝ : EffectiveEpi π
⊢ Epi π
state_after: no goals

tactic: exact epi_iff_surjective π
state_before: case tfae_2_iff_3
B X : CompHaus
π : X ⟶ B
tfae_1_to_2 : EffectiveEpi π → Epi π
⊢ Epi π ↔ Function.Surjective ⇑π
state_after: no goals

tactic: exact fun hπ ↦ ⟨⟨struct π hπ⟩⟩
state_before: case tfae_3_to_1
B X : CompHaus
π : X ⟶ B
tfae_1_to_2 : EffectiveEpi π → Epi π
tfae_2_iff_3 : Epi π ↔ Function.Surjective ⇑π
⊢ Function.Surjective ⇑π → EffectiveEpi π
state_after: no goals
Theorem: CategoryTheory.OplaxNatTrans.ext
File: Mathlib/CategoryTheory/Bicategory/NaturalTransformation.lean

tactic: apply Modification.ext
state_before: B : Type u₁
inst✝¹ : Bicategory B
C : Type u₂
inst✝ : Bicategory C
F✝ G✝ : OplaxFunctor B C
η θ ι : F✝ ⟶ G✝
F G : OplaxFunctor B C
α β : F ⟶ G
m n : α ⟶ β
w : ∀ (b : B), m.app b = n.app b
⊢ m = n
state_after: case app
B : Type u₁
inst✝¹ : Bicategory B
C : Type u₂
inst✝ : Bicategory C
F✝ G✝ : OplaxFunctor B C
η θ ι : F✝ ⟶ G✝
F G : OplaxFunctor B C
α β : F ⟶ G
m n : α ⟶ β
w : ∀ (b : B), m.app b = n.app b
⊢ m.app = n.app

tactic: ext
state_before: case app
B : Type u₁
inst✝¹ : Bicategory B
C : Type u₂
inst✝ : Bicategory C
F✝ G✝ : OplaxFunctor B C
η θ ι : F✝ ⟶ G✝
F G : OplaxFunctor B C
α β : F ⟶ G
m n : α ⟶ β
w : ∀ (b : B), m.app b = n.app b
⊢ m.app = n.app
state_after: case app.h
B : Type u₁
inst✝¹ : Bicategory B
C : Type u₂
inst✝ : Bicategory C
F✝ G✝ : OplaxFunctor B C
η θ ι : F✝ ⟶ G✝
F G : OplaxFunctor B C
α β : F ⟶ G
m n : α ⟶ β
w : ∀ (b : B), m.app b = n.app b
x✝ : B
⊢ m.app x✝ = n.app x✝

tactic: apply w
state_before: case app.h
B : Type u₁
inst✝¹ : Bicategory B
C : Type u₂
inst✝ : Bicategory C
F✝ G✝ : OplaxFunctor B C
η θ ι : F✝ ⟶ G✝
F G : OplaxFunctor B C
α β : F ⟶ G
m n : α ⟶ β
w : ∀ (b : B), m.app b = n.app b
x✝ : B
⊢ m.app x✝ = n.app x✝
state_after: no goals