1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Pell.xn_add
File: Mathlib/NumberTheory/PellMatiyasevic.lean

tactic: injection pellZd_add a1 m n with h _
state_before: a : ℕ
a1 : 1 < a
m n : ℕ
⊢ xn a1 (m + n) = xn a1 m * xn a1 n + Pell.d a1 * yn a1 m * yn a1 n
state_after: a : ℕ
a1 : 1 < a
m n : ℕ
h : ↑(xn a1 (m + n)) = (pellZd a1 m).re * (pellZd a1 n).re + ↑(Pell.d a1) * (pellZd a1 m).im * (pellZd a1 n).im
im_eq✝ : ↑(yn a1 (m + n)) = (pellZd a1 m).re * (pellZd a1 n).im + (pellZd a1 m).im * (pellZd a1 n).re
⊢ xn a1 (m + n) = xn a1 m * xn a1 n + Pell.d a1 * yn a1 m * yn a1 n

tactic: zify
state_before: a : ℕ
a1 : 1 < a
m n : ℕ
h : ↑(xn a1 (m + n)) = (pellZd a1 m).re * (pellZd a1 n).re + ↑(Pell.d a1) * (pellZd a1 m).im * (pellZd a1 n).im
im_eq✝ : ↑(yn a1 (m + n)) = (pellZd a1 m).re * (pellZd a1 n).im + (pellZd a1 m).im * (pellZd a1 n).re
⊢ xn a1 (m + n) = xn a1 m * xn a1 n + Pell.d a1 * yn a1 m * yn a1 n
state_after: a : ℕ
a1 : 1 < a
m n : ℕ
h : ↑(xn a1 (m + n)) = (pellZd a1 m).re * (pellZd a1 n).re + ↑(Pell.d a1) * (pellZd a1 m).im * (pellZd a1 n).im
im_eq✝ : ↑(yn a1 (m + n)) = (pellZd a1 m).re * (pellZd a1 n).im + (pellZd a1 m).im * (pellZd a1 n).re
⊢ ↑(xn a1 (m + n)) = ↑(xn a1 m) * ↑(xn a1 n) + ↑(Pell.d a1) * ↑(yn a1 m) * ↑(yn a1 n)

tactic: rw [h]
state_before: a : ℕ
a1 : 1 < a
m n : ℕ
h : ↑(xn a1 (m + n)) = (pellZd a1 m).re * (pellZd a1 n).re + ↑(Pell.d a1) * (pellZd a1 m).im * (pellZd a1 n).im
im_eq✝ : ↑(yn a1 (m + n)) = (pellZd a1 m).re * (pellZd a1 n).im + (pellZd a1 m).im * (pellZd a1 n).re
⊢ ↑(xn a1 (m + n)) = ↑(xn a1 m) * ↑(xn a1 n) + ↑(Pell.d a1) * ↑(yn a1 m) * ↑(yn a1 n)
state_after: a : ℕ
a1 : 1 < a
m n : ℕ
h : ↑(xn a1 (m + n)) = (pellZd a1 m).re * (pellZd a1 n).re + ↑(Pell.d a1) * (pellZd a1 m).im * (pellZd a1 n).im
im_eq✝ : ↑(yn a1 (m + n)) = (pellZd a1 m).re * (pellZd a1 n).im + (pellZd a1 m).im * (pellZd a1 n).re
⊢ (pellZd a1 m).re * (pellZd a1 n).re + ↑(Pell.d a1) * (pellZd a1 m).im * (pellZd a1 n).im =
    ↑(xn a1 m) * ↑(xn a1 n) + ↑(Pell.d a1) * ↑(yn a1 m) * ↑(yn a1 n)

tactic: simp [pellZd]
state_before: a : ℕ
a1 : 1 < a
m n : ℕ
h : ↑(xn a1 (m + n)) = (pellZd a1 m).re * (pellZd a1 n).re + ↑(Pell.d a1) * (pellZd a1 m).im * (pellZd a1 n).im
im_eq✝ : ↑(yn a1 (m + n)) = (pellZd a1 m).re * (pellZd a1 n).im + (pellZd a1 m).im * (pellZd a1 n).re
⊢ (pellZd a1 m).re * (pellZd a1 n).re + ↑(Pell.d a1) * (pellZd a1 m).im * (pellZd a1 n).im =
    ↑(xn a1 m) * ↑(xn a1 n) + ↑(Pell.d a1) * ↑(yn a1 m) * ↑(yn a1 n)
