1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: SimpleGraph.IsTuranMaximal.degree_eq_card_sub_part_card
File: Mathlib/Combinatorics/SimpleGraph/Turan.lean

tactic: simp [← card_neighborFinset_eq_degree, neighborFinset]
state_before: V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
⊢ G.degree s = (filter (G.Adj s) univ).card
state_after: no goals

tactic: congr
state_before: V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
⊢ Fintype.card V - (filter (fun x => ¬G.Adj s x) univ).card = Fintype.card V - (h.finpartition.part s).card
state_after: case e_a.e_s
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
⊢ filter (fun x => ¬G.Adj s x) univ = h.finpartition.part s

tactic: ext
state_before: case e_a.e_s
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
⊢ filter (fun x => ¬G.Adj s x) univ = h.finpartition.part s
state_after: case e_a.e_s.a
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
a✝ : V
⊢ a✝ ∈ filter (fun x => ¬G.Adj s x) univ ↔ a✝ ∈ h.finpartition.part s

tactic: rw [mem_filter]
state_before: case e_a.e_s.a
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
a✝ : V
⊢ a✝ ∈ filter (fun x => ¬G.Adj s x) univ ↔ a✝ ∈ h.finpartition.part s
state_after: case e_a.e_s.a
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
a✝ : V
⊢ a✝ ∈ univ ∧ ¬G.Adj s a✝ ↔ a✝ ∈ h.finpartition.part s

tactic: convert Finpartition.mem_part_ofSetoid_iff_rel.symm
state_before: case e_a.e_s.a
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
a✝ : V
⊢ a✝ ∈ univ ∧ ¬G.Adj s a✝ ↔ a✝ ∈ h.finpartition.part s
state_after: case h.e'_1.a
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
a✝ : V
⊢ a✝ ∈ univ ∧ ¬G.Adj s a✝ ↔ Setoid.r s a✝

tactic: simp [setoid]
state_before: case h.e'_1.a
V : Type u_1
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
n r : ℕ
s t u : V
h : G.IsTuranMaximal r
a✝ : V
⊢ a✝ ∈ univ ∧ ¬G.Adj s a✝ ↔ Setoid.r s a✝
state_after: no goals
Theorem: CPolynomialOn.iterated_deriv
File: Mathlib/Analysis/Calculus/FDeriv/Analytic.lean

tactic: induction' n with n IH
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 𝕜 𝕜 F
r : ℝ≥0∞
f : 𝕜 → F
x : 𝕜
s : Set 𝕜
h : CPolynomialOn 𝕜 f s
n : ℕ
⊢ CPolynomialOn 𝕜 (deriv^[n] f) s
state_after: case zero
𝕜 : 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 𝕜 𝕜 F
r : ℝ≥0∞
f : 𝕜 → F
x : 𝕜
s : Set 𝕜
h : CPolynomialOn 𝕜 f s
⊢ CPolynomialOn 𝕜 (deriv^[0] f) s

case succ
𝕜 : 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 𝕜 𝕜 F
r : ℝ≥0∞
f : 𝕜 → F
x : 𝕜
s : Set 𝕜
h : CPolynomialOn 𝕜 f s
n : ℕ
IH : CPolynomialOn 𝕜 (deriv^[n] f) s
⊢ CPolynomialOn 𝕜 (deriv^[n + 1] f) s

tactic: exact h
state_before: case zero
𝕜 : 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 𝕜 𝕜 F
r : ℝ≥0∞
f : 𝕜 → F
x : 𝕜
s : Set 𝕜
h : CPolynomialOn 𝕜 f s
⊢ CPolynomialOn 𝕜 (deriv^[0] f) s
state_after: no goals

