1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Profinite.NobelingProof.projRestricts_eq_comp
File: Mathlib/Topology/Category/Profinite/Nobeling.lean

tactic: ext x i
state_before: I : Type u
inst✝⁴ : LinearOrder I
inst✝³ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
J K L : I → Prop
inst✝² : (i : I) → Decidable (J i)
inst✝¹ : (i : I) → Decidable (K i)
inst✝ : (i : I) → Decidable (L i)
hJK : ∀ (i : I), J i → K i
hKL : ∀ (i : I), K i → L i
⊢ ProjRestricts C hJK ∘ ProjRestricts C hKL = ProjRestricts C ⋯
state_after: case h.a.h
I : Type u
inst✝⁴ : LinearOrder I
inst✝³ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
J K L : I → Prop
inst✝² : (i : I) → Decidable (J i)
inst✝¹ : (i : I) → Decidable (K i)
inst✝ : (i : I) → Decidable (L i)
hJK : ∀ (i : I), J i → K i
hKL : ∀ (i : I), K i → L i
x : ↑(π C L)
i : I
⊢ ↑((ProjRestricts C hJK ∘ ProjRestricts C hKL) x) i = ↑(ProjRestricts C ⋯ x) i

tactic: simp only [π, Proj, Function.comp_apply, ProjRestricts_coe]
state_before: case h.a.h
I : Type u
inst✝⁴ : LinearOrder I
inst✝³ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
J K L : I → Prop
inst✝² : (i : I) → Decidable (J i)
inst✝¹ : (i : I) → Decidable (K i)
inst✝ : (i : I) → Decidable (L i)
hJK : ∀ (i : I), J i → K i
hKL : ∀ (i : I), K i → L i
x : ↑(π C L)
i : I
⊢ ↑((ProjRestricts C hJK ∘ ProjRestricts C hKL) x) i = ↑(ProjRestricts C ⋯ x) i
state_after: case h.a.h
I : Type u
inst✝⁴ : LinearOrder I
inst✝³ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
J K L : I → Prop
inst✝² : (i : I) → Decidable (J i)
inst✝¹ : (i : I) → Decidable (K i)
inst✝ : (i : I) → Decidable (L i)
hJK : ∀ (i : I), J i → K i
hKL : ∀ (i : I), K i → L i
x : ↑(π C L)
i : I
⊢ (if J i then if K i then ↑x i else false else false) = if J i then ↑x i else false

tactic: aesop
state_before: case h.a.h
I : Type u
inst✝⁴ : LinearOrder I
inst✝³ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
J K L : I → Prop
inst✝² : (i : I) → Decidable (J i)
inst✝¹ : (i : I) → Decidable (K i)
inst✝ : (i : I) → Decidable (L i)
hJK : ∀ (i : I), J i → K i
hKL : ∀ (i : I), K i → L i
x : ↑(π C L)
i : I
⊢ (if J i then if K i then ↑x i else false else false) = if J i then ↑x i else false
state_after: no goals
Theorem: Real.fourierIntegralInv_comm
File: Mathlib/Analysis/Fourier/FourierTransform.lean

tactic: conv_rhs => rw [fourierIntegralInv_eq_fourierIntegral_comp_neg]
state_before: E : Type u_1
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℂ E
V : Type u_2
inst✝⁹ : NormedAddCommGroup V
inst✝⁸ : InnerProductSpace ℝ V
inst✝⁷ : MeasurableSpace V
inst✝⁶ : BorelSpace V
inst✝⁵ : FiniteDimensional ℝ V
W : Type u_3
inst✝⁴ : NormedAddCommGroup W
inst✝³ : InnerProductSpace ℝ W
inst✝² : MeasurableSpace W
inst✝¹ : BorelSpace W
inst✝ : FiniteDimensional ℝ W
f : V → E
⊢ 𝓕 (𝓕⁻ f) = 𝓕⁻ (𝓕 f)
state_after: E : Type u_1
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℂ E
V : Type u_2
inst✝⁹ : NormedAddCommGroup V
inst✝⁸ : InnerProductSpace ℝ V
inst✝⁷ : MeasurableSpace V
inst✝⁶ : BorelSpace V
inst✝⁵ : FiniteDimensional ℝ V
W : Type u_3
inst✝⁴ : NormedAddCommGroup W
inst✝³ : InnerProductSpace ℝ W
inst✝² : MeasurableSpace W
inst✝¹ : BorelSpace W
inst✝ : FiniteDimensional ℝ W
f : V → E
⊢ 𝓕 (𝓕⁻ f) = 𝓕 fun x => 𝓕 f (-x)

