1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Nat.size_bit
File: Mathlib/Data/Nat/Size.lean

tactic: rw [size]
state_before: b : Bool
n : ℕ
h : bit b n ≠ 0
⊢ (bit b n).size = n.size.succ
state_after: b : Bool
n : ℕ
h : bit b n ≠ 0
⊢ binaryRec 0 (fun x x => succ) (bit b n) = (binaryRec 0 (fun x x => succ) n).succ

tactic: conv =>
  lhs
  rw [binaryRec]
  simp [h]
state_before: b : Bool
n : ℕ
h : bit b n ≠ 0
⊢ binaryRec 0 (fun x x => succ) (bit b n) = (binaryRec 0 (fun x x => succ) n).succ
state_after: b : Bool
n : ℕ
h : bit b n ≠ 0
⊢ binaryRec 0 (fun x x => succ) (bit b n).div2 + 1 = (binaryRec 0 (fun x x => succ) n).succ

tactic: rw [div2_bit]
state_before: b : Bool
n : ℕ
h : bit b n ≠ 0
⊢ binaryRec 0 (fun x x => succ) (bit b n).div2 + 1 = (binaryRec 0 (fun x x => succ) n).succ
state_after: no goals
Theorem: PiTensorProduct.lift_comp_reindex_symm
File: Mathlib/LinearAlgebra/PiTensorProduct.lean

