1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: HomogeneousLocalization.val_smul
File: Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean

tactic: rw [← mk_smul, val_mk, val_mk, Localization.smul_mk]
state_before: ι : Type u_1
R : Type u_2
A : Type u_3
inst✝⁹ : AddCommMonoid ι
inst✝⁸ : DecidableEq ι
inst✝⁷ : CommRing R
inst✝⁶ : CommRing A
inst✝⁵ : Algebra R A
𝒜 : ι → Submodule R A
inst✝⁴ : GradedAlgebra 𝒜
x : Submonoid A
α : Type u_4
inst✝³ : SMul α R
inst✝² : SMul α A
inst✝¹ : IsScalarTower α R A
inst✝ : IsScalarTower α A A
n : α
x✝ : NumDenSameDeg 𝒜 x
⊢ (n • Quotient.mk'' x✝).val = n • val (Quotient.mk'' x✝)
state_after: ι : Type u_1
R : Type u_2
A : Type u_3
inst✝⁹ : AddCommMonoid ι
inst✝⁸ : DecidableEq ι
inst✝⁷ : CommRing R
inst✝⁶ : CommRing A
inst✝⁵ : Algebra R A
𝒜 : ι → Submodule R A
inst✝⁴ : GradedAlgebra 𝒜
x : Submonoid A
α : Type u_4
inst✝³ : SMul α R
inst✝² : SMul α A
inst✝¹ : IsScalarTower α R A
inst✝ : IsScalarTower α A A
n : α
x✝ : NumDenSameDeg 𝒜 x
⊢ Localization.mk ↑(n • x✝).num ⟨↑(n • x✝).den, ⋯⟩ = Localization.mk (n • ↑x✝.num) ⟨↑x✝.den, ⋯⟩

tactic: rfl
state_before: ι : Type u_1
R : Type u_2
A : Type u_3
inst✝⁹ : AddCommMonoid ι
inst✝⁸ : DecidableEq ι
inst✝⁷ : CommRing R
inst✝⁶ : CommRing A
inst✝⁵ : Algebra R A
𝒜 : ι → Submodule R A
inst✝⁴ : GradedAlgebra 𝒜
x : Submonoid A
α : Type u_4
inst✝³ : SMul α R
inst✝² : SMul α A
inst✝¹ : IsScalarTower α R A
inst✝ : IsScalarTower α A A
n : α
x✝ : NumDenSameDeg 𝒜 x
⊢ Localization.mk ↑(n • x✝).num ⟨↑(n • x✝).den, ⋯⟩ = Localization.mk (n • ↑x✝.num) ⟨↑x✝.den, ⋯⟩
state_after: no goals
Theorem: Nat.ceil_natCast
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [ceil_le, cast_le]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedSemiring α
inst✝ : FloorSemiring α
a✝ : α
n✝ n a : ℕ
⊢ ⌈↑n⌉₊ ≤ a ↔ n ≤ a
state_after: no goals
Theorem: Nat.shiftLeft_lt
File: Mathlib/Data/Nat/Bitwise.lean

tactic: simp only [Nat.pow_add, shiftLeft_eq, Nat.mul_lt_mul_right (Nat.two_pow_pos _), h]
state_before: x n m : ℕ
h : x < 2 ^ n
⊢ x <<< m < 2 ^ (n + m)
state_after: no goals
Theorem: MeasureTheory.withDensity_zero_left
File: Mathlib/MeasureTheory/Measure/WithDensity.lean

tactic: ext s hs
state_before: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ≥0∞
⊢ withDensity 0 f = 0
state_after: case h
α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ≥0∞
s : Set α
hs : MeasurableSet s
⊢ (withDensity 0 f) s = 0 s

tactic: rw [withDensity_apply _ hs]
state_before: case h
α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ≥0∞
s : Set α
hs : MeasurableSet s
⊢ (withDensity 0 f) s = 0 s
state_after: case h
α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ≥0∞
s : Set α
hs : MeasurableSet s
⊢ ∫⁻ (a : α) in s, f a ∂0 = 0 s