tactic: simp_rw [← fourierIntegralInv_eq_fourierIntegral_neg]
state_before: E : Type u_1
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℂ E
V : Type u_2
inst✝⁹ : NormedAddCommGroup V
inst✝⁸ : InnerProductSpace ℝ V
inst✝⁷ : MeasurableSpace V
inst✝⁶ : BorelSpace V
inst✝⁵ : FiniteDimensional ℝ V
W : Type u_3
inst✝⁴ : NormedAddCommGroup W
inst✝³ : InnerProductSpace ℝ W
inst✝² : MeasurableSpace W
inst✝¹ : BorelSpace W
inst✝ : FiniteDimensional ℝ W
f : V → E
⊢ 𝓕 (𝓕⁻ f) = 𝓕 fun x => 𝓕 f (-x)
state_after: no goals
Theorem: ContinuousMultilinearMap.norm_map_init_le
File: Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean

tactic: rw [prod_univ_castSucc]
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
n : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin n.succ → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin n.succ) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin n.succ) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : ContinuousMultilinearMap 𝕜 (fun i => Ei i.castSucc) (Ei (last n) →L[𝕜] G)
m : (i : Fin n.succ) → Ei i
⊢ ‖f‖ * ((∏ i : Fin n, ‖init m i‖) * ‖m (last n)‖) = ‖f‖ * ∏ i : Fin n.succ, ‖m i‖
state_after: 𝕜 : Type u
ι : Type v
ι' : Type v'
n : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin n.succ → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin n.succ) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin n.succ) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : ContinuousMultilinearMap 𝕜 (fun i => Ei i.castSucc) (Ei (last n) →L[𝕜] G)
m : (i : Fin n.succ) → Ei i
⊢ ‖f‖ * ((∏ i : Fin n, ‖init m i‖) * ‖m (last n)‖) = ‖f‖ * ((∏ i : Fin n, ‖m i.castSucc‖) * ‖m (last n)‖)

tactic: rfl
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
n : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin n.succ → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin n.succ) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin n.succ) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : ContinuousMultilinearMap 𝕜 (fun i => Ei i.castSucc) (Ei (last n) →L[𝕜] G)
m : (i : Fin n.succ) → Ei i
⊢ ‖f‖ * ((∏ i : Fin n, ‖init m i‖) * ‖m (last n)‖) = ‖f‖ * ((∏ i : Fin n, ‖m i.castSucc‖) * ‖m (last n)‖)
state_after: no goals
Theorem: Equiv.Perm.set_support_apply_mem
File: Mathlib/GroupTheory/Perm/Support.lean

tactic: simp
state_before: α : Type u_1
p✝ q p : Perm α
a : α
⊢ p a ∈ {x | p x ≠ x} ↔ a ∈ {x | p x ≠ x}
state_after: no goals
Theorem: SimpleGraph.Walk.nil_iff_length_eq
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: cases p <;> simp
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v w : V
p : G.Walk v w
⊢ p.Nil ↔ p.length = 0
state_after: no goals
Theorem: Set.Iio_union_Ico'
File: Mathlib/Order/Interval/Set/Basic.lean

tactic: ext1 x
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c ≤ b
⊢ Iio b ∪ Ico c d = Iio (max b d)
state_after: case h
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c ≤ b
x : α
⊢ x ∈ Iio b ∪ Ico c d ↔ x ∈ Iio (max b d)

tactic: simp_rw [mem_union, mem_Iio, mem_Ico, lt_max_iff]
state_before: case h
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c ≤ b
x : α
⊢ x ∈ Iio b ∪ Ico c d ↔ x ∈ Iio (max b d)
state_after: case h
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c ≤ b
x : α
⊢ x < b ∨ c ≤ x ∧ x < d ↔ x < b ∨ x < d

tactic: by_cases hc : c ≤ x
state_before: case h
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c ≤ b
x : α
⊢ x < b ∨ c ≤ x ∧ x < d ↔ x < b ∨ x < d
state_after: case pos
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c ≤ b
x : α
hc : c ≤ x
⊢ x < b ∨ c ≤ x ∧ x < d ↔ x < b ∨ x < d