state_after: no goals
Theorem: CategoryTheory.Functor.fun_inv_map
File: Mathlib/CategoryTheory/Equivalence.lean

tactic: erw [NatIso.naturality_2]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
F : C ⥤ D
inst✝ : F.IsEquivalence
X Y : D
f : X ⟶ Y
⊢ F.map (F.inv.map f) = F.asEquivalence.counit.app X ≫ f ≫ F.asEquivalence.counitInv.app Y
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
F : C ⥤ D
inst✝ : F.IsEquivalence
X Y : D
f : X ⟶ Y
⊢ F.map (F.inv.map f) = (F.asEquivalence.inverse ⋙ F.asEquivalence.functor).map f

tactic: rfl
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
F : C ⥤ D
inst✝ : F.IsEquivalence
X Y : D
f : X ⟶ Y
⊢ F.map (F.inv.map f) = (F.asEquivalence.inverse ⋙ F.asEquivalence.functor).map f
state_after: no goals
Theorem: QuotientGroup.preimage_image_mk_eq_iUnion_image
File: Mathlib/GroupTheory/Coset.lean

tactic: exact fun x ↦ image_mul_right'
state_before: α : Type u_1
inst✝ : Group α
s✝ : Subgroup α
a b : α
N : Subgroup α
s : Set α
⊢ ∀ (x : ↥N), (fun x_1 => x_1 * ↑x⁻¹) '' s = (fun x_1 => x_1 * ↑x) ⁻¹' s
state_after: no goals
Theorem: CategoryTheory.GrothendieckTopology.arrow_intersect
File: Mathlib/CategoryTheory/Sites/Grothendieck.lean

tactic: simpa [covers_iff] using And.intro hS hR
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y : C
S✝ R✝ : Sieve X
J : GrothendieckTopology C
f : Y ⟶ X
S R : Sieve X
hS : J.Covers S f
hR : J.Covers R f
⊢ J.Covers (S ⊓ R) f
state_after: no goals
Theorem: tendsto_cofinite_cocompact_of_discrete
File: Mathlib/Topology/DiscreteSubset.lean

tactic: convert hf
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
f : X → Y
inst✝ : DiscreteTopology X
hf : Tendsto f (cocompact X) (cocompact Y)
⊢ Tendsto f cofinite (cocompact Y)
state_after: case h.e'_4
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
f : X → Y
inst✝ : DiscreteTopology X
hf : Tendsto f (cocompact X) (cocompact Y)
⊢ cofinite = cocompact X

tactic: rw [cocompact_eq_cofinite X]
state_before: case h.e'_4
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
f : X → Y
inst✝ : DiscreteTopology X
hf : Tendsto f (cocompact X) (cocompact Y)
⊢ cofinite = cocompact X
state_after: no goals
Theorem: Commute.mul_pow
File: Mathlib/Algebra/Group/Commute/Defs.lean

tactic: rw [pow_zero, pow_zero, pow_zero, one_mul]
state_before: G : Type u_1
M : Type u_2
S : Type u_3
inst✝ : Monoid M
a b : M
h : Commute a b
⊢ (a * b) ^ 0 = a ^ 0 * b ^ 0
state_after: no goals