tactic: ext
state_before: ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝⁷ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝⁶ : (i : ι) → AddCommMonoid (s i)
inst✝⁵ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
E : Type u_9
inst✝² : AddCommMonoid E
inst✝¹ : Module R E
F : Type u_10
inst✝ : AddCommMonoid F
e : ι ≃ ι₂
φ : MultilinearMap R s E
⊢ lift φ ∘ₗ ↑(reindex R s e).symm = lift ((domDomCongrLinearEquiv' R R s E e) φ)
state_after: case H.H
ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝⁷ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝⁶ : (i : ι) → AddCommMonoid (s i)
inst✝⁵ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
E : Type u_9
inst✝² : AddCommMonoid E
inst✝¹ : Module R E
F : Type u_10
inst✝ : AddCommMonoid F
e : ι ≃ ι₂
φ : MultilinearMap R s E
x✝ : (i : ι₂) → s (e.symm i)
⊢ ((lift φ ∘ₗ ↑(reindex R s e).symm).compMultilinearMap (tprod R)) x✝ =
    ((lift ((domDomCongrLinearEquiv' R R s E e) φ)).compMultilinearMap (tprod R)) x✝

tactic: simp [reindex]
state_before: case H.H
ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝⁷ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝⁶ : (i : ι) → AddCommMonoid (s i)
inst✝⁵ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
E : Type u_9
inst✝² : AddCommMonoid E
inst✝¹ : Module R E
F : Type u_10
inst✝ : AddCommMonoid F
e : ι ≃ ι₂
φ : MultilinearMap R s E
x✝ : (i : ι₂) → s (e.symm i)
⊢ ((lift φ ∘ₗ ↑(reindex R s e).symm).compMultilinearMap (tprod R)) x✝ =
    ((lift ((domDomCongrLinearEquiv' R R s E e) φ)).compMultilinearMap (tprod R)) x✝
state_after: no goals
Theorem: CategoryTheory.TwoSquare.GuitartExact.vComp'_iff_of_equivalences
File: Mathlib/CategoryTheory/GuitartExact/VerticalComposition.lean

tactic: rw [← vComp_iff_of_equivalences w E E' w', TwoSquare.vComp', whiskerVertical_iff]
state_before: C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
D₁ : Type u_4
D₂ : Type u_5
D₃ : Type u_6
inst✝⁵ : Category.{u_11, u_1} C₁
inst✝⁴ : Category.{u_7, u_2} C₂
inst✝³ : Category.{u_8, u_3} C₃
inst✝² : Category.{u_12, u_4} D₁
inst✝¹ : Category.{u_9, u_5} D₂
inst✝ : Category.{u_10, u_6} D₃
H₁ : C₁ ⥤ D₁
L₁ : C₁ ⥤ C₂
R₁ : D₁ ⥤ D₂
H₂ : C₂ ⥤ D₂
w : TwoSquare H₁ L₁ R₁ H₂
L₂ : C₂ ⥤ C₃
R₂ : D₂ ⥤ D₃
H₃ : C₃ ⥤ D₃
w'✝ : TwoSquare H₂ L₂ R₂ H₃
E : C₂ ≌ C₃
E' : D₂ ≌ D₃
w' : H₂ ⋙ E'.functor ≅ E.functor ⋙ H₃
L₁₂ : C₁ ⥤ C₃
R₁₂ : D₁ ⥤ D₃
eL : L₁ ⋙ E.functor ≅ L₁₂
eR : R₁ ⋙ E'.functor ≅ R₁₂
⊢ (w.vComp' w'.hom eL eR).GuitartExact ↔ w.GuitartExact
state_after: no goals
Theorem: List.inits_cons
File: Mathlib/Data/List/Infix.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
l✝ l₁ l₂ l₃ : List α
a✝ b : α
m n : ℕ
a : α
l : List α
⊢ (a :: l).inits = [] :: map (fun t => a :: t) l.inits
state_after: no goals
Theorem: MeasureTheory.Integrable.im
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: rw [← memℒp_one_iff_integrable] at hf ⊢
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
𝕜 : Type u_5
inst✝ : RCLike 𝕜
f : α → 𝕜
hf : Integrable f μ
⊢ Integrable (fun x => RCLike.im (f x)) μ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
𝕜 : Type u_5
inst✝ : RCLike 𝕜
f : α → 𝕜
hf : Memℒp f 1 μ
⊢ Memℒp (fun x => RCLike.im (f x)) 1 μ

tactic: exact hf.im
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
𝕜 : Type u_5
inst✝ : RCLike 𝕜
f : α → 𝕜
hf : Memℒp f 1 μ
⊢ Memℒp (fun x => RCLike.im (f x)) 1 μ
state_after: no goals
Theorem: Equiv.Perm.nodup_toCycle
File: Mathlib/GroupTheory/Perm/Cycle/Concrete.lean

tactic: obtain ⟨x, hx, -⟩ := id hf
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p : Perm α
x : α
f : Perm α
hf : f.IsCycle
⊢ (f.toCycle hf).Nodup
state_after: case intro.intro
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p : Perm α
x✝ : α
f : Perm α
hf : f.IsCycle
x : α
hx : f x ≠ x
⊢ (f.toCycle hf).Nodup

tactic: simpa [toCycle_eq_toList f hf x hx] using nodup_toList _ _
state_before: case intro.intro
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p : Perm α
x✝ : α
f : Perm α
hf : f.IsCycle
x : α
hx : f x ≠ x
⊢ (f.toCycle hf).Nodup
state_after: no goals
Theorem: Multiset.card_product
File: Mathlib/Data/Multiset/Bind.lean

tactic: simp [SProd.sprod, product]
state_before: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
a : α
b : β
s : Multiset α
t : Multiset β
⊢ card (s ×ˢ t) = card s * card t
state_after: no goals
Theorem: isGalois_iff_isGalois_bot
File: Mathlib/FieldTheory/Galois.lean

tactic: constructor
state_before: F : Type u_1
K : Type u_2
E : Type u_3
inst✝⁸ : Field F
inst✝⁷ : Field K
inst✝⁶ : Field E
E' : Type u_4
inst✝⁵ : Field E'
inst✝⁴ : Algebra F E'
inst✝³ : Algebra F K
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
⊢ IsGalois (↥⊥) E ↔ IsGalois F E
state_after: case mp
F : Type u_1
K : Type u_2
E : Type u_3
inst✝⁸ : Field F
inst✝⁷ : Field K
inst✝⁶ : Field E
E' : Type u_4
inst✝⁵ : Field E'
inst✝⁴ : Algebra F E'
inst✝³ : Algebra F K
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
⊢ IsGalois (↥⊥) E → IsGalois F E

case mpr
F : Type u_1
K : Type u_2
E : Type u_3
inst✝⁸ : Field F
inst✝⁷ : Field K
inst✝⁶ : Field E
E' : Type u_4
inst✝⁵ : Field E'
inst✝⁴ : Algebra F E'
inst✝³ : Algebra F K
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
⊢ IsGalois F E → IsGalois (↥⊥) E

tactic: intro h
state_before: case mp
F : Type u_1
K : Type u_2
E : Type u_3
inst✝⁸ : Field F
inst✝⁷ : Field K
inst✝⁶ : Field E
E' : Type u_4
inst✝⁵ : Field E'
inst✝⁴ : Algebra F E'
inst✝³ : Algebra F K
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
⊢ IsGalois (↥⊥) E → IsGalois F E
state_after: case mp
F : Type u_1
K : Type u_2
E : Type u_3
inst✝⁸ : Field F
inst✝⁷ : Field K
inst✝⁶ : Field E
E' : Type u_4
inst✝⁵ : Field E'
inst✝⁴ : Algebra F E'
inst✝³ : Algebra F K
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
h : IsGalois (↥⊥) E
⊢ IsGalois F E

tactic: exact IsGalois.tower_top_of_isGalois (⊥ : IntermediateField F E) F E
state_before: case mp
F : Type u_1
K : Type u_2
E : Type u_3
inst✝⁸ : Field F
inst✝⁷ : Field K
inst✝⁶ : Field E
E' : Type u_4
inst✝⁵ : Field E'
inst✝⁴ : Algebra F E'
inst✝³ : Algebra F K
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
h : IsGalois (↥⊥) E
⊢ IsGalois F E
state_after: no goals

tactic: intro h
state_before: case mpr
F : Type u_1
K : Type u_2
E : Type u_3
inst✝⁸ : Field F
inst✝⁷ : Field K
inst✝⁶ : Field E
E' : Type u_4
inst✝⁵ : Field E'
inst✝⁴ : Algebra F E'
inst✝³ : Algebra F K
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
⊢ IsGalois F E → IsGalois (↥⊥) E
state_after: case mpr
F : Type u_1
K : Type u_2
E : Type u_3
inst✝⁸ : Field F
inst✝⁷ : Field K
inst✝⁶ : Field E
E' : Type u_4
inst✝⁵ : Field E'
inst✝⁴ : Algebra F E'
inst✝³ : Algebra F K
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
h : IsGalois F E
⊢ IsGalois (↥⊥) E

tactic: infer_instance
state_before: case mpr
F : Type u_1
K : Type u_2
E : Type u_3
inst✝⁸ : Field F
inst✝⁷ : Field K
inst✝⁶ : Field E
E' : Type u_4
inst✝⁵ : Field E'
inst✝⁴ : Algebra F E'
inst✝³ : Algebra F K
inst✝² : Algebra F E
inst✝¹ : Algebra K E
inst✝ : IsScalarTower F K E
h : IsGalois F E
⊢ IsGalois (↥⊥) E
state_after: no goals
Theorem: CategoryTheory.Pretriangulated.Opposite.mem_distinguishedTriangles_iff
File: Mathlib/CategoryTheory/Triangulated/Opposite.lean

tactic: rfl
state_before: C : Type u_1
inst✝⁵ : Category.{u_2, u_1} C
inst✝⁴ : HasShift C ℤ
inst✝³ : HasZeroObject C
inst✝² : Preadditive C
inst✝¹ : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝ : Pretriangulated C
T : Triangle Cᵒᵖ
⊢ T ∈ distinguishedTriangles C ↔ ((triangleOpEquivalence C).inverse.obj T).unop ∈ Pretriangulated.distinguishedTriangles
state_after: no goals
Theorem: symmDiff_sdiff_eq_sup
File: Mathlib/Order/SymmDiff.lean

tactic: rw [symmDiff, sdiff_idem]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedCoheytingAlgebra α
a b c d : α
⊢ a ∆ (b \ a) = a ⊔ b
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedCoheytingAlgebra α
a b c d : α
⊢ a \ (b \ a) ⊔ b \ a = a ⊔ b

tactic: exact
  le_antisymm (sup_le_sup sdiff_le sdiff_le)
    (sup_le le_sdiff_sup <| le_sdiff_sup.trans <| sup_le le_sup_right le_sdiff_sup)
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedCoheytingAlgebra α
a b c d : α
⊢ a \ (b \ a) ⊔ b \ a = a ⊔ b
state_after: no goals
Theorem: HurwitzZeta.hasSum_int_cosZeta
File: Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean

tactic: rw [cosZeta, Function.update_noteq (ne_zero_of_one_lt_re hs)]
state_before: a : ℝ
s : ℂ
hs : 1 < s.re
⊢ HasSum (fun n => cexp (2 * ↑π * I * ↑a * ↑n) / ↑|n| ^ s / 2) (cosZeta (↑a) s)
state_after: a : ℝ
s : ℂ
hs : 1 < s.re
⊢ HasSum (fun n => cexp (2 * ↑π * I * ↑a * ↑n) / ↑|n| ^ s / 2) (completedCosZeta (↑a) s / s.Gammaℝ)

tactic: refine ((hasSum_int_completedCosZeta a hs).div_const (Gammaℝ s)).congr_fun fun n ↦ ?_
state_before: a : ℝ
s : ℂ
hs : 1 < s.re
⊢ HasSum (fun n => cexp (2 * ↑π * I * ↑a * ↑n) / ↑|n| ^ s / 2) (completedCosZeta (↑a) s / s.Gammaℝ)
state_after: a : ℝ
s : ℂ
hs : 1 < s.re
n : ℤ
⊢ cexp (2 * ↑π * I * ↑a * ↑n) / ↑|n| ^ s / 2 = s.Gammaℝ * cexp (2 * ↑π * I * ↑a * ↑n) / ↑|n| ^ s / 2 / s.Gammaℝ

tactic: rw [mul_div_assoc _ (cexp _), div_right_comm _ (2 : ℂ),
  mul_div_cancel_left₀ _ (Gammaℝ_ne_zero_of_re_pos (zero_lt_one.trans hs))]
state_before: a : ℝ
s : ℂ
hs : 1 < s.re
n : ℤ
⊢ cexp (2 * ↑π * I * ↑a * ↑n) / ↑|n| ^ s / 2 = s.Gammaℝ * cexp (2 * ↑π * I * ↑a * ↑n) / ↑|n| ^ s / 2 / s.Gammaℝ
state_after: no goals
Theorem: Finset.prod_sdiff_le_prod_sdiff
File: Mathlib/Algebra/Order/BigOperators/Group/Finset.lean

tactic: rw [← mul_le_mul_iff_right, ← prod_union (disjoint_sdiff_inter _ _), sdiff_union_inter,
  ← prod_union, inter_comm, sdiff_union_inter]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
G : Type u_6
k : Type u_7
R : Type u_8
inst✝¹ : OrderedCancelCommMonoid M
f g : ι → M
s t : Finset ι
inst✝ : DecidableEq ι
⊢ ∏ i ∈ s \ t, f i ≤ ∏ i ∈ t \ s, f i ↔ ∏ i ∈ s, f i ≤ ∏ i ∈ t, f i
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
G : Type u_6
k : Type u_7
R : Type u_8
inst✝¹ : OrderedCancelCommMonoid M
f g : ι → M
s t : Finset ι
inst✝ : DecidableEq ι
⊢ Disjoint (t \ s) (s ∩ t)

tactic: simpa only [inter_comm] using disjoint_sdiff_inter t s
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
G : Type u_6
k : Type u_7
R : Type u_8
inst✝¹ : OrderedCancelCommMonoid M
f g : ι → M
s t : Finset ι
inst✝ : DecidableEq ι
⊢ Disjoint (t \ s) (s ∩ t)
state_after: no goals
Theorem: OrderIso.essSup_apply
File: Mathlib/MeasureTheory/Function/EssSup.lean

tactic: refine OrderIso.limsup_apply g ?_ ?_ ?_ ?_
state_before: α : Type u_1
β : Type u_2
m✝ : MeasurableSpace α
μ✝ ν : Measure α
inst✝¹ : CompleteLattice β
m : MeasurableSpace α
γ : Type u_3
inst✝ : CompleteLattice γ
f : α → β
μ : Measure α
g : β ≃o γ
⊢ g (essSup f μ) = essSup (fun x => g (f x)) μ
state_after: case refine_1
α : Type u_1
β : Type u_2
m✝ : MeasurableSpace α
μ✝ ν : Measure α
inst✝¹ : CompleteLattice β
m : MeasurableSpace α
γ : Type u_3
inst✝ : CompleteLattice γ
f : α → β
μ : Measure α
g : β ≃o γ
⊢ IsBoundedUnder (fun x x_1 => x ≤ x_1) (ae μ) f

case refine_2
α : Type u_1
β : Type u_2
m✝ : MeasurableSpace α
μ✝ ν : Measure α
inst✝¹ : CompleteLattice β
m : MeasurableSpace α
γ : Type u_3
inst✝ : CompleteLattice γ
f : α → β
μ : Measure α
g : β ≃o γ
⊢ IsCoboundedUnder (fun x x_1 => x ≤ x_1) (ae μ) f

case refine_3
α : Type u_1
β : Type u_2
m✝ : MeasurableSpace α
μ✝ ν : Measure α
inst✝¹ : CompleteLattice β
m : MeasurableSpace α
γ : Type u_3
inst✝ : CompleteLattice γ
f : α → β
μ : Measure α
g : β ≃o γ
⊢ IsBoundedUnder (fun x x_1 => x ≤ x_1) (ae μ) fun x => g (f x)

case refine_4
α : Type u_1
β : Type u_2
m✝ : MeasurableSpace α
μ✝ ν : Measure α
inst✝¹ : CompleteLattice β
m : MeasurableSpace α
γ : Type u_3
inst✝ : CompleteLattice γ
f : α → β
μ : Measure α
g : β ≃o γ
⊢ IsCoboundedUnder (fun x x_1 => x ≤ x_1) (ae μ) fun x => g (f x)

tactic: all_goals isBoundedDefault
state_before: case refine_1
α : Type u_1
β : Type u_2
m✝ : MeasurableSpace α
μ✝ ν : Measure α
inst✝¹ : CompleteLattice β
m : MeasurableSpace α
γ : Type u_3
inst✝ : CompleteLattice γ
f : α → β
μ : Measure α
g : β ≃o γ
⊢ IsBoundedUnder (fun x x_1 => x ≤ x_1) (ae μ) f

case refine_2
α : Type u_1
β : Type u_2
m✝ : MeasurableSpace α
μ✝ ν : Measure α
inst✝¹ : CompleteLattice β
m : MeasurableSpace α
γ : Type u_3
inst✝ : CompleteLattice γ
f : α → β
μ : Measure α
g : β ≃o γ
⊢ IsCoboundedUnder (fun x x_1 => x ≤ x_1) (ae μ) f

case refine_3
α : Type u_1
β : Type u_2
m✝ : MeasurableSpace α
μ✝ ν : Measure α
inst✝¹ : CompleteLattice β
m : MeasurableSpace α
γ : Type u_3
inst✝ : CompleteLattice γ
f : α → β
μ : Measure α
g : β ≃o γ
⊢ IsBoundedUnder (fun x x_1 => x ≤ x_1) (ae μ) fun x => g (f x)

case refine_4
α : Type u_1
β : Type u_2
m✝ : MeasurableSpace α
μ✝ ν : Measure α
inst✝¹ : CompleteLattice β
m : MeasurableSpace α
γ : Type u_3
inst✝ : CompleteLattice γ
f : α → β
μ : Measure α
g : β ≃o γ
⊢ IsCoboundedUnder (fun x x_1 => x ≤ x_1) (ae μ) fun x => g (f x)
state_after: no goals

tactic: isBoundedDefault
state_before: case refine_4
α : Type u_1
β : Type u_2
m✝ : MeasurableSpace α
μ✝ ν : Measure α
inst✝¹ : CompleteLattice β
m : MeasurableSpace α
γ : Type u_3
inst✝ : CompleteLattice γ
f : α → β
μ : Measure α
g : β ≃o γ
⊢ IsCoboundedUnder (fun x x_1 => x ≤ x_1) (ae μ) fun x => g (f x)
state_after: no goals
Theorem: Polynomial.comp_assoc
File: Mathlib/Algebra/Polynomial/Eval.lean

tactic: intros
state_before: case refine_3
R✝ : Type u
S : Type v
T : Type w
ι : Type y
a b : R✝
m n : ℕ
inst✝¹ : Semiring R✝
p q r : R✝[X]
R : Type u_1
inst✝ : CommSemiring R
φ ψ χ : R[X]
⊢ ∀ (n : ℕ) (a : R),
    ((C a * X ^ n).comp ψ).comp χ = (C a * X ^ n).comp (ψ.comp χ) →
      ((C a * X ^ (n + 1)).comp ψ).comp χ = (C a * X ^ (n + 1)).comp (ψ.comp χ)
state_after: case refine_3
R✝ : Type u
S : Type v
T : Type w
ι : Type y
a b : R✝
m n : ℕ
inst✝¹ : Semiring R✝
p q r : R✝[X]
R : Type u_1
inst✝ : CommSemiring R
φ ψ χ : R[X]
n✝ : ℕ
a✝¹ : R
a✝ : ((C a✝¹ * X ^ n✝).comp ψ).comp χ = (C a✝¹ * X ^ n✝).comp (ψ.comp χ)
⊢ ((C a✝¹ * X ^ (n✝ + 1)).comp ψ).comp χ = (C a✝¹ * X ^ (n✝ + 1)).comp (ψ.comp χ)

tactic: simp_all only [add_comp, mul_comp, C_comp, X_comp, pow_succ, ← mul_assoc]
state_before: case refine_3
R✝ : Type u
S : Type v
T : Type w
ι : Type y
a b : R✝
m n : ℕ
inst✝¹ : Semiring R✝
p q r : R✝[X]
R : Type u_1
inst✝ : CommSemiring R
φ ψ χ : R[X]
n✝ : ℕ
a✝¹ : R
a✝ : ((C a✝¹ * X ^ n✝).comp ψ).comp χ = (C a✝¹ * X ^ n✝).comp (ψ.comp χ)
⊢ ((C a✝¹ * X ^ (n✝ + 1)).comp ψ).comp χ = (C a✝¹ * X ^ (n✝ + 1)).comp (ψ.comp χ)
state_after: no goals
Theorem: Set.einfsep_top
File: Mathlib/Topology/MetricSpace/Infsep.lean

tactic: simp_rw [einfsep, iInf_eq_top]
state_before: α : Type u_1
β : Type u_2
inst✝ : EDist α
x y : α
s t : Set α
⊢ s.einfsep = ⊤ ↔ ∀ x ∈ s, ∀ y ∈ s, x ≠ y → edist x y = ⊤
state_after: no goals
Theorem: Multiset.map_join
File: Mathlib/Data/Multiset/Bind.lean

tactic: induction S using Multiset.induction with
| empty => simp
| cons _ _ ih => simp [ih]
state_before: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
f : α → β
S : Multiset (Multiset α)
⊢ map f S.join = (map (map f) S).join
state_after: no goals

tactic: simp
state_before: case empty
α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
f : α → β
⊢ map f (join 0) = (map (map f) 0).join
state_after: no goals

tactic: simp [ih]
state_before: case cons
α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
f : α → β
a✝ : Multiset α
s✝ : Multiset (Multiset α)
ih : map f s✝.join = (map (map f) s✝).join
⊢ map f (a✝ ::ₘ s✝).join = (map (map f) (a✝ ::ₘ s✝)).join
state_after: no goals
Theorem: map_commutatorElement
File: Mathlib/GroupTheory/Commutator.lean

tactic: simp_rw [commutatorElement_def, map_mul f, map_inv f]
state_before: G : Type u_1
G' : Type u_2
F : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : FunLike F G G'
inst✝ : MonoidHomClass F G G'
f : F
g₁ g₂ g₃ g : G
⊢ f ⁅g₁, g₂⁆ = ⁅f g₁, f g₂⁆
state_after: no goals
Theorem: mem_residual
File: Mathlib/Topology/Baire/Lemmas.lean

tactic: constructor
state_before: X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
s : Set X
⊢ s ∈ residual X ↔ ∃ t ⊆ s, IsGδ t ∧ Dense t
state_after: case mp
X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
s : Set X
⊢ s ∈ residual X → ∃ t ⊆ s, IsGδ t ∧ Dense t

case mpr
X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
s : Set X
⊢ (∃ t ⊆ s, IsGδ t ∧ Dense t) → s ∈ residual X

tactic: rintro ⟨t, ts, ho, hd⟩
state_before: case mpr
X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
s : Set X
⊢ (∃ t ⊆ s, IsGδ t ∧ Dense t) → s ∈ residual X
state_after: case mpr.intro.intro.intro
X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
s t : Set X
ts : t ⊆ s
ho : IsGδ t
hd : Dense t
⊢ s ∈ residual X

tactic: exact mem_of_superset (residual_of_dense_Gδ ho hd) ts
state_before: case mpr.intro.intro.intro
X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
s t : Set X
ts : t ⊆ s
ho : IsGδ t
hd : Dense t
⊢ s ∈ residual X
state_after: no goals

tactic: rw [mem_residual_iff]
state_before: case mp
X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
s : Set X
⊢ s ∈ residual X → ∃ t ⊆ s, IsGδ t ∧ Dense t
state_after: case mp
X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
s : Set X
⊢ (∃ S, (∀ t ∈ S, IsOpen t) ∧ (∀ t ∈ S, Dense t) ∧ S.Countable ∧ ⋂₀ S ⊆ s) → ∃ t ⊆ s, IsGδ t ∧ Dense t

tactic: rintro ⟨S, hSo, hSd, Sct, Ss⟩
state_before: case mp
X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
s : Set X
⊢ (∃ S, (∀ t ∈ S, IsOpen t) ∧ (∀ t ∈ S, Dense t) ∧ S.Countable ∧ ⋂₀ S ⊆ s) → ∃ t ⊆ s, IsGδ t ∧ Dense t
state_after: case mp.intro.intro.intro.intro
X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
s : Set X
S : Set (Set X)
hSo : ∀ t ∈ S, IsOpen t
hSd : ∀ t ∈ S, Dense t
Sct : S.Countable
Ss : ⋂₀ S ⊆ s
⊢ ∃ t ⊆ s, IsGδ t ∧ Dense t

tactic: refine ⟨_, Ss, ⟨_, fun t ht => hSo _ ht, Sct, rfl⟩, ?_⟩
state_before: case mp.intro.intro.intro.intro
X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
s : Set X
S : Set (Set X)
hSo : ∀ t ∈ S, IsOpen t
hSd : ∀ t ∈ S, Dense t
Sct : S.Countable
Ss : ⋂₀ S ⊆ s
⊢ ∃ t ⊆ s, IsGδ t ∧ Dense t
state_after: case mp.intro.intro.intro.intro
X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
s : Set X
S : Set (Set X)
hSo : ∀ t ∈ S, IsOpen t
hSd : ∀ t ∈ S, Dense t
Sct : S.Countable
Ss : ⋂₀ S ⊆ s
⊢ Dense (⋂₀ S)

tactic: exact dense_sInter_of_isOpen hSo Sct hSd
state_before: case mp.intro.intro.intro.intro
X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
s : Set X
S : Set (Set X)
hSo : ∀ t ∈ S, IsOpen t
hSd : ∀ t ∈ S, Dense t
Sct : S.Countable
Ss : ⋂₀ S ⊆ s
⊢ Dense (⋂₀ S)
state_after: no goals
Theorem: zpow_mul
File: Mathlib/Algebra/Group/Basic.lean

tactic: rw [zpow_natCast, zpow_natCast, ← pow_mul, ← zpow_natCast]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a✝ b c d a : α
m n : ℕ
⊢ a ^ (↑m * ↑n) = (a ^ ↑m) ^ ↑n
state_after: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a✝ b c d a : α
m n : ℕ
⊢ a ^ (↑m * ↑n) = a ^ ↑(m * n)

tactic: rfl
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a✝ b c d a : α
m n : ℕ
⊢ a ^ (↑m * ↑n) = a ^ ↑(m * n)
state_after: no goals

tactic: rw [zpow_natCast, zpow_negSucc, ← pow_mul, Int.ofNat_mul_negSucc, zpow_neg, inv_inj,
  ← zpow_natCast]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a✝ b c d a : α
m n : ℕ
⊢ a ^ (↑m * Int.negSucc n) = (a ^ ↑m) ^ Int.negSucc n
state_after: no goals

tactic: rw [zpow_natCast, zpow_negSucc, ← inv_pow, ← pow_mul, Int.negSucc_mul_ofNat, zpow_neg, inv_pow,
  inv_inj, ← zpow_natCast]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a✝ b c d a : α
m n : ℕ
⊢ a ^ (Int.negSucc m * ↑n) = (a ^ Int.negSucc m) ^ ↑n
state_after: no goals

tactic: rw [zpow_negSucc, zpow_negSucc, Int.negSucc_mul_negSucc, inv_pow, inv_inv, ← pow_mul, ←
  zpow_natCast]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a✝ b c d a : α
m n : ℕ
⊢ a ^ (Int.negSucc m * Int.negSucc n) = (a ^ Int.negSucc m) ^ Int.negSucc n
state_after: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a✝ b c d a : α
m n : ℕ
⊢ a ^ (↑m.succ * ↑n.succ) = a ^ ↑((m + 1) * (n + 1))

tactic: rfl
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a✝ b c d a : α
m n : ℕ
⊢ a ^ (↑m.succ * ↑n.succ) = a ^ ↑((m + 1) * (n + 1))
state_after: no goals
Theorem: CategoryTheory.IsHomLift.codomain_eq
File: Mathlib/CategoryTheory/FiberedCategory/HomLift.lean

tactic: subst_hom_lift p f φ
state_before: 𝒮 : Type u₁
𝒳 : Type u₂
inst✝² : Category.{v₁, u₂} 𝒳
inst✝¹ : Category.{v₂, u₁} 𝒮
p : 𝒳 ⥤ 𝒮
R S : 𝒮
a b : 𝒳
f : R ⟶ S
φ : a ⟶ b
inst✝ : p.IsHomLift f φ
⊢ p.obj b = S
state_after: case map
𝒮 : Type u₁
𝒳 : Type u₂
inst✝² : Category.{v₁, u₂} 𝒳
inst✝¹ : Category.{v₂, u₁} 𝒮
p : 𝒳 ⥤ 𝒮
a✝ b✝ : 𝒳
φ : a✝ ⟶ b✝
R S : 𝒮
a b : 𝒳
inst✝ : p.IsHomLift (p.map φ) φ
⊢ p.obj b✝ = p.obj b✝

tactic: rfl
state_before: case map
𝒮 : Type u₁
𝒳 : Type u₂
inst✝² : Category.{v₁, u₂} 𝒳
inst✝¹ : Category.{v₂, u₁} 𝒮
p : 𝒳 ⥤ 𝒮
a✝ b✝ : 𝒳
φ : a✝ ⟶ b✝
R S : 𝒮
a b : 𝒳
inst✝ : p.IsHomLift (p.map φ) φ
⊢ p.obj b✝ = p.obj b✝
state_after: no goals
Theorem: UniformConvergenceCLM.uniformSpace_eq
File: Mathlib/Topology/Algebra/Module/StrongTopology.lean

tactic: rw [instUniformSpace, UniformSpace.replaceTopology_eq]
state_before: 𝕜₁ : Type u_1
𝕜₂ : Type u_2
inst✝⁸ : NormedField 𝕜₁
inst✝⁷ : NormedField 𝕜₂
σ : 𝕜₁ →+* 𝕜₂
E : Type u_3
F : Type u_4
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜₁ E
inst✝⁴ : TopologicalSpace E
inst✝³ : AddCommGroup F
inst✝² : Module 𝕜₂ F
inst✝¹ : UniformSpace F
inst✝ : UniformAddGroup F
𝔖 : Set (Set E)
⊢ instUniformSpace σ F 𝔖 = UniformSpace.comap DFunLike.coe (UniformOnFun.uniformSpace E F 𝔖)
state_after: no goals