case neg
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c ≤ b
x : α
hc : ¬c ≤ x
⊢ x < b ∨ c ≤ x ∧ x < d ↔ x < b ∨ x < d

tactic: simp only [hc, true_and]
state_before: case pos
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c ≤ b
x : α
hc : c ≤ x
⊢ x < b ∨ c ≤ x ∧ x < d ↔ x < b ∨ x < d
state_after: no goals

tactic: have hxb : x < b := (lt_of_not_ge hc).trans_le h₁
state_before: case neg
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c ≤ b
x : α
hc : ¬c ≤ x
⊢ x < b ∨ c ≤ x ∧ x < d ↔ x < b ∨ x < d
state_after: case neg
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c ≤ b
x : α
hc : ¬c ≤ x
hxb : x < b
⊢ x < b ∨ c ≤ x ∧ x < d ↔ x < b ∨ x < d

tactic: simp only [hxb, true_or]
state_before: case neg
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h₁ : c ≤ b
x : α
hc : ¬c ≤ x
hxb : x < b
⊢ x < b ∨ c ≤ x ∧ x < d ↔ x < b ∨ x < d
state_after: no goals
Theorem: Tactic.NormNum.int_not_isCoprime_helper
File: Mathlib/Tactic/NormNum/IsCoprime.lean

tactic: rw [Int.isCoprime_iff_gcd_eq_one, hd]
state_before: x y : ℤ
d : ℕ
hd : x.gcd y = d
h : d.beq 1 = false
⊢ ¬IsCoprime x y
state_after: x y : ℤ
d : ℕ
hd : x.gcd y = d
h : d.beq 1 = false
⊢ ¬d = 1