tactic: simpa only [Function.iterate_succ', Function.comp_apply] using IH.deriv
state_before: case succ
𝕜 : 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 𝕜 𝕜 F
r : ℝ≥0∞
f : 𝕜 → F
x : 𝕜
s : Set 𝕜
h : CPolynomialOn 𝕜 f s
n : ℕ
IH : CPolynomialOn 𝕜 (deriv^[n] f) s
⊢ CPolynomialOn 𝕜 (deriv^[n + 1] f) s
state_after: no goals
Theorem: Monoid.CoprodI.NeWord.inv_prod
File: Mathlib/GroupTheory/CoprodI.lean

tactic: induction w <;> simp [inv, *]
state_before: ι : Type u_1
M : ι → Type u_2
inst✝² : (i : ι) → Monoid (M i)
N : Type u_3
inst✝¹ : Monoid N
G : ι → Type u_4
inst✝ : (i : ι) → Group (G i)
i j : ι
w : NeWord G i j
⊢ w.inv.prod = w.prod⁻¹
state_after: no goals
Theorem: Complex.Gamma_nat_eq_factorial
File: Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean

tactic: induction' n with n hn
state_before: n : ℕ
⊢ Gamma (↑n + 1) = ↑n !
state_after: case zero

⊢ Gamma (↑0 + 1) = ↑0!

case succ
n : ℕ
hn : Gamma (↑n + 1) = ↑n !
⊢ Gamma (↑(n + 1) + 1) = ↑(n + 1)!

tactic: simp
state_before: case zero

⊢ Gamma (↑0 + 1) = ↑0!
state_after: no goals

tactic: rw [Gamma_add_one n.succ <| Nat.cast_ne_zero.mpr <| Nat.succ_ne_zero n]
state_before: case succ
n : ℕ
hn : Gamma (↑n + 1) = ↑n !
⊢ Gamma (↑(n + 1) + 1) = ↑(n + 1)!
state_after: case succ
n : ℕ
hn : Gamma (↑n + 1) = ↑n !
⊢ ↑n.succ * Gamma ↑n.succ = ↑(n + 1)!

tactic: simp only [Nat.cast_succ, Nat.factorial_succ, Nat.cast_mul]
state_before: case succ
n : ℕ
hn : Gamma (↑n + 1) = ↑n !
⊢ ↑n.succ * Gamma ↑n.succ = ↑(n + 1)!
state_after: case succ
n : ℕ
hn : Gamma (↑n + 1) = ↑n !
⊢ (↑n + 1) * Gamma (↑n + 1) = (↑n + 1) * ↑n !

tactic: congr
state_before: case succ
n : ℕ
hn : Gamma (↑n + 1) = ↑n !
⊢ (↑n + 1) * Gamma (↑n + 1) = (↑n + 1) * ↑n !
state_after: no goals
Theorem: approxOrderOf.smul_subset_of_coprime
File: Mathlib/NumberTheory/WellApproximable.lean

tactic: simp_rw [approxOrderOf, thickening_eq_biUnion_ball, ← image_smul, image_iUnion₂, image_smul,
  smul_ball'', smul_eq_mul, mem_setOf_eq]
state_before: A : Type u_1
inst✝ : SeminormedCommGroup A
a : A
m n : ℕ
δ : ℝ
han : (orderOf a).Coprime n
⊢ a • approxOrderOf A n δ ⊆ approxOrderOf A (orderOf a * n) δ
state_after: A : Type u_1
inst✝ : SeminormedCommGroup A
a : A
m n : ℕ
δ : ℝ
han : (orderOf a).Coprime n
⊢ ⋃ i, ⋃ (_ : orderOf i = n), ball (a * i) δ ⊆ ⋃ x, ⋃ (_ : orderOf x = orderOf a * n), ball x δ

tactic: refine iUnion₂_subset_iff.mpr fun b hb c hc => ?_
state_before: A : Type u_1
inst✝ : SeminormedCommGroup A
a : A
m n : ℕ
δ : ℝ
han : (orderOf a).Coprime n
⊢ ⋃ i, ⋃ (_ : orderOf i = n), ball (a * i) δ ⊆ ⋃ x, ⋃ (_ : orderOf x = orderOf a * n), ball x δ
state_after: A : Type u_1
inst✝ : SeminormedCommGroup A
a : A
m n : ℕ
δ : ℝ
han : (orderOf a).Coprime n
b : A
hb : orderOf b = n
c : A
hc : c ∈ ball (a * b) δ
⊢ c ∈ ⋃ x, ⋃ (_ : orderOf x = orderOf a * n), ball x δ

tactic: simp only [mem_iUnion, exists_prop]
state_before: A : Type u_1
inst✝ : SeminormedCommGroup A
a : A
m n : ℕ
δ : ℝ
han : (orderOf a).Coprime n
b : A
hb : orderOf b = n
c : A
hc : c ∈ ball (a * b) δ
⊢ c ∈ ⋃ x, ⋃ (_ : orderOf x = orderOf a * n), ball x δ
state_after: A : Type u_1
inst✝ : SeminormedCommGroup A
a : A
m n : ℕ
δ : ℝ
han : (orderOf a).Coprime n
b : A
hb : orderOf b = n
c : A
hc : c ∈ ball (a * b) δ
⊢ ∃ i, orderOf i = orderOf a * n ∧ c ∈ ball i δ

tactic: refine ⟨a * b, ?_, hc⟩
state_before: A : Type u_1
inst✝ : SeminormedCommGroup A
a : A
m n : ℕ
δ : ℝ
han : (orderOf a).Coprime n
b : A
hb : orderOf b = n
c : A
hc : c ∈ ball (a * b) δ
⊢ ∃ i, orderOf i = orderOf a * n ∧ c ∈ ball i δ
state_after: A : Type u_1
inst✝ : SeminormedCommGroup A
a : A
m n : ℕ
δ : ℝ
han : (orderOf a).Coprime n
b : A
hb : orderOf b = n
c : A
hc : c ∈ ball (a * b) δ
⊢ orderOf (a * b) = orderOf a * n

tactic: rw [← hb] at han ⊢
state_before: A : Type u_1
inst✝ : SeminormedCommGroup A
a : A
m n : ℕ
δ : ℝ
han : (orderOf a).Coprime n
b : A
hb : orderOf b = n
c : A
hc : c ∈ ball (a * b) δ
⊢ orderOf (a * b) = orderOf a * n
state_after: A : Type u_1
inst✝ : SeminormedCommGroup A
a : A
m n : ℕ
δ : ℝ
b : A
han : (orderOf a).Coprime (orderOf b)
hb : orderOf b = n
c : A
hc : c ∈ ball (a * b) δ
⊢ orderOf (a * b) = orderOf a * orderOf b

tactic: exact (Commute.all a b).orderOf_mul_eq_mul_orderOf_of_coprime han
state_before: A : Type u_1
inst✝ : SeminormedCommGroup A
a : A
m n : ℕ
δ : ℝ
b : A
han : (orderOf a).Coprime (orderOf b)
hb : orderOf b = n
c : A
hc : c ∈ ball (a * b) δ
⊢ orderOf (a * b) = orderOf a * orderOf b
state_after: no goals
Theorem: Filter.iSup_ultrafilter_le_eq
File: Mathlib/Order/Filter/Ultrafilter.lean

tactic: simp only [iSup_le_iff, ← le_iff_ultrafilter]
state_before: α : Type u
β : Type v
γ : Type u_1
f✝ : Filter α
s : Set α
a : α
f f' : Filter α
⊢ ⨆ g, ⨆ (_ : ↑g ≤ f), ↑g ≤ f' ↔ f ≤ f'
state_after: no goals
Theorem: sdiff_eq_bot_iff
File: Mathlib/Order/Heyting/Basic.lean

tactic: rw [← le_bot_iff, sdiff_le_iff, sup_bot_eq]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : GeneralizedCoheytingAlgebra α
a b c d : α
⊢ a \ b = ⊥ ↔ a ≤ b
state_after: no goals
Theorem: interior_mem_uniformity
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: rw [uniformity_eq_uniformity_interior]
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
s : Set (α × α)
hs : s ∈ 𝓤 α
⊢ interior s ∈ 𝓤 α
state_after: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
s : Set (α × α)
hs : s ∈ 𝓤 α
⊢ interior s ∈ (𝓤 α).lift' interior

tactic: exact mem_lift' hs
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
s : Set (α × α)
hs : s ∈ 𝓤 α
⊢ interior s ∈ (𝓤 α).lift' interior
state_after: no goals
Theorem: dvd_add_right
File: Mathlib/Algebra/Ring/Divisibility/Basic.lean

tactic: rw [add_comm]
state_before: α : Type u_1
β : Type u_2
inst✝ : NonUnitalRing α
a b c : α
h : a ∣ b
⊢ a ∣ b + c ↔ a ∣ c
state_after: α : Type u_1
β : Type u_2
inst✝ : NonUnitalRing α
a b c : α
h : a ∣ b
⊢ a ∣ c + b ↔ a ∣ c

tactic: exact dvd_add_left h
state_before: α : Type u_1
β : Type u_2
inst✝ : NonUnitalRing α
a b c : α
h : a ∣ b
⊢ a ∣ c + b ↔ a ∣ c
state_after: no goals
Theorem: map_div_rev
File: Mathlib/Algebra/Order/Hom/Basic.lean

tactic: rw [← inv_div, map_inv_eq_map]
state_before: ι : Type u_1
F : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
inst✝³ : FunLike F α β
inst✝² : Group α
inst✝¹ : OrderedAddCommMonoid β
inst✝ : GroupSeminormClass F α β
f : F
x y : α
⊢ f (x / y) = f (y / x)
state_after: no goals
Theorem: Pi.orthonormalBasis.toBasis
File: Mathlib/Analysis/InnerProductSpace/PiL2.lean

tactic: ext
state_before: ι✝ : Type u_1
ι' : Type u_2
𝕜✝ : Type u_3
inst✝¹⁴ : _root_.RCLike 𝕜✝
E✝ : Type u_4
inst✝¹³ : NormedAddCommGroup E✝
inst✝¹² : InnerProductSpace 𝕜✝ E✝
E' : Type u_5
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : InnerProductSpace 𝕜✝ E'
F : Type u_6
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : InnerProductSpace ℝ F
F' : Type u_7
inst✝⁷ : NormedAddCommGroup F'
inst✝⁶ : InnerProductSpace ℝ F'
inst✝⁵ : Fintype ι✝
η : Type u_8
inst✝⁴ : Fintype η
ι : η → Type u_9
inst✝³ : (i : η) → Fintype (ι i)
𝕜 : Type u_10
inst✝² : _root_.RCLike 𝕜
E : η → Type u_11
inst✝¹ : (i : η) → NormedAddCommGroup (E i)
inst✝ : (i : η) → InnerProductSpace 𝕜 (E i)
B : (i : η) → OrthonormalBasis (ι i) 𝕜 (E i)
⊢ (Pi.orthonormalBasis B).toBasis = (Pi.basis fun i => (B i).toBasis).map (WithLp.linearEquiv 2 𝕜 ((j : η) → E j)).symm
state_after: case a.h
ι✝ : Type u_1
ι' : Type u_2
𝕜✝ : Type u_3
inst✝¹⁴ : _root_.RCLike 𝕜✝
E✝ : Type u_4
inst✝¹³ : NormedAddCommGroup E✝
inst✝¹² : InnerProductSpace 𝕜✝ E✝
E' : Type u_5
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : InnerProductSpace 𝕜✝ E'
F : Type u_6
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : InnerProductSpace ℝ F
F' : Type u_7
inst✝⁷ : NormedAddCommGroup F'
inst✝⁶ : InnerProductSpace ℝ F'
inst✝⁵ : Fintype ι✝
η : Type u_8
inst✝⁴ : Fintype η
ι : η → Type u_9
inst✝³ : (i : η) → Fintype (ι i)
𝕜 : Type u_10
inst✝² : _root_.RCLike 𝕜
E : η → Type u_11
inst✝¹ : (i : η) → NormedAddCommGroup (E i)
inst✝ : (i : η) → InnerProductSpace 𝕜 (E i)
B : (i : η) → OrthonormalBasis (ι i) 𝕜 (E i)
i✝¹ : (i : η) × ι i
i✝ : η
⊢ (Pi.orthonormalBasis B).toBasis i✝¹ i✝ =
    ((Pi.basis fun i => (B i).toBasis).map (WithLp.linearEquiv 2 𝕜 ((j : η) → E j)).symm) i✝¹ i✝

tactic: rfl
state_before: case a.h
ι✝ : Type u_1
ι' : Type u_2
𝕜✝ : Type u_3
inst✝¹⁴ : _root_.RCLike 𝕜✝
E✝ : Type u_4
inst✝¹³ : NormedAddCommGroup E✝
inst✝¹² : InnerProductSpace 𝕜✝ E✝
E' : Type u_5
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : InnerProductSpace 𝕜✝ E'
F : Type u_6
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : InnerProductSpace ℝ F
F' : Type u_7
inst✝⁷ : NormedAddCommGroup F'
inst✝⁶ : InnerProductSpace ℝ F'
inst✝⁵ : Fintype ι✝
η : Type u_8
inst✝⁴ : Fintype η
ι : η → Type u_9
inst✝³ : (i : η) → Fintype (ι i)
𝕜 : Type u_10
inst✝² : _root_.RCLike 𝕜
E : η → Type u_11
inst✝¹ : (i : η) → NormedAddCommGroup (E i)
inst✝ : (i : η) → InnerProductSpace 𝕜 (E i)
B : (i : η) → OrthonormalBasis (ι i) 𝕜 (E i)
i✝¹ : (i : η) × ι i
i✝ : η
⊢ (Pi.orthonormalBasis B).toBasis i✝¹ i✝ =
    ((Pi.basis fun i => (B i).toBasis).map (WithLp.linearEquiv 2 𝕜 ((j : η) → E j)).symm) i✝¹ i✝
state_after: no goals
Theorem: MonoidAlgebra.of_injective
File: Mathlib/Algebra/MonoidAlgebra/Basic.lean

tactic: simpa using (single_eq_single_iff _ _ _ _).mp h
state_before: k : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝² : Semiring k
inst✝¹ : MulOneClass G
inst✝ : Nontrivial k
a b : G
h : (of k G) a = (of k G) b
⊢ a = b
state_after: no goals
Theorem: Finite.of_forall_not_lt_lt
File: Mathlib/Data/Set/Finite.lean

tactic: nontriviality α
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
inst✝ : LinearOrder α
s : Set α
h : ∀ ⦃x y z : α⦄, x < y → y < z → False
⊢ Finite α
state_after: α : Type u
β : Type v
ι : Sort w
γ : Type x
inst✝ : LinearOrder α
s : Set α
h : ∀ ⦃x y z : α⦄, x < y → y < z → False
a✝ : Nontrivial α
⊢ Finite α

tactic: rcases exists_pair_ne α with ⟨x, y, hne⟩
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
inst✝ : LinearOrder α
s : Set α
h : ∀ ⦃x y z : α⦄, x < y → y < z → False
a✝ : Nontrivial α
⊢ Finite α
state_after: case intro.intro
α : Type u
β : Type v
ι : Sort w
γ : Type x
inst✝ : LinearOrder α
s : Set α
h : ∀ ⦃x y z : α⦄, x < y → y < z → False
a✝ : Nontrivial α
x y : α
hne : x ≠ y
⊢ Finite α

tactic: refine @Finite.of_fintype α ⟨{x, y}, fun z => ?_⟩
state_before: case intro.intro
α : Type u
β : Type v
ι : Sort w
γ : Type x
inst✝ : LinearOrder α
s : Set α
h : ∀ ⦃x y z : α⦄, x < y → y < z → False
a✝ : Nontrivial α
x y : α
hne : x ≠ y
⊢ Finite α
state_after: case intro.intro
α : Type u
β : Type v
ι : Sort w
γ : Type x
inst✝ : LinearOrder α
s : Set α
h : ∀ ⦃x y z : α⦄, x < y → y < z → False
a✝ : Nontrivial α
x y : α
hne : x ≠ y
z : α
⊢ z ∈ {x, y}

tactic: simpa [hne] using eq_or_eq_or_eq_of_forall_not_lt_lt h z x y
state_before: case intro.intro
α : Type u
β : Type v
ι : Sort w
γ : Type x
inst✝ : LinearOrder α
s : Set α
h : ∀ ⦃x y z : α⦄, x < y → y < z → False
a✝ : Nontrivial α
x y : α
hne : x ≠ y
z : α
⊢ z ∈ {x, y}
state_after: no goals
Theorem: Finset.disjSum_eq_empty
File: Mathlib/Data/Finset/Sum.lean

tactic: simp [ext_iff]
state_before: α : Type u_1
β : Type u_2
s : Finset α
t : Finset β
s₁ s₂ : Finset α
t₁ t₂ : Finset β
a : α
b : β
x : α ⊕ β
⊢ s.disjSum t = ∅ ↔ s = ∅ ∧ t = ∅
state_after: no goals
Theorem: Polynomial.int_cyclotomic_unique
File: Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean

tactic: apply map_injective (Int.castRingHom ℂ) Int.cast_injective
state_before: n : ℕ
P : ℤ[X]
h : map (Int.castRingHom ℂ) P = cyclotomic' n ℂ
⊢ P = cyclotomic n ℤ
state_after: case a
n : ℕ
P : ℤ[X]
h : map (Int.castRingHom ℂ) P = cyclotomic' n ℂ
⊢ map (Int.castRingHom ℂ) P = map (Int.castRingHom ℂ) (cyclotomic n ℤ)

tactic: rw [h, (int_cyclotomic_spec n).1]
state_before: case a
n : ℕ
P : ℤ[X]
h : map (Int.castRingHom ℂ) P = cyclotomic' n ℂ
⊢ map (Int.castRingHom ℂ) P = map (Int.castRingHom ℂ) (cyclotomic n ℤ)
state_after: no goals
Theorem: eq_mul_of_hasProd_ite
File: Mathlib/Topology/Algebra/InfiniteSum/Basic.lean

tactic: refine (mul_one a).symm.trans (hf.update' b 1 ?_)
state_before: α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁷ : CommMonoid α✝
inst✝⁶ : TopologicalSpace α✝
f✝ g : β✝ → α✝
a✝ b✝ : α✝
s : Finset β✝
inst✝⁵ : ContinuousMul α✝
α : Type u_5
β : Type u_6
inst✝⁴ : TopologicalSpace α
inst✝³ : CommMonoid α
inst✝² : T2Space α
inst✝¹ : ContinuousMul α
inst✝ : DecidableEq β
f : β → α
a : α
hf : HasProd f a
b : β
a' : α
hf' : HasProd (fun n => if n = b then 1 else f n) a'
⊢ a = a' * f b
state_after: α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁷ : CommMonoid α✝
inst✝⁶ : TopologicalSpace α✝
f✝ g : β✝ → α✝
a✝ b✝ : α✝
s : Finset β✝
inst✝⁵ : ContinuousMul α✝
α : Type u_5
β : Type u_6
inst✝⁴ : TopologicalSpace α
inst✝³ : CommMonoid α
inst✝² : T2Space α
inst✝¹ : ContinuousMul α
inst✝ : DecidableEq β
f : β → α
a : α
hf : HasProd f a
b : β
a' : α
hf' : HasProd (fun n => if n = b then 1 else f n) a'
⊢ HasProd (update f b 1) a'

tactic: convert hf'
state_before: α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁷ : CommMonoid α✝
inst✝⁶ : TopologicalSpace α✝
f✝ g : β✝ → α✝
a✝ b✝ : α✝
s : Finset β✝
inst✝⁵ : ContinuousMul α✝
α : Type u_5
β : Type u_6
inst✝⁴ : TopologicalSpace α
inst✝³ : CommMonoid α
inst✝² : T2Space α
inst✝¹ : ContinuousMul α
inst✝ : DecidableEq β
f : β → α
a : α
hf : HasProd f a
b : β
a' : α
hf' : HasProd (fun n => if n = b then 1 else f n) a'
⊢ HasProd (update f b 1) a'
state_after: case h.e'_5.h
α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁷ : CommMonoid α✝
inst✝⁶ : TopologicalSpace α✝
f✝ g : β✝ → α✝
a✝ b✝ : α✝
s : Finset β✝
inst✝⁵ : ContinuousMul α✝
α : Type u_5
β : Type u_6
inst✝⁴ : TopologicalSpace α
inst✝³ : CommMonoid α
inst✝² : T2Space α
inst✝¹ : ContinuousMul α
inst✝ : DecidableEq β
f : β → α
a : α
hf : HasProd f a
b : β
a' : α
hf' : HasProd (fun n => if n = b then 1 else f n) a'
x✝ : β
⊢ update f b 1 x✝ = if x✝ = b then 1 else f x✝

tactic: apply update_apply
state_before: case h.e'_5.h
α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁷ : CommMonoid α✝
inst✝⁶ : TopologicalSpace α✝
f✝ g : β✝ → α✝
a✝ b✝ : α✝
s : Finset β✝
inst✝⁵ : ContinuousMul α✝
α : Type u_5
β : Type u_6
inst✝⁴ : TopologicalSpace α
inst✝³ : CommMonoid α
inst✝² : T2Space α
inst✝¹ : ContinuousMul α
inst✝ : DecidableEq β
f : β → α
a : α
hf : HasProd f a
b : β
a' : α
hf' : HasProd (fun n => if n = b then 1 else f n) a'
x✝ : β
⊢ update f b 1 x✝ = if x✝ = b then 1 else f x✝
state_after: no goals
Theorem: CochainComplex.mappingConeCompTriangle_mor₃_naturality
File: Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean

tactic: ext n
state_before: C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
X₁ X₂ X₃ : CochainComplex C ℤ
f : X₁ ⟶ X₂
g : X₂ ⟶ X₃
Y₁ Y₂ Y₃ : CochainComplex C ℤ
f' : Y₁ ⟶ Y₂
g' : Y₂ ⟶ Y₃
φ : mk₂ f g ⟶ mk₂ f' g'
⊢ map g g' (φ.app 1) (φ.app 2) ⋯ ≫ (mappingConeCompTriangle f' g').mor₃ =
    (mappingConeCompTriangle f g).mor₃ ≫
      (CategoryTheory.shiftFunctor (CochainComplex C ℤ) 1).map (map f f' (φ.app 0) (φ.app 1) ⋯)
state_after: case h
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
X₁ X₂ X₃ : CochainComplex C ℤ
f : X₁ ⟶ X₂
g : X₂ ⟶ X₃
Y₁ Y₂ Y₃ : CochainComplex C ℤ
f' : Y₁ ⟶ Y₂
g' : Y₂ ⟶ Y₃
φ : mk₂ f g ⟶ mk₂ f' g'
n : ℤ
⊢ (map g g' (φ.app 1) (φ.app 2) ⋯ ≫ (mappingConeCompTriangle f' g').mor₃).f n =
    ((mappingConeCompTriangle f g).mor₃ ≫
          (CategoryTheory.shiftFunctor (CochainComplex C ℤ) 1).map (map f f' (φ.app 0) (φ.app 1) ⋯)).f
      n

tactic: simp [ext_from_iff _ (n + 1) _ rfl, map]
state_before: case h
C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : Preadditive C
inst✝¹ : HasZeroObject C
inst✝ : HasBinaryBiproducts C
X₁ X₂ X₃ : CochainComplex C ℤ
f : X₁ ⟶ X₂
g : X₂ ⟶ X₃
Y₁ Y₂ Y₃ : CochainComplex C ℤ
f' : Y₁ ⟶ Y₂
g' : Y₂ ⟶ Y₃
φ : mk₂ f g ⟶ mk₂ f' g'
n : ℤ
⊢ (map g g' (φ.app 1) (φ.app 2) ⋯ ≫ (mappingConeCompTriangle f' g').mor₃).f n =
    ((mappingConeCompTriangle f g).mor₃ ≫
          (CategoryTheory.shiftFunctor (CochainComplex C ℤ) 1).map (map f f' (φ.app 0) (φ.app 1) ⋯)).f
      n
state_after: no goals
Theorem: MvPolynomial.esymm_zero
File: Mathlib/RingTheory/MvPolynomial/Symmetric.lean

tactic: simp only [esymm, powersetCard_zero, sum_singleton, prod_empty]
state_before: σ : Type u_1
R : Type u_2
τ : Type u_3
S : Type u_4
inst✝³ : CommSemiring R
inst✝² : CommSemiring S
inst✝¹ : Fintype σ
inst✝ : Fintype τ
⊢ esymm σ R 0 = 1
state_after: no goals
Theorem: MeasureTheory.exists_measurableEmbedding_real
File: Mathlib/MeasureTheory/Constructions/Polish.lean

tactic: obtain ⟨s, hs, ⟨e⟩⟩ := exists_subset_real_measurableEquiv α
state_before: α : Type u_1
ι : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : StandardBorelSpace α
⊢ ∃ f, MeasurableEmbedding f
state_after: case intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : StandardBorelSpace α
s : Set ℝ
hs : MeasurableSet s
e : α ≃ᵐ ↑s
⊢ ∃ f, MeasurableEmbedding f

tactic: exact ⟨(↑) ∘ e, (MeasurableEmbedding.subtype_coe hs).comp e.measurableEmbedding⟩
state_before: case intro.intro.intro
α : Type u_1
ι : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : StandardBorelSpace α
s : Set ℝ
hs : MeasurableSet s
e : α ≃ᵐ ↑s
⊢ ∃ f, MeasurableEmbedding f
state_after: no goals
Theorem: ite_inter_closure_eq_of_inter_frontier_eq
File: Mathlib/Topology/ContinuousOn.lean

tactic: rw [closure_eq_self_union_frontier, inter_union_distrib_left, inter_union_distrib_left,
  ite_inter_self, ite_inter_of_inter_eq _ ht]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁴ : TopologicalSpace α
ι : Type u_5
π : ι → Type u_6
inst✝³ : (i : ι) → TopologicalSpace (π i)
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
s s' t : Set α
ht : s ∩ frontier t = s' ∩ frontier t
⊢ t.ite s s' ∩ closure t = s ∩ closure t
state_after: no goals
Theorem: FreeAbelianGroup.of_mul_of
File: Mathlib/GroupTheory/FreeAbelianGroup.lean

tactic: rw [mul_def, lift.of, lift.of]
state_before: α : Type u
β : Type v
γ : Type w
inst✝ : Mul α
x y : α
⊢ of x * of y = of (x * y)
state_after: no goals
Theorem: NoZeroSMulDivisors.int_of_charZero
File: Mathlib/Algebra/Module/Defs.lean

tactic: simpa [← smul_one_smul R z x] using h
state_before: α : Type u_1
R : Type u_2
k : Type u_3
S : Type u_4
M : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : NoZeroSMulDivisors R M
inst✝ : CharZero R
z : ℤ
x : M
h : z • x = 0
⊢ z = 0 ∨ x = 0
state_after: no goals
Theorem: Metric.diam_eq_zero_of_unbounded
File: Mathlib/Topology/MetricSpace/Bounded.lean

tactic: rw [diam, ediam_of_unbounded h, ENNReal.top_toReal]
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
s : Set α
x y z : α
h : ¬IsBounded s
⊢ diam s = 0
state_after: no goals