tactic: simp
state_before: case h
α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ≥0∞
s : Set α
hs : MeasurableSet s
⊢ ∫⁻ (a : α) in s, f a ∂0 = 0 s
state_after: no goals
Theorem: Codisjoint.map
File: Mathlib/Order/Hom/Lattice.lean

tactic: rw [codisjoint_iff, ← map_sup, h.eq_top, map_top]
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
inst✝⁵ : Lattice α
inst✝⁴ : BoundedOrder α
inst✝³ : Lattice β
inst✝² : BoundedOrder β
inst✝¹ : FunLike F α β
inst✝ : BoundedLatticeHomClass F α β
f : F
a b : α
h : Codisjoint a b
⊢ Codisjoint (f a) (f b)
state_after: no goals
Theorem: Complex.tan_sq_div_one_add_tan_sq
File: Mathlib/Data/Complex/Exponential.lean

tactic: simp only [← tan_mul_cos hx, mul_pow, ← inv_one_add_tan_sq hx, div_eq_mul_inv, one_mul]
state_before: x✝ y x : ℂ
hx : cos x ≠ 0
⊢ tan x ^ 2 / (1 + tan x ^ 2) = sin x ^ 2
state_after: no goals
Theorem: le_nhds_mul
File: Mathlib/Topology/Algebra/Monoid.lean

tactic: rw [← map₂_mul, ← map_uncurry_prod, ← nhds_prod_eq]
state_before: ι : Type u_1
α : Type u_2
M : Type u_3
N : Type u_4
X : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace M
inst✝¹ : Mul M
inst✝ : ContinuousMul M
a b : M
⊢ 𝓝 a * 𝓝 b ≤ 𝓝 (a * b)
state_after: ι : Type u_1
α : Type u_2
M : Type u_3
N : Type u_4
X : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace M
inst✝¹ : Mul M
inst✝ : ContinuousMul M
a b : M
⊢ map (Function.uncurry fun x x_1 => x * x_1) (𝓝 (a, b)) ≤ 𝓝 (a * b)

tactic: exact continuous_mul.tendsto _
state_before: ι : Type u_1
α : Type u_2
M : Type u_3
N : Type u_4
X : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace M
inst✝¹ : Mul M
inst✝ : ContinuousMul M
a b : M
⊢ map (Function.uncurry fun x x_1 => x * x_1) (𝓝 (a, b)) ≤ 𝓝 (a * b)
state_after: no goals
Theorem: Nat.factorizationLCMLeft_zero_right
File: Mathlib/Data/Nat/Factorization/Basic.lean

tactic: simp [factorizationLCMLeft]
state_before: a b m n p : ℕ
⊢ a.factorizationLCMLeft 0 = 1
state_after: no goals
Theorem: Polynomial.normalize_monic
File: Mathlib/Algebra/Polynomial/FieldDivision.lean

tactic: simp [h]
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝¹ : Field R
p q : R[X]
inst✝ : DecidableEq R
h : p.Monic
⊢ normalize p = p
state_after: no goals
Theorem: tendsto_prod_filter_iff
File: Mathlib/Topology/UniformSpace/UniformConvergence.lean