tactic: exact Nat.ne_of_beq_eq_false h
state_before: x y : ℤ
d : ℕ
hd : x.gcd y = d
h : d.beq 1 = false
⊢ ¬d = 1
state_after: no goals
Theorem: Cardinal.lift_prod
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: lift c to ι → Type v using fun _ => trivial
state_before: α β ι : Type u
c : ι → Cardinal.{v}
⊢ lift.{w, max v u} (prod c) = prod fun i => lift.{w, v} (c i)
state_after: case intro
α β ι : Type u
c : ι → Type v
⊢ lift.{w, max v u} (prod fun i => #(c i)) = prod fun i => lift.{w, v} ((fun i => #(c i)) i)

tactic: simp only [← mk_pi, ← mk_uLift]
state_before: case intro
α β ι : Type u
c : ι → Type v
⊢ lift.{w, max v u} (prod fun i => #(c i)) = prod fun i => lift.{w, v} ((fun i => #(c i)) i)
state_after: case intro
α β ι : Type u
c : ι → Type v
⊢ #(ULift.{w, max u v} ((i : ι) → c i)) = #((i : ι) → ULift.{w, v} (c i))

tactic: exact mk_congr (Equiv.ulift.trans <| Equiv.piCongrRight fun i => Equiv.ulift.symm)
state_before: case intro
α β ι : Type u
c : ι → Type v
⊢ #(ULift.{w, max u v} ((i : ι) → c i)) = #((i : ι) → ULift.{w, v} (c i))
state_after: no goals
Theorem: rank_range_of_surjective
File: Mathlib/LinearAlgebra/Dimension/Basic.lean

tactic: rw [LinearMap.range_eq_top.2 h, rank_top]
state_before: R : Type u
R' : Type u'
M M₁ : Type v
M' : Type v'
inst✝⁹ : Ring R
inst✝⁸ : Ring R'
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M'
inst✝⁵ : AddCommGroup M₁
inst✝⁴ : Module R M
inst✝³ : Module R M'
inst✝² : Module R M₁
inst✝¹ : Module R' M'
inst✝ : Module R' M₁
f : M →ₗ[R] M'
h : Surjective ⇑f
⊢ Module.rank R ↥(LinearMap.range f) = Module.rank R M'
state_after: no goals
Theorem: NormedAddGroupHom.norm_id_le
File: Mathlib/Analysis/Normed/Group/Hom.lean

tactic: simp
state_before: V : Type u_1
V₁ : Type u_2
V₂ : Type u_3
V₃ : Type u_4
inst✝³ : SeminormedAddCommGroup V
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f g : NormedAddGroupHom V₁ V₂
x : V
⊢ ‖(id V) x‖ ≤ 1 * ‖x‖
state_after: no goals
Theorem: HurwitzZeta.completedHurwitzZetaEven₀_neg
File: Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean

tactic: simp only [completedHurwitzZetaEven₀, hurwitzEvenFEPair_neg]
state_before: a : UnitAddCircle
s : ℂ
⊢ completedHurwitzZetaEven₀ (-a) s = completedHurwitzZetaEven₀ a s
state_after: no goals
Theorem: UV.aux
File: Mathlib/Combinatorics/SetFamily/Compression/UV.lean

tactic: rintro rfl
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜 : Finset (Finset α)
u v a : Finset α
r : ℕ
huv : ∀ x ∈ u, ∃ y ∈ v, IsCompressed (u.erase x) (v.erase y) 𝒜
⊢ v = ∅ → u = ∅
state_after: α : Type u_1
inst✝ : DecidableEq α
𝒜 : Finset (Finset α)
u a : Finset α
r : ℕ
huv : ∀ x ∈ u, ∃ y ∈ ∅, IsCompressed (u.erase x) (∅.erase y) 𝒜
⊢ u = ∅

tactic: refine eq_empty_of_forall_not_mem fun a ha ↦ ?_
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜 : Finset (Finset α)
u a : Finset α
r : ℕ
huv : ∀ x ∈ u, ∃ y ∈ ∅, IsCompressed (u.erase x) (∅.erase y) 𝒜
⊢ u = ∅
state_after: α : Type u_1
inst✝ : DecidableEq α
𝒜 : Finset (Finset α)
u a✝ : Finset α
r : ℕ
huv : ∀ x ∈ u, ∃ y ∈ ∅, IsCompressed (u.erase x) (∅.erase y) 𝒜
a : α
ha : a ∈ u
⊢ False

tactic: obtain ⟨_, ⟨⟩, -⟩ := huv a ha
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜 : Finset (Finset α)
u a✝ : Finset α
r : ℕ
huv : ∀ x ∈ u, ∃ y ∈ ∅, IsCompressed (u.erase x) (∅.erase y) 𝒜
a : α
ha : a ∈ u
⊢ False
state_after: no goals
Theorem: IsSMulRegular.one
File: Mathlib/Algebra/Regular/SMul.lean

tactic: dsimp only [Function.comp_def] at ab
state_before: R : Type u_1
S : Type u_2
M : Type u_3
a✝ b✝ : R
s : S
inst✝¹ : Monoid R
inst✝ : MulAction R M
a b : M
ab : (fun x => 1 • x) a = (fun x => 1 • x) b
⊢ a = b
state_after: R : Type u_1
S : Type u_2
M : Type u_3
a✝ b✝ : R
s : S
inst✝¹ : Monoid R
inst✝ : MulAction R M
a b : M
ab : 1 • a = 1 • b
⊢ a = b

tactic: rw [one_smul, one_smul] at ab
state_before: R : Type u_1
S : Type u_2
M : Type u_3
a✝ b✝ : R
s : S
inst✝¹ : Monoid R
inst✝ : MulAction R M
a b : M
ab : 1 • a = 1 • b
⊢ a = b
state_after: R : Type u_1
S : Type u_2
M : Type u_3
a✝ b✝ : R
s : S
inst✝¹ : Monoid R
inst✝ : MulAction R M
a b : M
ab : a = b
⊢ a = b

tactic: assumption
state_before: R : Type u_1
S : Type u_2
M : Type u_3
a✝ b✝ : R
s : S
inst✝¹ : Monoid R
inst✝ : MulAction R M
a b : M
ab : a = b
⊢ a = b
state_after: no goals
Theorem: OrderIso.image_Iio
File: Mathlib/Order/Interval/Set/OrderIso.lean

tactic: rw [e.image_eq_preimage, e.symm.preimage_Iio, e.symm_symm]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
e : α ≃o β
a : α
⊢ ⇑e '' Iio a = Iio (e a)
state_after: no goals
Theorem: WithTop.preimage_coe_Ico
File: Mathlib/Order/Interval/Set/WithBotTop.lean

tactic: simp [← Ici_inter_Iio]
state_before: α : Type u_1
inst✝ : Preorder α
a b : α
⊢ some ⁻¹' Ico ↑a ↑b = Ico a b
state_after: no goals
Theorem: CategoryTheory.effectiveEpi_desc_iff_effectiveEpiFamily
File: Mathlib/CategoryTheory/EffectiveEpi/Extensive.lean

tactic: exact ⟨fun h ↦ ⟨⟨@effectiveEpiFamilyStructOfEffectiveEpiDesc _ _ _ _ X π _ h _ _ (fun g ↦
  (FinitaryPreExtensive.sigma_desc_iso (fun a ↦ Sigma.ι X a) g inferInstance).epi_of_iso)⟩⟩,
  fun _ ↦ inferInstance⟩
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : FinitaryPreExtensive C
α : Type
inst✝ : Finite α
B : C
X : α → C
π : (a : α) → X a ⟶ B
⊢ EffectiveEpi (Sigma.desc π) ↔ EffectiveEpiFamily X π
state_after: no goals
Theorem: Filter.tendsto_prod_self_iff
File: Mathlib/Order/Filter/Lift.lean

tactic: simp only [tendsto_def, mem_prod_same_iff, prod_sub_preimage_iff, exists_prop, iff_self_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
f✝ : Filter α
f : α × α → β
x : Filter α
y : Filter β
⊢ Tendsto f (x ×ˢ x) y ↔ ∀ W ∈ y, ∃ U ∈ x, ∀ (x x' : α), x ∈ U → x' ∈ U → f (x, x') ∈ W
state_after: no goals
Theorem: LinearMap.polyCharpolyAux_coeff_eval
File: Mathlib/Algebra/Module/LinearMap/Polynomial.lean

tactic: nontriviality R
state_before: R : Type u_1
L : Type u_2
M : Type u_3
n : Type u_4
ι : Type u_5
ι' : Type u_6
ιM : Type u_7
inst✝¹² : CommRing R
inst✝¹¹ : AddCommGroup L
inst✝¹⁰ : Module R L
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
φ : L →ₗ[R] Module.End R M
inst✝⁷ : Fintype ι
inst✝⁶ : Fintype ι'
inst✝⁵ : Fintype ιM
inst✝⁴ : DecidableEq ι
inst✝³ : DecidableEq ι'
inst✝² : DecidableEq ιM
b : Basis ι R L
bₘ : Basis ιM R M
inst✝¹ : Module.Finite R M
inst✝ : Module.Free R M
x : L
i : ℕ
⊢ (MvPolynomial.eval ⇑(b.repr x)) ((φ.polyCharpolyAux b bₘ).coeff i) = (charpoly (φ x)).coeff i
state_after: R : Type u_1
L : Type u_2
M : Type u_3
n : Type u_4
ι : Type u_5
ι' : Type u_6
ιM : Type u_7
inst✝¹² : CommRing R
inst✝¹¹ : AddCommGroup L
inst✝¹⁰ : Module R L
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
φ : L →ₗ[R] Module.End R M
inst✝⁷ : Fintype ι
inst✝⁶ : Fintype ι'
inst✝⁵ : Fintype ιM
inst✝⁴ : DecidableEq ι
inst✝³ : DecidableEq ι'
inst✝² : DecidableEq ιM
b : Basis ι R L
bₘ : Basis ιM R M
inst✝¹ : Module.Finite R M
inst✝ : Module.Free R M
x : L
i : ℕ
a✝ : Nontrivial R
⊢ (MvPolynomial.eval ⇑(b.repr x)) ((φ.polyCharpolyAux b bₘ).coeff i) = (charpoly (φ x)).coeff i

tactic: rw [← polyCharpolyAux_map_eq_charpoly φ b bₘ x, Polynomial.coeff_map]
state_before: R : Type u_1
L : Type u_2
M : Type u_3
n : Type u_4
ι : Type u_5
ι' : Type u_6
ιM : Type u_7
inst✝¹² : CommRing R
inst✝¹¹ : AddCommGroup L
inst✝¹⁰ : Module R L
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
φ : L →ₗ[R] Module.End R M
inst✝⁷ : Fintype ι
inst✝⁶ : Fintype ι'
inst✝⁵ : Fintype ιM
inst✝⁴ : DecidableEq ι
inst✝³ : DecidableEq ι'
inst✝² : DecidableEq ιM
b : Basis ι R L
bₘ : Basis ιM R M
inst✝¹ : Module.Finite R M
inst✝ : Module.Free R M
x : L
i : ℕ
a✝ : Nontrivial R
⊢ (MvPolynomial.eval ⇑(b.repr x)) ((φ.polyCharpolyAux b bₘ).coeff i) = (charpoly (φ x)).coeff i
state_after: no goals
Theorem: induced_to_pi
File: Mathlib/Topology/Constructions.lean

tactic: simp_rw [Pi.topologicalSpace, induced_iInf, induced_compose, Function.comp]
state_before: X✝ : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
ι : Type u_5
π : ι → Type u_6
κ : Type u_7
inst✝ : TopologicalSpace X✝
T : (i : ι) → TopologicalSpace (π i)
f✝ : X✝ → (i : ι) → π i
X : Type u_8
f : X → (i : ι) → π i
⊢ induced f Pi.topologicalSpace = ⨅ i, induced (fun x => f x i) inferInstance
state_after: no goals
Theorem: NNRat.le_def
File: Mathlib/Data/NNRat/Defs.lean

tactic: rw [← NNRat.coe_le_coe, Rat.le_def]
state_before: p✝ q✝ : ℚ≥0
n₁ n₂ d₁ d₂ d : ℕ
p q : ℚ≥0
⊢ p ≤ q ↔ p.num * q.den ≤ q.num * p.den
state_after: p✝ q✝ : ℚ≥0
n₁ n₂ d₁ d₂ d : ℕ
p q : ℚ≥0
⊢ (↑p).num * ↑(↑q).den ≤ (↑q).num * ↑(↑p).den ↔ p.num * q.den ≤ q.num * p.den

tactic: norm_cast
state_before: p✝ q✝ : ℚ≥0
n₁ n₂ d₁ d₂ d : ℕ
p q : ℚ≥0
⊢ (↑p).num * ↑(↑q).den ≤ (↑q).num * ↑(↑p).den ↔ p.num * q.den ≤ q.num * p.den
state_after: no goals
Theorem: SetTheory.PGame.impartial_def
File: Mathlib/SetTheory/Game/Impartial.lean

tactic: simpa only [impartial_iff_aux] using impartialAux_def
state_before: G : PGame
⊢ G.Impartial ↔
    G ≈ -G ∧ (∀ (i : G.LeftMoves), (G.moveLeft i).Impartial) ∧ ∀ (j : G.RightMoves), (G.moveRight j).Impartial
state_after: no goals
Theorem: Holor.cprankMax_nil
File: Mathlib/Data/Holor.lean

tactic: have h := CPRankMax.succ 0 x 0 (CPRankMax1.nil x) CPRankMax.zero
state_before: α : Type
d : ℕ
ds ds₁ ds₂ ds₃ : List ℕ
inst✝¹ : Monoid α
inst✝ : AddMonoid α
x : Holor α []
⊢ CPRankMax 1 x
state_after: α : Type
d : ℕ
ds ds₁ ds₂ ds₃ : List ℕ
inst✝¹ : Monoid α
inst✝ : AddMonoid α
x : Holor α []
h : CPRankMax (0 + 1) (x + 0)
⊢ CPRankMax 1 x

tactic: rwa [add_zero x, zero_add] at h
state_before: α : Type
d : ℕ
ds ds₁ ds₂ ds₃ : List ℕ
inst✝¹ : Monoid α
inst✝ : AddMonoid α
x : Holor α []
h : CPRankMax (0 + 1) (x + 0)
⊢ CPRankMax 1 x
state_after: no goals
Theorem: Submodule.mem_torsionBySet_iff
File: Mathlib/Algebra/Module/Torsion.lean

tactic: refine ⟨fun h ⟨a, ha⟩ => mem_sInf.mp h _ (Set.mem_image_of_mem _ ha), fun h => mem_sInf.mpr ?_⟩
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a : R
x : M
⊢ x ∈ torsionBySet R M s ↔ ∀ (a : ↑s), ↑a • x = 0
state_after: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a : R
x : M
h : ∀ (a : ↑s), ↑a • x = 0
⊢ ∀ p ∈ torsionBy R M '' s, x ∈ p

tactic: rintro _ ⟨a, ha, rfl⟩
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a : R
x : M
h : ∀ (a : ↑s), ↑a • x = 0
⊢ ∀ p ∈ torsionBy R M '' s, x ∈ p
state_after: case intro.intro
R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a✝ : R
x : M
h : ∀ (a : ↑s), ↑a • x = 0
a : R
ha : a ∈ s
⊢ x ∈ torsionBy R M a

tactic: exact h ⟨a, ha⟩
state_before: case intro.intro
R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a✝ : R
x : M
h : ∀ (a : ↑s), ↑a • x = 0
a : R
ha : a ∈ s
⊢ x ∈ torsionBy R M a
state_after: no goals
Theorem: AffineBasis.coord_apply_ne
File: Mathlib/LinearAlgebra/AffineSpace/Basis.lean

tactic: rw [coord, AffineMap.coe_mk, ← @Subtype.coe_mk _ (fun j => j ≠ i) j h.symm, ← b.basisOf_apply,
  Basis.sumCoords_self_apply, sub_self]
state_before: ι : Type u_1
ι' : Type u_2
k : Type u_3
V : Type u_4
P : Type u_5
inst✝³ : AddCommGroup V
inst✝² : AffineSpace V P
inst✝¹ : Ring k
inst✝ : Module k V
b : AffineBasis ι k P
s : Finset ι
i j : ι
e : ι ≃ ι'
h : i ≠ j
⊢ (b.coord i) (b j) = 0
state_after: no goals
Theorem: UniformSpaceCat.extension_comp_coe
File: Mathlib/Topology/Category/UniformSpace.lean

tactic: apply Subtype.eq
state_before: X : UniformSpaceCat
Y : CpltSepUniformSpace
f : (CpltSepUniformSpace.of (Completion ↑X)).toUniformSpace ⟶ Y.toUniformSpace
⊢ extensionHom (X.completionHom ≫ f) = f
state_after: case a
X : UniformSpaceCat
Y : CpltSepUniformSpace
f : (CpltSepUniformSpace.of (Completion ↑X)).toUniformSpace ⟶ Y.toUniformSpace
⊢ ↑(extensionHom (X.completionHom ≫ f)) = ↑f

tactic: funext x
state_before: case a
X : UniformSpaceCat
Y : CpltSepUniformSpace
f : (CpltSepUniformSpace.of (Completion ↑X)).toUniformSpace ⟶ Y.toUniformSpace
⊢ ↑(extensionHom (X.completionHom ≫ f)) = ↑f
state_after: case a.h
X : UniformSpaceCat
Y : CpltSepUniformSpace
f : (CpltSepUniformSpace.of (Completion ↑X)).toUniformSpace ⟶ Y.toUniformSpace
x : ↑(completionFunctor.obj X).toUniformSpace
⊢ ↑(extensionHom (X.completionHom ≫ f)) x = ↑f x

tactic: exact congr_fun (Completion.extension_comp_coe f.property) x
state_before: case a.h
X : UniformSpaceCat
Y : CpltSepUniformSpace
f : (CpltSepUniformSpace.of (Completion ↑X)).toUniformSpace ⟶ Y.toUniformSpace
x : ↑(completionFunctor.obj X).toUniformSpace
⊢ ↑(extensionHom (X.completionHom ≫ f)) x = ↑f x
state_after: no goals
Theorem: List.length_insertNth_le_succ
File: Mathlib/Data/List/InsertNth.lean

tactic: rcases le_or_lt n l.length with hn | hn
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a : α
l : List α
x : α
n : ℕ
⊢ (insertNth n x l).length ≤ l.length + 1
state_after: case inl
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a : α
l : List α
x : α
n : ℕ
hn : n ≤ l.length
⊢ (insertNth n x l).length ≤ l.length + 1

case inr
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a : α
l : List α
x : α
n : ℕ
hn : l.length < n
⊢ (insertNth n x l).length ≤ l.length + 1

tactic: rw [length_insertNth _ _ hn]
state_before: case inl
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a : α
l : List α
x : α
n : ℕ
hn : n ≤ l.length
⊢ (insertNth n x l).length ≤ l.length + 1
state_after: no goals

tactic: rw [insertNth_of_length_lt _ _ _ hn]
state_before: case inr
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a : α
l : List α
x : α
n : ℕ
hn : l.length < n
⊢ (insertNth n x l).length ≤ l.length + 1
state_after: case inr
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a : α
l : List α
x : α
n : ℕ
hn : l.length < n
⊢ l.length ≤ l.length + 1

tactic: exact (Nat.lt_succ_self _).le
state_before: case inr
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a : α
l : List α
x : α
n : ℕ
hn : l.length < n
⊢ l.length ≤ l.length + 1
state_after: no goals