tactic: simp only [pow_succ', h.mul_pow n, ← mul_assoc, (h.pow_left n).right_comm]
state_before: G : Type u_1
M : Type u_2
S : Type u_3
inst✝ : Monoid M
a b : M
h : Commute a b
n : ℕ
⊢ (a * b) ^ (n + 1) = a ^ (n + 1) * b ^ (n + 1)
state_after: no goals
Theorem: MeasureTheory.FiniteMeasure.map_snd_prod
File: Mathlib/MeasureTheory/Measure/FiniteMeasureProd.lean

tactic: ext
state_before: α : Type u_1
inst✝¹ : MeasurableSpace α
β : Type u_2
inst✝ : MeasurableSpace β
μ : FiniteMeasure α
ν : FiniteMeasure β
⊢ (μ.prod ν).map Prod.snd = μ univ • ν
state_after: case h
α : Type u_1
inst✝¹ : MeasurableSpace α
β : Type u_2
inst✝ : MeasurableSpace β
μ : FiniteMeasure α
ν : FiniteMeasure β
s✝ : Set β
a✝ : MeasurableSet s✝
⊢ ↑((μ.prod ν).map Prod.snd) s✝ = ↑(μ univ • ν) s✝

tactic: simp
state_before: case h
α : Type u_1
inst✝¹ : MeasurableSpace α
β : Type u_2
inst✝ : MeasurableSpace β
μ : FiniteMeasure α
ν : FiniteMeasure β
s✝ : Set β
a✝ : MeasurableSet s✝
⊢ ↑((μ.prod ν).map Prod.snd) s✝ = ↑(μ univ • ν) s✝
state_after: no goals
Theorem: List.perm_append_right_iff
File: .lake/packages/batteries/Batteries/Data/List/Perm.lean

tactic: refine ⟨fun p => ?_, .append_right _⟩
state_before: α : Type u_1
l₁ l₂ l : List α
⊢ l₁ ++ l ~ l₂ ++ l ↔ l₁ ~ l₂
state_after: α : Type u_1
l₁ l₂ l : List α
p : l₁ ++ l ~ l₂ ++ l
⊢ l₁ ~ l₂

tactic: exact (perm_append_left_iff _).1 <| perm_append_comm.trans <| p.trans perm_append_comm
state_before: α : Type u_1
l₁ l₂ l : List α
p : l₁ ++ l ~ l₂ ++ l
⊢ l₁ ~ l₂
state_after: no goals
Theorem: inf_eq_right
File: Mathlib/Order/Lattice.lean

tactic: simp [le_rfl]
state_before: α : Type u
β : Type v
inst✝ : SemilatticeInf α
a b c d : α
⊢ a ⊓ b ≤ b ∧ b ≤ a ⊓ b ↔ b ≤ a
state_after: no goals
Theorem: Hyperreal.st_neg
File: Mathlib/Data/Real/Hyperreal.lean

tactic: rw [h.st_eq, (infinite_neg.2 h).st_eq, neg_zero]
state_before: x : ℝ*
h : x.Infinite
⊢ (-x).st = -x.st
state_after: no goals
Theorem: Fin.snoc_mem_piFinset_snoc
File: Mathlib/Data/Fin/Tuple/Finset.lean

tactic: simp_rw [mem_piFinset_succ', init_snoc, snoc_last]
state_before: n : ℕ
α : Fin (n + 1) → Type u_1
x : (i : Fin n) → α i.castSucc
xₙ : α (last n)
s : (i : Fin n) → Finset (α i.castSucc)
sₙ : Finset (α (last n))
⊢ snoc x xₙ ∈ piFinset (snoc s sₙ) ↔ x ∈ piFinset s ∧ xₙ ∈ sₙ
state_after: no goals
Theorem: Ultrafilter.finite_sUnion_mem_iff
File: Mathlib/Order/Filter/Ultrafilter.lean

tactic: simp
state_before: α : Type u
β : Type v
γ : Type u_1
f g : Ultrafilter α
s✝ t : Set α
p q : α → Prop
s : Set (Set α)
hs : s.Finite
⊢ ⋃₀ ∅ ∈ f ↔ ∃ t ∈ ∅, t ∈ f
state_after: no goals

tactic: simp [union_mem_iff, his, or_and_right, exists_or]
state_before: α : Type u
β : Type v
γ : Type u_1
f g : Ultrafilter α
s✝¹ t : Set α
p q : α → Prop
s : Set (Set α)
hs : s.Finite
a✝ : Set α
s✝ : Set (Set α)
x✝¹ : a✝ ∉ s✝
x✝ : s✝.Finite
his : ⋃₀ s✝ ∈ f ↔ ∃ t ∈ s✝, t ∈ f
⊢ ⋃₀ insert a✝ s✝ ∈ f ↔ ∃ t ∈ insert a✝ s✝, t ∈ f
state_after: no goals
Theorem: Set.Ioc.coe_eq_one
File: Mathlib/Algebra/Order/Interval/Set/Instances.lean

tactic: symm
state_before: α : Type u_1
inst✝¹ : StrictOrderedSemiring α
inst✝ : Nontrivial α
x : ↑(Ioc 0 1)
⊢ ↑x = 1 ↔ x = 1
state_after: α : Type u_1
inst✝¹ : StrictOrderedSemiring α
inst✝ : Nontrivial α
x : ↑(Ioc 0 1)
⊢ x = 1 ↔ ↑x = 1

tactic: exact Subtype.ext_iff
state_before: α : Type u_1
inst✝¹ : StrictOrderedSemiring α
inst✝ : Nontrivial α
x : ↑(Ioc 0 1)
⊢ x = 1 ↔ ↑x = 1
state_after: no goals
Theorem: IsCyclotomicExtension.splits_X_pow_sub_one
File: Mathlib/NumberTheory/Cyclotomic/Basic.lean

tactic: rw [← splits_id_iff_splits, Polynomial.map_sub, Polynomial.map_one, Polynomial.map_pow,
  Polynomial.map_X]
state_before: n : ℕ+
S T : Set ℕ+
A : Type u
B : Type v
K : Type w
L : Type z
inst✝⁵ : CommRing A
inst✝⁴ : CommRing B
inst✝³ : Algebra A B
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Algebra K L
H : IsCyclotomicExtension S K L
hS : n ∈ S
⊢ Splits (algebraMap K L) (X ^ ↑n - 1)
state_after: n : ℕ+
S T : Set ℕ+
A : Type u
B : Type v
K : Type w
L : Type z
inst✝⁵ : CommRing A
inst✝⁴ : CommRing B
inst✝³ : Algebra A B
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Algebra K L
H : IsCyclotomicExtension S K L
hS : n ∈ S
⊢ Splits (RingHom.id L) (X ^ ↑n - 1)

tactic: obtain ⟨z, hz⟩ := ((isCyclotomicExtension_iff _ _ _).1 H).1 hS
state_before: n : ℕ+
S T : Set ℕ+
A : Type u
B : Type v
K : Type w
L : Type z
inst✝⁵ : CommRing A
inst✝⁴ : CommRing B
inst✝³ : Algebra A B
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Algebra K L
H : IsCyclotomicExtension S K L
hS : n ∈ S
⊢ Splits (RingHom.id L) (X ^ ↑n - 1)
state_after: case intro
n : ℕ+
S T : Set ℕ+
A : Type u
B : Type v
K : Type w
L : Type z
inst✝⁵ : CommRing A
inst✝⁴ : CommRing B
inst✝³ : Algebra A B
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Algebra K L
H : IsCyclotomicExtension S K L
hS : n ∈ S
z : L
hz : IsPrimitiveRoot z ↑n
⊢ Splits (RingHom.id L) (X ^ ↑n - 1)

tactic: exact X_pow_sub_one_splits hz
state_before: case intro
n : ℕ+
S T : Set ℕ+
A : Type u
B : Type v
K : Type w
L : Type z
inst✝⁵ : CommRing A
inst✝⁴ : CommRing B
inst✝³ : Algebra A B
inst✝² : Field K
inst✝¹ : Field L
inst✝ : Algebra K L
H : IsCyclotomicExtension S K L
hS : n ∈ S
z : L
hz : IsPrimitiveRoot z ↑n
⊢ Splits (RingHom.id L) (X ^ ↑n - 1)
state_after: no goals
Theorem: HasFPowerSeriesOnBall.hasSum_iteratedFDeriv
File: Mathlib/Analysis/Calculus/FDeriv/Analytic.lean

tactic: convert h.hasSum hy with n
state_before: 𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
f : E → F
x : E
r : ℝ≥0∞
h : HasFPowerSeriesOnBall f p x r
y✝ : E
inst✝¹ : CompleteSpace F
inst✝ : CharZero 𝕜
y : E
hy : y ∈ EMetric.ball 0 r
⊢ HasSum (fun n => (↑n !)⁻¹ • (iteratedFDeriv 𝕜 n f x) fun x => y) (f (x + y))
state_after: case h.e'_5.h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
f : E → F
x : E
r : ℝ≥0∞
h : HasFPowerSeriesOnBall f p x r
y✝ : E
inst✝¹ : CompleteSpace F
inst✝ : CharZero 𝕜
y : E
hy : y ∈ EMetric.ball 0 r
n : ℕ
⊢ ((↑n !)⁻¹ • (iteratedFDeriv 𝕜 n f x) fun x => y) = (p n) fun x => y

tactic: rw [← h.factorial_smul y n, smul_comm, ← smul_assoc, nsmul_eq_mul,
  mul_inv_cancel <| cast_ne_zero.mpr n.factorial_ne_zero, one_smul]
state_before: case h.e'_5.h
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
f : E → F
x : E
r : ℝ≥0∞
h : HasFPowerSeriesOnBall f p x r
y✝ : E
inst✝¹ : CompleteSpace F
inst✝ : CharZero 𝕜
y : E
hy : y ∈ EMetric.ball 0 r
n : ℕ
⊢ ((↑n !)⁻¹ • (iteratedFDeriv 𝕜 n f x) fun x => y) = (p n) fun x => y
state_after: no goals
Theorem: Orientation.oangle_sub_left_eq_arcsin_of_oangle_eq_pi_div_two
File: Mathlib/Geometry/Euclidean/Angle/Oriented/RightAngle.lean

tactic: rw [← neg_inj, oangle_rev, ← oangle_neg_orientation_eq_neg, neg_inj] at h ⊢
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
hd2 : Fact (finrank ℝ V = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : o.oangle x y = ↑(π / 2)
⊢ o.oangle (x - y) x = ↑(Real.arcsin (‖y‖ / ‖x - y‖))
state_after: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
hd2 : Fact (finrank ℝ V = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : (-o).oangle y x = ↑(π / 2)
⊢ (-o).oangle x (x - y) = ↑(Real.arcsin (‖y‖ / ‖x - y‖))

tactic: exact (-o).oangle_sub_right_eq_arcsin_of_oangle_eq_pi_div_two h
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
hd2 : Fact (finrank ℝ V = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : (-o).oangle y x = ↑(π / 2)
⊢ (-o).oangle x (x - y) = ↑(Real.arcsin (‖y‖ / ‖x - y‖))
state_after: no goals
Theorem: UniformInducing.uniformEquicontinuous_iff
File: Mathlib/Topology/UniformSpace/Equicontinuity.lean

tactic: have := UniformFun.postcomp_uniformInducing (α := ι) hu
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 γ
F : ι → β → α
u : α → γ
hu : UniformInducing u
⊢ UniformEquicontinuous F ↔ UniformEquicontinuous ((fun x => u ∘ x) ∘ F)
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 γ
F : ι → β → α
u : α → γ
hu : UniformInducing u
this : UniformInducing (⇑UniformFun.ofFun ∘ (fun x => u ∘ x) ∘ ⇑toFun)
⊢ UniformEquicontinuous F ↔ UniformEquicontinuous ((fun x => u ∘ x) ∘ F)

tactic: simp only [uniformEquicontinuous_iff_uniformContinuous, this.uniformContinuous_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 γ
F : ι → β → α
u : α → γ
hu : UniformInducing u
this : UniformInducing (⇑UniformFun.ofFun ∘ (fun x => u ∘ x) ∘ ⇑toFun)
⊢ UniformEquicontinuous F ↔ UniformEquicontinuous ((fun x => u ∘ x) ∘ F)
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 γ
F : ι → β → α
u : α → γ
hu : UniformInducing u
this : UniformInducing (⇑UniformFun.ofFun ∘ (fun x => u ∘ x) ∘ ⇑toFun)
⊢ UniformContinuous ((⇑UniformFun.ofFun ∘ (fun x => u ∘ x) ∘ ⇑toFun) ∘ ⇑UniformFun.ofFun ∘ swap F) ↔
    UniformContinuous (⇑UniformFun.ofFun ∘ swap ((fun x => u ∘ x) ∘ F))

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 γ
F : ι → β → α
u : α → γ
hu : UniformInducing u
this : UniformInducing (⇑UniformFun.ofFun ∘ (fun x => u ∘ x) ∘ ⇑toFun)
⊢ UniformContinuous ((⇑UniformFun.ofFun ∘ (fun x => u ∘ x) ∘ ⇑toFun) ∘ ⇑UniformFun.ofFun ∘ swap F) ↔
    UniformContinuous (⇑UniformFun.ofFun ∘ swap ((fun x => u ∘ x) ∘ F))
state_after: no goals
Theorem: ENNReal.tsum_sub
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: simp only [← ENNReal.tsum_add, this]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g✝ : α → ℝ≥0∞
f g : ℕ → ℝ≥0∞
h₁ : ∑' (i : ℕ), g i ≠ ⊤
h₂ : g ≤ f
this : ∀ (i : ℕ), f i - g i + g i = f i
⊢ ∑' (i : ℕ), (f i - g i) + ∑' (i : ℕ), g i = ∑' (i : ℕ), f i
state_after: no goals
Theorem: CategoryTheory.Limits.HasZeroObject.zeroIsoTerminal_inv
File: Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean

tactic: ext
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
D : Type u'
inst✝³ : Category.{v', u'} D
inst✝² : HasZeroObject C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasTerminal C
⊢ zeroIsoTerminal.inv = 0
state_after: no goals
Theorem: ContinuousOn.surjOn_uIcc
File: Mathlib/Topology/Order/IntermediateValue.lean

tactic: rcases le_total (f a) (f b) with hab | hab <;> simp [hf.surjOn_Icc, *]
state_before: α : Type u
β : Type v
γ : Type w
inst✝¹⁰ : ConditionallyCompleteLinearOrder α
inst✝⁹ : TopologicalSpace α
inst✝⁸ : OrderTopology α
inst✝⁷ : ConditionallyCompleteLinearOrder β
inst✝⁶ : TopologicalSpace β
inst✝⁵ : OrderTopology β
inst✝⁴ : Nonempty γ
inst✝³ : DenselyOrdered α
a✝ b✝ : α
δ : Type u_1
inst✝² : LinearOrder δ
inst✝¹ : TopologicalSpace δ
inst✝ : OrderClosedTopology δ
s : Set α
hs : s.OrdConnected
f : α → δ
hf : ContinuousOn f s
a b : α
ha : a ∈ s
hb : b ∈ s
⊢ SurjOn f s (uIcc (f a) (f b))
state_after: no goals
Theorem: Finset.sum_affineCombinationLineMapWeights
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

tactic: simp_rw [affineCombinationLineMapWeights, Pi.add_apply, sum_add_distrib]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
S : AffineSpace V P
ι : Type u_4
s : Finset ι
ι₂ : Type u_5
s₂ : Finset ι₂
inst✝ : DecidableEq ι
i j : ι
hi : i ∈ s
hj : j ∈ s
c : k
⊢ ∑ t ∈ s, affineCombinationLineMapWeights i j c t = 1
state_after: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
S : AffineSpace V P
ι : Type u_4
s : Finset ι
ι₂ : Type u_5
s₂ : Finset ι₂
inst✝ : DecidableEq ι
i j : ι
hi : i ∈ s
hj : j ∈ s
c : k
⊢ ∑ x ∈ s, (c • weightedVSubVSubWeights k j i) x + ∑ x ∈ s, affineCombinationSingleWeights k i x = 1

tactic: simp [hi, hj, ← mul_sum]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
S : AffineSpace V P
ι : Type u_4
s : Finset ι
ι₂ : Type u_5
s₂ : Finset ι₂
inst✝ : DecidableEq ι
i j : ι
hi : i ∈ s
hj : j ∈ s
c : k
⊢ ∑ x ∈ s, (c • weightedVSubVSubWeights k j i) x + ∑ x ∈ s, affineCombinationSingleWeights k i x = 1
state_after: no goals
Theorem: CircleDeg1Lift.translationNumber_units_inv
File: Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean

tactic: simp [← translationNumber_mul_of_commute (Commute.refl _).units_inv_left]
state_before: f✝ g : CircleDeg1Lift
f : CircleDeg1Liftˣ
⊢ τ ↑f⁻¹ + τ ↑f = 0
state_after: no goals
Theorem: SimpleGraph.colorable_chromaticNumber_of_fintype
File: Mathlib/Combinatorics/SimpleGraph/Coloring.lean

tactic: cases nonempty_fintype V
state_before: V : Type u
G✝ : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C : G✝.Coloring α
G : SimpleGraph V
inst✝ : Finite V
⊢ G.Colorable G.chromaticNumber.toNat
state_after: case intro
V : Type u
G✝ : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C : G✝.Coloring α
G : SimpleGraph V
inst✝ : Finite V
val✝ : Fintype V
⊢ G.Colorable G.chromaticNumber.toNat

tactic: exact colorable_chromaticNumber G.colorable_of_fintype
state_before: case intro
V : Type u
G✝ : SimpleGraph V
n : ℕ
α : Type u_1
β : Type u_2
C : G✝.Coloring α
G : SimpleGraph V
inst✝ : Finite V
val✝ : Fintype V
⊢ G.Colorable G.chromaticNumber.toNat
state_after: no goals
Theorem: SimpleGraph.Walk.map_fst_darts
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: simpa! using congr_arg List.dropLast (map_fst_darts_append p)
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
p : G.Walk u v
⊢ List.map (fun x => x.toProd.1) p.darts = p.support.dropLast
state_after: no goals
Theorem: upperCentralSeriesStep_eq_comap_center
File: Mathlib/GroupTheory/Nilpotent.lean

tactic: ext
state_before: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
⊢ upperCentralSeriesStep H = comap (mk' H) (center (G ⧸ H))
state_after: case h
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
x✝ : G
⊢ x✝ ∈ upperCentralSeriesStep H ↔ x✝ ∈ comap (mk' H) (center (G ⧸ H))

tactic: rw [mem_comap, mem_center_iff, forall_mk]
state_before: case h
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
x✝ : G
⊢ x✝ ∈ upperCentralSeriesStep H ↔ x✝ ∈ comap (mk' H) (center (G ⧸ H))
state_after: case h
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
x✝ : G
⊢ x✝ ∈ upperCentralSeriesStep H ↔ ∀ (x : G), ↑x * (mk' H) x✝ = (mk' H) x✝ * ↑x

tactic: apply forall_congr'
state_before: case h
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
x✝ : G
⊢ x✝ ∈ upperCentralSeriesStep H ↔ ∀ (x : G), ↑x * (mk' H) x✝ = (mk' H) x✝ * ↑x
state_after: case h.h
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
x✝ : G
⊢ ∀ (a : G), x✝ * a * x✝⁻¹ * a⁻¹ ∈ H ↔ ↑a * (mk' H) x✝ = (mk' H) x✝ * ↑a

tactic: intro y
state_before: case h.h
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
x✝ : G
⊢ ∀ (a : G), x✝ * a * x✝⁻¹ * a⁻¹ ∈ H ↔ ↑a * (mk' H) x✝ = (mk' H) x✝ * ↑a
state_after: case h.h
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
x✝ y : G
⊢ x✝ * y * x✝⁻¹ * y⁻¹ ∈ H ↔ ↑y * (mk' H) x✝ = (mk' H) x✝ * ↑y

tactic: rw [coe_mk', ← QuotientGroup.mk_mul, ← QuotientGroup.mk_mul, eq_comm, eq_iff_div_mem,
  div_eq_mul_inv, mul_inv_rev, mul_assoc]
state_before: case h.h
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
x✝ y : G
⊢ x✝ * y * x✝⁻¹ * y⁻¹ ∈ H ↔ ↑y * (mk' H) x✝ = (mk' H) x✝ * ↑y
state_after: no goals