tactic: simp_rw [nhds_eq_comap_uniformity, tendsto_comap_iff]
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
c : β
⊢ Tendsto (↿F) (p ×ˢ p') (𝓝 c) ↔ TendstoUniformlyOnFilter F (fun x => c) p p'
state_after: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
c : β
⊢ Tendsto (Prod.mk c ∘ ↿F) (p ×ˢ p') (𝓤 β) ↔ TendstoUniformlyOnFilter F (fun x => c) p p'

tactic: rfl
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
c : β
⊢ Tendsto (Prod.mk c ∘ ↿F) (p ×ˢ p') (𝓤 β) ↔ TendstoUniformlyOnFilter F (fun x => c) p p'
state_after: no goals
Theorem: LinearMap.rank_comp_le_right
File: Mathlib/LinearAlgebra/Dimension/LinearMap.lean

tactic: simpa only [Cardinal.lift_id] using lift_rank_comp_le_right g f
state_before: K : Type u
V V₁ : Type v
V' V'₁ : Type v'
V'' : Type v''
inst✝¹⁰ : Ring K
inst✝⁹ : AddCommGroup V
inst✝⁸ : Module K V
inst✝⁷ : AddCommGroup V₁
inst✝⁶ : Module K V₁
inst✝⁵ : AddCommGroup V'
inst✝⁴ : Module K V'
inst✝³ : AddCommGroup V''
inst✝² : Module K V''
inst✝¹ : AddCommGroup V'₁
inst✝ : Module K V'₁
g : V →ₗ[K] V'
f : V' →ₗ[K] V'₁
⊢ (f ∘ₗ g).rank ≤ g.rank
state_after: no goals
Theorem: Complex.I_mul_I
File: Mathlib/Data/Complex/Basic.lean

tactic: simp
state_before: ⊢ (I * I).re = (-1).re ∧ (I * I).im = (-1).im
state_after: no goals
Theorem: LeftOrdContinuous.map_sSup
File: Mathlib/Order/OrdContinuous.lean

tactic: rw [hf.map_sSup', sSup_image]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝¹ : CompleteLattice α
inst✝ : CompleteLattice β
f : α → β
hf : LeftOrdContinuous f
s : Set α
⊢ f (sSup s) = ⨆ x ∈ s, f x
state_after: no goals
Theorem: SimpleGraph.Walk.toSubgraph_rotate
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: rw [rotate, toSubgraph_append, sup_comm, ← toSubgraph_append, take_spec]
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v w : V
inst✝ : DecidableEq V
c : G.Walk v v
h : u ∈ c.support
⊢ (c.rotate h).toSubgraph = c.toSubgraph
state_after: no goals
Theorem: SimpleGraph.Subgraph.coeSubgraph_adj
File: Mathlib/Combinatorics/SimpleGraph/Subgraph.lean

tactic: simp [Relation.Map]
state_before: ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
G' : G.Subgraph
G'' : G'.coe.Subgraph
v w : V
⊢ (Subgraph.coeSubgraph G'').Adj v w ↔ ∃ (hv : v ∈ G'.verts) (hw : w ∈ G'.verts), G''.Adj ⟨v, hv⟩ ⟨w, hw⟩
state_after: no goals
Theorem: Fin.le_rev_iff
File: Mathlib/Data/Fin/Basic.lean

tactic: rw [← rev_le_rev, rev_rev]
state_before: n m : ℕ
i j : Fin n
⊢ i ≤ j.rev ↔ j ≤ i.rev
state_after: no goals
Theorem: isPreconnected_connectedComponentIn
File: Mathlib/Topology/Connected/Basic.lean

tactic: rw [connectedComponentIn]
state_before: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
x : α
F : Set α
⊢ IsPreconnected (connectedComponentIn F x)
state_after: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
x : α
F : Set α
⊢ IsPreconnected (if h : x ∈ F then Subtype.val '' connectedComponent ⟨x, h⟩ else ∅)

tactic: split_ifs
state_before: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
x : α
F : Set α
⊢ IsPreconnected (if h : x ∈ F then Subtype.val '' connectedComponent ⟨x, h⟩ else ∅)
state_after: case pos
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
x : α
F : Set α
h✝ : x ∈ F
⊢ IsPreconnected (Subtype.val '' connectedComponent ⟨x, h✝⟩)

case neg
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
x : α
F : Set α
h✝ : x ∉ F
⊢ IsPreconnected ∅

tactic: exact inducing_subtype_val.isPreconnected_image.mpr isPreconnected_connectedComponent
state_before: case pos
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
x : α
F : Set α
h✝ : x ∈ F
⊢ IsPreconnected (Subtype.val '' connectedComponent ⟨x, h✝⟩)
state_after: no goals

tactic: exact isPreconnected_empty
state_before: case neg
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
x : α
F : Set α
h✝ : x ∉ F
⊢ IsPreconnected ∅
state_after: no goals
Theorem: MeasureTheory.Memℒp.integral_indicator_norm_ge_nonneg_le_of_meas
File: Mathlib/MeasureTheory/Function/UniformIntegrable.lean

tactic: simpa
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup β
p : ℝ≥0∞
f : α → β
hf : Memℒp f 1 μ
hmeas : StronglyMeasurable f
ε : ℝ
hε : 0 < ε
M : ℝ
hM : ∫⁻ (x : α), ↑‖{x | M ≤ ↑‖f x‖₊}.indicator f x‖₊ ∂μ ≤ ENNReal.ofReal ε
⊢ ∫⁻ (x : α), ↑‖{x | max M 0 ≤ ↑‖f x‖₊}.indicator f x‖₊ ∂μ ≤ ENNReal.ofReal ε
state_after: no goals
Theorem: Filter.nhds_mono
File: Mathlib/Topology/Filter.lean

tactic: refine ⟨fun h => ?_, fun h => monotone_nhds h⟩
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
X : Type u_4
Y : Type u_5
l₁ l₂ : Filter α
⊢ 𝓝 l₁ ≤ 𝓝 l₂ ↔ l₁ ≤ l₂
state_after: ι : Sort u_1
α : Type u_2
β : Type u_3
X : Type u_4
Y : Type u_5
l₁ l₂ : Filter α
h : 𝓝 l₁ ≤ 𝓝 l₂
⊢ l₁ ≤ l₂

tactic: rw [← Iic_subset_Iic, ← sInter_nhds, ← sInter_nhds]
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
X : Type u_4
Y : Type u_5
l₁ l₂ : Filter α
h : 𝓝 l₁ ≤ 𝓝 l₂
⊢ l₁ ≤ l₂
state_after: ι : Sort u_1
α : Type u_2
β : Type u_3
X : Type u_4
Y : Type u_5
l₁ l₂ : Filter α
h : 𝓝 l₁ ≤ 𝓝 l₂
⊢ ⋂₀ {s | s ∈ 𝓝 l₁} ⊆ ⋂₀ {s | s ∈ 𝓝 l₂}

tactic: exact sInter_subset_sInter h
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
X : Type u_4
Y : Type u_5
l₁ l₂ : Filter α
h : 𝓝 l₁ ≤ 𝓝 l₂
⊢ ⋂₀ {s | s ∈ 𝓝 l₁} ⊆ ⋂₀ {s | s ∈ 𝓝 l₂}
state_after: no goals
Theorem: MeasureTheory.Measure.zero_mconv
File: Mathlib/MeasureTheory/Group/Convolution.lean

tactic: unfold mconv
state_before: M : Type u_1
inst✝¹ : Monoid M
inst✝ : MeasurableSpace M
μ : Measure M
⊢ μ ∗ 0 = 0
state_after: M : Type u_1
inst✝¹ : Monoid M
inst✝ : MeasurableSpace M
μ : Measure M
⊢ map (fun x => x.1 * x.2) (μ.prod 0) = 0

tactic: simp
state_before: M : Type u_1
inst✝¹ : Monoid M
inst✝ : MeasurableSpace M
μ : Measure M
⊢ map (fun x => x.1 * x.2) (μ.prod 0) = 0
state_after: no goals
Theorem: MeasureTheory.Measure.restrict_map
File: Mathlib/MeasureTheory/Measure/Restrict.lean

tactic: simp [*, hf ht]
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
f : α → β
hf : Measurable f
s : Set β
hs : MeasurableSet s
t : Set β
ht : MeasurableSet t
⊢ ((map f μ).restrict s) t = (map f (μ.restrict (f ⁻¹' s))) t
state_after: no goals
Theorem: NormedSpace.isClosed_polar
File: Mathlib/Analysis/NormedSpace/Dual.lean

tactic: dsimp only [NormedSpace.polar]
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
s : Set E
⊢ IsClosed (polar 𝕜 s)
state_after: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
s : Set E
⊢ IsClosed ((dualPairing 𝕜 E).flip.polar s)

tactic: simp only [LinearMap.polar_eq_iInter, LinearMap.flip_apply]
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
s : Set E
⊢ IsClosed ((dualPairing 𝕜 E).flip.polar s)
state_after: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
s : Set E
⊢ IsClosed (⋂ x ∈ s, {y | ‖((dualPairing 𝕜 E) y) x‖ ≤ 1})

tactic: refine isClosed_biInter fun z _ => ?_
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
s : Set E
⊢ IsClosed (⋂ x ∈ s, {y | ‖((dualPairing 𝕜 E) y) x‖ ≤ 1})
state_after: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
s : Set E
z : E
x✝ : z ∈ s
⊢ IsClosed {y | ‖((dualPairing 𝕜 E) y) z‖ ≤ 1}

tactic: exact isClosed_Iic.preimage (ContinuousLinearMap.apply 𝕜 𝕜 z).continuous.norm
state_before: 𝕜 : Type u_1
inst✝² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
s : Set E
z : E
x✝ : z ∈ s
⊢ IsClosed {y | ‖((dualPairing 𝕜 E) y) z‖ ≤ 1}
state_after: no goals
Theorem: List.foldl_hom₂
File: Mathlib/Data/List/Basic.lean

tactic: revert a b
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
l : List ι
f : α → β → γ
op₁ : α → ι → α
op₂ : β → ι → β
op₃ : γ → ι → γ
a : α
b : β
h : ∀ (a : α) (b : β) (i : ι), f (op₁ a i) (op₂ b i) = op₃ (f a b) i
⊢ f (foldl op₁ a l) (foldl op₂ b l) = foldl op₃ (f a b) l
state_after: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
l : List ι
f : α → β → γ
op₁ : α → ι → α
op₂ : β → ι → β
op₃ : γ → ι → γ
h : ∀ (a : α) (b : β) (i : ι), f (op₁ a i) (op₂ b i) = op₃ (f a b) i
⊢ ∀ (a : α) (b : β), f (foldl op₁ a l) (foldl op₂ b l) = foldl op₃ (f a b) l

tactic: induction l <;> intros <;> [rfl; simp only [*, foldl]]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
l : List ι
f : α → β → γ
op₁ : α → ι → α
op₂ : β → ι → β
op₃ : γ → ι → γ
h : ∀ (a : α) (b : β) (i : ι), f (op₁ a i) (op₂ b i) = op₃ (f a b) i
⊢ ∀ (a : α) (b : β), f (foldl op₁ a l) (foldl op₂ b l) = foldl op₃ (f a b) l
state_after: no goals
Theorem: Mathlib.Tactic.Ring.cast_zero
File: Mathlib/Tactic/Ring/Basic.lean

tactic: simp [e]
state_before: u : Lean.Level
R : Type u_1
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝ : CommSemiring R
a : R
e : a = ↑0
⊢ a = 0
state_after: no goals
Theorem: NumberField.ComplexEmbedding.isReal_comp_iff
File: Mathlib/NumberTheory/NumberField/Embeddings.lean

tactic: convert H.comp f.symm.toRingHom
state_before: K : Type u_1
inst✝¹ : Field K
k : Type u_2
inst✝ : Field k
f : k ≃+* K
φ : K →+* ℂ
H : IsReal (φ.comp ↑f)
⊢ IsReal φ
state_after: case h.e'_3
K : Type u_1
inst✝¹ : Field K
k : Type u_2
inst✝ : Field k
f : k ≃+* K
φ : K →+* ℂ
H : IsReal (φ.comp ↑f)
⊢ φ = (φ.comp ↑f).comp f.symm.toRingHom

tactic: ext1
state_before: case h.e'_3
K : Type u_1
inst✝¹ : Field K
k : Type u_2
inst✝ : Field k
f : k ≃+* K
φ : K →+* ℂ
H : IsReal (φ.comp ↑f)
⊢ φ = (φ.comp ↑f).comp f.symm.toRingHom
state_after: case h.e'_3.a
K : Type u_1
inst✝¹ : Field K
k : Type u_2
inst✝ : Field k
f : k ≃+* K
φ : K →+* ℂ
H : IsReal (φ.comp ↑f)
x✝ : K
⊢ φ x✝ = ((φ.comp ↑f).comp f.symm.toRingHom) x✝

tactic: simp
state_before: case h.e'_3.a
K : Type u_1
inst✝¹ : Field K
k : Type u_2
inst✝ : Field k
f : k ≃+* K
φ : K →+* ℂ
H : IsReal (φ.comp ↑f)
x✝ : K
⊢ φ x✝ = ((φ.comp ↑f).comp f.symm.toRingHom) x✝
state_after: no goals
Theorem: Sym2.Rel.trans
File: Mathlib/Data/Sym/Sym2.lean

tactic: aesop (rule_sets := [Sym2])
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
x y z : α × α
a : Rel α x y
b : Rel α y z
⊢ Rel α x z
state_after: no goals
Theorem: CategoryTheory.Bicategory.pentagon_hom_inv_inv_inv_hom
File: Mathlib/CategoryTheory/Bicategory/Basic.lean

tactic: rw [← cancel_epi (α_ f g (h ≫ i)).inv, ← cancel_mono ((α_ f g h).inv ▷ i)]
state_before: B : Type u
inst✝ : Bicategory B
a b c d e : B
f : a ⟶ b
g : b ⟶ c
h : c ⟶ d
i : d ⟶ e
⊢ (α_ f g (h ≫ i)).hom ≫ f ◁ (α_ g h i).inv ≫ (α_ f (g ≫ h) i).inv = (α_ (f ≫ g) h i).inv ≫ (α_ f g h).hom ▷ i
state_after: B : Type u
inst✝ : Bicategory B
a b c d e : B
f : a ⟶ b
g : b ⟶ c
h : c ⟶ d
i : d ⟶ e
⊢ ((α_ f g (h ≫ i)).inv ≫ (α_ f g (h ≫ i)).hom ≫ f ◁ (α_ g h i).inv ≫ (α_ f (g ≫ h) i).inv) ≫ (α_ f g h).inv ▷ i =
    ((α_ f g (h ≫ i)).inv ≫ (α_ (f ≫ g) h i).inv ≫ (α_ f g h).hom ▷ i) ≫ (α_ f g h).inv ▷ i

tactic: simp
state_before: B : Type u
inst✝ : Bicategory B
a b c d e : B
f : a ⟶ b
g : b ⟶ c
h : c ⟶ d
i : d ⟶ e
⊢ ((α_ f g (h ≫ i)).inv ≫ (α_ f g (h ≫ i)).hom ≫ f ◁ (α_ g h i).inv ≫ (α_ f (g ≫ h) i).inv) ≫ (α_ f g h).inv ▷ i =
    ((α_ f g (h ≫ i)).inv ≫ (α_ (f ≫ g) h i).inv ≫ (α_ f g h).hom ▷ i) ≫ (α_ f g h).inv ▷ i
state_after: no goals
Theorem: Filter.tendsto_iff_rtendsto
File: Mathlib/Order/Filter/Partial.lean

tactic: simp [tendsto_def, Function.graph, rtendsto_def, Rel.core, Set.preimage]
state_before: α : Type u
β : Type v
γ : Type w
l₁ : Filter α
l₂ : Filter β
f : α → β
⊢ Tendsto f l₁ l₂ ↔ RTendsto (Function.graph f) l₁ l₂
state_after: no goals
Theorem: IsCompact.closure_subset_of_isOpen
File: Mathlib/Topology/Separation.lean

tactic: rw [hK.closure_eq_biUnion_inseparable, iUnion₂_subset_iff]
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
inst✝ : R1Space X
x y : X
K : Set X
hK : IsCompact K
U : Set X
hU : IsOpen U
hKU : K ⊆ U
⊢ closure K ⊆ U
state_after: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
inst✝ : R1Space X
x y : X
K : Set X
hK : IsCompact K
U : Set X
hU : IsOpen U
hKU : K ⊆ U
⊢ ∀ i ∈ K, {y | Inseparable i y} ⊆ U

tactic: exact fun x hx y hxy ↦ (hxy.mem_open_iff hU).1 (hKU hx)
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
inst✝ : R1Space X
x y : X
K : Set X
hK : IsCompact K
U : Set X
hU : IsOpen U
hKU : K ⊆ U
⊢ ∀ i ∈ K, {y | Inseparable i y} ⊆ U
state_after: no goals
Theorem: Set.image2_insert_right
File: Mathlib/Data/Set/NAry.lean

tactic: rw [insert_eq, image2_union_right, image2_singleton_right]
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Set α
t t' : Set β
u u' : Set γ
v : Set δ
a a' : α
b b' : β
c c' : γ
d d' : δ
⊢ image2 f s (insert b t) = (fun a => f a b) '' s ∪ image2 f s t
state_after: no goals
Theorem: Nat.not_prime_mul
File: Mathlib/Data/Nat/Prime.lean

tactic: simp [prime_mul_iff, _root_.not_or, *]
state_before: n a b : ℕ
a1 : a ≠ 1
b1 : b ≠ 1
⊢ ¬Prime (a * b)
state_after: no goals
Theorem: CategoryTheory.Limits.coprod.map_codiag
File: Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean

tactic: simp
state_before: C : Type u
inst✝² : Category.{v, u} C
X✝ Y✝ X Y : C
f : X ⟶ Y
inst✝¹ : HasBinaryCoproduct X X
inst✝ : HasBinaryCoproduct Y Y
⊢ map f f ≫ codiag Y = codiag X ≫ f
state_after: no goals
Theorem: Nat.factorization_eq_zero_of_non_prime
File: Mathlib/Data/Nat/Factorization/Basic.lean

tactic: simp [factorization_eq_zero_iff, hp]
state_before: a b m n✝ p✝ n p : ℕ
hp : ¬Prime p
⊢ n.factorization p = 0
state_after: no goals
Theorem: List.Ico.pairwise_lt
File: Mathlib/Data/List/Intervals.lean

tactic: dsimp [Ico]
state_before: n m : ℕ
⊢ Pairwise (fun x x_1 => x < x_1) (Ico n m)
state_after: n m : ℕ
⊢ Pairwise (fun x x_1 => x < x_1) (range' n (m - n))

tactic: simp [pairwise_lt_range', autoParam]
state_before: n m : ℕ
⊢ Pairwise (fun x x_1 => x < x_1) (range' n (m - n))
state_after: no goals
Theorem: Filter.HasBasis.uniformEquicontinuousOn_iff_right
File: Mathlib/Topology/UniformSpace/Equicontinuity.lean

tactic: rw [uniformEquicontinuousOn_iff_uniformContinuousOn, UniformContinuousOn,
  (UniformFun.hasBasis_uniformity_of_basis ι α hα).tendsto_right_iff]
state_before: ι : Type u_1
κ : Type u_2
X : Type u_3
X' : Type u_4
Y : Type u_5
Z : Type u_6
α : Type u_7
α' : Type u_8
β : Type u_9
β' : Type u_10
γ : Type u_11
𝓕 : Type u_12
tX : TopologicalSpace X
tY : TopologicalSpace Y
tZ : TopologicalSpace Z
uα : UniformSpace α
uβ : UniformSpace β
uγ : UniformSpace γ
p : κ → Prop
s : κ → Set (α × α)
F : ι → β → α
S : Set β
hα : (𝓤 α).HasBasis p s
⊢ UniformEquicontinuousOn F S ↔
    ∀ (k : κ), p k → ∀ᶠ (xy : β × β) in 𝓤 β ⊓ 𝓟 (S ×ˢ S), ∀ (i : ι), (F i xy.1, F i xy.2) ∈ s k
state_after: ι : Type u_1
κ : Type u_2
X : Type u_3
X' : Type u_4
Y : Type u_5
Z : Type u_6
α : Type u_7
α' : Type u_8
β : Type u_9
β' : Type u_10
γ : Type u_11
𝓕 : Type u_12
tX : TopologicalSpace X
tY : TopologicalSpace Y
tZ : TopologicalSpace Z
uα : UniformSpace α
uβ : UniformSpace β
uγ : UniformSpace γ
p : κ → Prop
s : κ → Set (α × α)
F : ι → β → α
S : Set β
hα : (𝓤 α).HasBasis p s
⊢ (∀ (i : κ),
      p i →
        ∀ᶠ (x : β × β) in 𝓤 β ⊓ 𝓟 (S ×ˢ S),
          ((⇑UniformFun.ofFun ∘ swap F) x.1, (⇑UniformFun.ofFun ∘ swap F) x.2) ∈ (UniformFun.gen ι α ∘ s) i) ↔
    ∀ (k : κ), p k → ∀ᶠ (xy : β × β) in 𝓤 β ⊓ 𝓟 (S ×ˢ S), ∀ (i : ι), (F i xy.1, F i xy.2) ∈ s k

tactic: rfl
state_before: ι : Type u_1
κ : Type u_2
X : Type u_3
X' : Type u_4
Y : Type u_5
Z : Type u_6
α : Type u_7
α' : Type u_8
β : Type u_9
β' : Type u_10
γ : Type u_11
𝓕 : Type u_12
tX : TopologicalSpace X
tY : TopologicalSpace Y
tZ : TopologicalSpace Z
uα : UniformSpace α
uβ : UniformSpace β
uγ : UniformSpace γ
p : κ → Prop
s : κ → Set (α × α)
F : ι → β → α
S : Set β
hα : (𝓤 α).HasBasis p s
⊢ (∀ (i : κ),
      p i →
        ∀ᶠ (x : β × β) in 𝓤 β ⊓ 𝓟 (S ×ˢ S),
          ((⇑UniformFun.ofFun ∘ swap F) x.1, (⇑UniformFun.ofFun ∘ swap F) x.2) ∈ (UniformFun.gen ι α ∘ s) i) ↔
    ∀ (k : κ), p k → ∀ᶠ (xy : β × β) in 𝓤 β ⊓ 𝓟 (S ×ˢ S), ∀ (i : ι), (F i xy.1, F i xy.2) ∈ s k
state_after: no goals
Theorem: Cardinal.mk_preimage_of_injective
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rw [← lift_id #(↑(f ⁻¹' s)), ← lift_id #(↑s)]
state_before: α β : Type u
c : Cardinal.{?u.231143}
f : α → β
s : Set β
h : Injective f
⊢ #↑(f ⁻¹' s) ≤ #↑s
state_after: α β : Type u
c : Cardinal.{?u.231143}
f : α → β
s : Set β
h : Injective f
⊢ lift.{u, u} #↑(f ⁻¹' s) ≤ lift.{u, u} #↑s

tactic: exact mk_preimage_of_injective_lift f s h
state_before: α β : Type u
c : Cardinal.{?u.231143}
f : α → β
s : Set β
h : Injective f
⊢ lift.{u, u} #↑(f ⁻¹' s) ≤ lift.{u, u} #↑s
state_after: no goals