ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: fderiv_continuousMultilinear_apply_const_apply
File: Mathlib/Analysis/Calculus/FDeriv/Mul.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝¹³ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace 𝕜 E
F : Type u_3
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
G : Type u_4
inst✝⁸ : NormedAddCommGroup G
inst✝⁷ : NormedSpace 𝕜 G
G' : Type u_5
inst✝⁶ : NormedAddCommGroup G'
inst✝⁵ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
ι : Type u_6
inst✝⁴ : Fintype ι
M : ι → Type u_7
inst✝³ : (i : ι) → NormedAddCommGroup (M i)
inst✝² : (i : ι) → NormedSpace 𝕜 (M i)
H : Type u_8
inst✝¹ : NormedAddCommGroup H
inst✝ : NormedSpace 𝕜 H
c : E → ContinuousMultilinearMap 𝕜 M H
c' : E →L[𝕜] ContinuousMultilinearMap 𝕜 M H
hc : DifferentiableAt 𝕜 c x
u : (i : ι) → M i
m : E
⊢ (fderiv 𝕜 (fun y => (c y) u) x) m = ((fderiv 𝕜 c x) m) u
state_after: no goals
tactic: simp [fderiv_continuousMultilinear_apply_const hc]
Theorem: DistribMulActionHom.toMulActionHom_injective
File: Mathlib/GroupTheory/GroupAction/Hom.lean

Proof steps:
state_before: M : Type u_1
inst✝¹⁵ : Monoid M
N : Type u_2
inst✝¹⁴ : Monoid N
P : Type u_3
inst✝¹³ : Monoid P
φ : M →* N
φ' : N →* M
ψ : N →* P
χ : M →* P
A : Type u_4
inst✝¹² : AddMonoid A
inst✝¹¹ : DistribMulAction M A
B : Type u_5
inst✝¹⁰ : AddMonoid B
inst✝⁹ : DistribMulAction N B
B₁ : Type u_6
inst✝⁸ : AddMonoid B₁
inst✝⁷ : DistribMulAction M B₁
C : Type u_7
inst✝⁶ : AddMonoid C
inst✝⁵ : DistribMulAction P C
A' : Type u_8
inst✝⁴ : AddGroup A'
inst✝³ : DistribMulAction M A'
B' : Type u_9
inst✝² : AddGroup B'
inst✝¹ : DistribMulAction N B'
F : Type u_10
inst✝ : FunLike F A B
f g : A →ₑ+[φ] B
h : ↑f = ↑g
⊢ f = g
state_after: case a
M : Type u_1
inst✝¹⁵ : Monoid M
N : Type u_2
inst✝¹⁴ : Monoid N
P : Type u_3
inst✝¹³ : Monoid P
φ : M →* N
φ' : N →* M
ψ : N →* P
χ : M →* P
A : Type u_4
inst✝¹² : AddMonoid A
inst✝¹¹ : DistribMulAction M A
B : Type u_5
inst✝¹⁰ : AddMonoid B
inst✝⁹ : DistribMulAction N B
B₁ : Type u_6
inst✝⁸ : AddMonoid B₁
inst✝⁷ : DistribMulAction M B₁
C : Type u_7
inst✝⁶ : AddMonoid C
inst✝⁵ : DistribMulAction P C
A' : Type u_8
inst✝⁴ : AddGroup A'
inst✝³ : DistribMulAction M A'
B' : Type u_9
inst✝² : AddGroup B'
inst✝¹ : DistribMulAction N B'
F : Type u_10
inst✝ : FunLike F A B
f g : A →ₑ+[φ] B
h : ↑f = ↑g
a : A
⊢ f a = g a
tactic: ext a
state_before: case a
M : Type u_1
inst✝¹⁵ : Monoid M
N : Type u_2
inst✝¹⁴ : Monoid N
P : Type u_3
inst✝¹³ : Monoid P
φ : M →* N
φ' : N →* M
ψ : N →* P
χ : M →* P
A : Type u_4
inst✝¹² : AddMonoid A
inst✝¹¹ : DistribMulAction M A
B : Type u_5
inst✝¹⁰ : AddMonoid B
inst✝⁹ : DistribMulAction N B
B₁ : Type u_6
inst✝⁸ : AddMonoid B₁
inst✝⁷ : DistribMulAction M B₁
C : Type u_7
inst✝⁶ : AddMonoid C
inst✝⁵ : DistribMulAction P C
A' : Type u_8
inst✝⁴ : AddGroup A'
inst✝³ : DistribMulAction M A'
B' : Type u_9
inst✝² : AddGroup B'
inst✝¹ : DistribMulAction N B'
F : Type u_10
inst✝ : FunLike F A B
f g : A →ₑ+[φ] B
h : ↑f = ↑g
a : A
⊢ f a = g a
state_after: no goals
tactic: exact MulActionHom.congr_fun h a
Theorem: MeasureTheory.OuterMeasure.isometryEquiv_map_mkMetric
File: Mathlib/MeasureTheory/Measure/Hausdorff.lean

Proof steps:
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹ : EMetricSpace X
inst✝ : EMetricSpace Y
m : ℝ≥0∞ → ℝ≥0∞
f : X ≃ᵢ Y
⊢ (map ⇑f) (mkMetric m) = mkMetric m
state_after: no goals
tactic: rw [← isometryEquiv_comap_mkMetric _ f, map_comap_of_surjective f.surjective]
Theorem: Part.map_id'
File: Mathlib/Data/Part.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f : α → α
H : ∀ (x : α), f x = x
o : Part α
⊢ map f o = o
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
f : α → α
H : ∀ (x : α), f x = x
o : Part α
⊢ map id o = o
tactic: rw [show f = id from funext H]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f : α → α
H : ∀ (x : α), f x = x
o : Part α
⊢ map id o = o
state_after: no goals
tactic: exact id_map o
Theorem: LocalizedModule.subsingleton_iff_ker_eq_top
File: Mathlib/Algebra/Module/LocalizedModule.lean

Proof steps:
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
S : Submonoid R
⊢ Subsingleton (LocalizedModule S M) ↔ LinearMap.ker (mkLinearMap S M) = ⊤
state_after: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
S : Submonoid R
⊢ Subsingleton (LocalizedModule S M) ↔ ⊤ ≤ LinearMap.ker (mkLinearMap S M)
tactic: rw [← top_le_iff]
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
S : Submonoid R
⊢ Subsingleton (LocalizedModule S M) ↔ ⊤ ≤ LinearMap.ker (mkLinearMap S M)
state_after: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
S : Submonoid R
H : ⊤ ≤ LinearMap.ker (mkLinearMap S M)
x : LocalizedModule S M
⊢ x = 0
tactic: refine ⟨fun H m _ ↦ Subsingleton.elim _ _, fun H ↦ (subsingleton_iff_forall_eq 0).mpr fun x ↦ ?_⟩
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
S : Submonoid R
H : ⊤ ≤ LinearMap.ker (mkLinearMap S M)
x : LocalizedModule S M
⊢ x = 0
state_after: case intro.mk
R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
S : Submonoid R
H : ⊤ ≤ LinearMap.ker (mkLinearMap S M)
x : M
s : ↥S
⊢ Function.uncurry (IsLocalizedModule.mk' (mkLinearMap S M)) (x, s) = 0
tactic: obtain ⟨⟨x, s⟩, rfl⟩ := IsLocalizedModule.mk'_surjective S (LocalizedModule.mkLinearMap S M) x
state_before: case intro.mk
R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
S : Submonoid R
H : ⊤ ≤ LinearMap.ker (mkLinearMap S M)
x : M
s : ↥S
⊢ Function.uncurry (IsLocalizedModule.mk' (mkLinearMap S M)) (x, s) = 0
state_after: no goals
tactic: simpa using @H x trivial
Theorem: MeasureTheory.AEStronglyMeasurable.integral_condKernel
File: Mathlib/Probability/Kernel/Disintegration/Integral.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁵ : MeasurableSpace Ω
inst✝⁴ : StandardBorelSpace Ω
inst✝³ : Nonempty Ω
ρ : Measure (β × Ω)
inst✝² : IsFiniteMeasure ρ
E : Type u_4
f : β × Ω → E
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
hf : AEStronglyMeasurable f ρ
⊢ AEStronglyMeasurable (fun x => ∫ (y : Ω), f (x, y) ∂ρ.condKernel x) ρ.fst
state_after: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁵ : MeasurableSpace Ω
inst✝⁴ : StandardBorelSpace Ω
inst✝³ : Nonempty Ω
ρ : Measure (β × Ω)
inst✝² : IsFiniteMeasure ρ
E : Type u_4
f : β × Ω → E
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
hf : AEStronglyMeasurable f (ρ.fst ⊗ₘ ρ.condKernel)
⊢ AEStronglyMeasurable (fun x => ∫ (y : Ω), f (x, y) ∂ρ.condKernel x) ρ.fst
tactic: rw [← ρ.disintegrate ρ.condKernel] at hf
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁵ : MeasurableSpace Ω
inst✝⁴ : StandardBorelSpace Ω
inst✝³ : Nonempty Ω
ρ : Measure (β × Ω)
inst✝² : IsFiniteMeasure ρ
E : Type u_4
f : β × Ω → E
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
hf : AEStronglyMeasurable f (ρ.fst ⊗ₘ ρ.condKernel)
⊢ AEStronglyMeasurable (fun x => ∫ (y : Ω), f (x, y) ∂ρ.condKernel x) ρ.fst
state_after: no goals
tactic: exact AEStronglyMeasurable.integral_kernel_compProd hf
Theorem: CategoryTheory.Limits.compCoyonedaSectionsEquiv_apply_app
File: Mathlib/CategoryTheory/Limits/Types.lean

Proof steps:
state_before: J : Type u_1
C : Type u_2
inst✝¹ : Category.{?u.92908, u_1} J
inst✝ : Category.{?u.93383, u_2} C
F : J ⥤ C
X : C
s : ↑(F ⋙ coyoneda.obj (op X)).sections
j j' : J
f : j ⟶ j'
⊢ ((const J).obj X).map f ≫ (fun j => ↑s j) j' = (fun j => ↑s j) j ≫ F.map f
state_after: J : Type u_1
C : Type u_2
inst✝¹ : Category.{?u.92908, u_1} J
inst✝ : Category.{?u.93383, u_2} C
F : J ⥤ C
X : C
s : ↑(F ⋙ coyoneda.obj (op X)).sections
j j' : J
f : j ⟶ j'
⊢ 𝟙 X ≫ ↑s j' = ↑s j ≫ F.map f
tactic: dsimp
state_before: J : Type u_1
C : Type u_2
inst✝¹ : Category.{?u.92908, u_1} J
inst✝ : Category.{?u.93383, u_2} C
F : J ⥤ C
X : C
s : ↑(F ⋙ coyoneda.obj (op X)).sections
j j' : J
f : j ⟶ j'
⊢ 𝟙 X ≫ ↑s j' = ↑s j ≫ F.map f
state_after: J : Type u_1
C : Type u_2
inst✝¹ : Category.{?u.92908, u_1} J
inst✝ : Category.{?u.93383, u_2} C
F : J ⥤ C
X : C
s : ↑(F ⋙ coyoneda.obj (op X)).sections
j j' : J
f : j ⟶ j'
⊢ ↑s j' = ↑s j ≫ F.map f
tactic: rw [Category.id_comp]
state_before: J : Type u_1
C : Type u_2
inst✝¹ : Category.{?u.92908, u_1} J
inst✝ : Category.{?u.93383, u_2} C
F : J ⥤ C
X : C
s : ↑(F ⋙ coyoneda.obj (op X)).sections
j j' : J
f : j ⟶ j'
⊢ ↑s j' = ↑s j ≫ F.map f
state_after: no goals
tactic: exact (s.property f).symm
state_before: J : Type u_1
C : Type u_2
inst✝¹ : Category.{?u.92908, u_1} J
inst✝ : Category.{?u.93383, u_2} C
F : J ⥤ C
X : C
τ : (const J).obj X ⟶ F
j j' : J
f : j ⟶ j'
⊢ (F ⋙ coyoneda.obj (op X)).map f (τ.app j) = τ.app j'
state_after: no goals
tactic: simpa using (τ.naturality f).symm
Theorem: FirstOrder.Language.ElementaryEmbedding.ofModelsElementaryDiagram_toFun
File: Mathlib/ModelTheory/ElementaryMaps.lean

Proof steps:
state_before: L : Language
M : Type u_1
N✝ : Type u_2
P : Type u_3
Q : Type u_4
inst✝⁷ : L.Structure M
inst✝⁶ : L.Structure N✝
inst✝⁵ : L.Structure P
inst✝⁴ : L.Structure Q
N : Type u_5
inst✝³ : L.Structure N
inst✝² : L[[M]].Structure N
inst✝¹ : (L.lhomWithConstants M).IsExpansionOn N
inst✝ : N ⊨ L.elementaryDiagram M
n : ℕ
φ : L.Formula (Fin n)
x : Fin n → M
⊢ φ.Realize ((constantMap ∘ Sum.inr) ∘ x) ↔ φ.Realize x
state_after: case refine_1
L : Language
M : Type u_1
N✝ : Type u_2
P : Type u_3
Q : Type u_4
inst✝⁷ : L.Structure M
inst✝⁶ : L.Structure N✝
inst✝⁵ : L.Structure P
inst✝⁴ : L.Structure Q
N : Type u_5
inst✝³ : L.Structure N
inst✝² : L[[M]].Structure N
inst✝¹ : (L.lhomWithConstants M).IsExpansionOn N
inst✝ : N ⊨ L.elementaryDiagram M
n : ℕ
φ : L.Formula (Fin n)
x : Fin n → M
⊢ φ.Realize ((constantMap ∘ Sum.inr) ∘ x) ↔
    N ⊨ (((L.lhomWithConstants M).onBoundedFormula φ).subst (Constants.term ∘ Sum.inr ∘ x)).alls

case refine_2
L : Language
M : Type u_1
N✝ : Type u_2
P : Type u_3
Q : Type u_4
inst✝⁷ : L.Structure M
inst✝⁶ : L.Structure N✝
inst✝⁵ : L.Structure P
inst✝⁴ : L.Structure Q
N : Type u_5
inst✝³ : L.Structure N
inst✝² : L[[M]].Structure N
inst✝¹ : (L.lhomWithConstants M).IsExpansionOn N
inst✝ : N ⊨ L.elementaryDiagram M
n : ℕ
φ : L.Formula (Fin n)
x : Fin n → M
⊢ M ⊨ (((L.lhomWithConstants M).onBoundedFormula φ).subst (Constants.term ∘ Sum.inr ∘ x)).alls ↔ φ.Realize x
tactic: refine
      _root_.trans ?_
        ((realize_iff_of_model_completeTheory M N
              (((L.lhomWithConstants M).onBoundedFormula φ).subst
                  (Constants.term ∘ Sum.inr ∘ x)).alls).trans
          ?_)
Theorem: biSup_finsetSigma
File: Mathlib/Data/Finset/Sigma.lean

Proof steps:
state_before: ι : Type u_1
α : ι → Type u_2
β : Type u_3
s✝ s₁ s₂ : Finset ι
t✝ t₁ t₂ : (i : ι) → Finset (α i)
f✝ : (i : ι) × α i → β
inst✝ : CompleteLattice β
s : Finset ι
t : (i : ι) → Finset (α i)
f : Sigma α → β
⊢ ⨆ ij ∈ s.sigma t, f ij = ⨆ i ∈ s, ⨆ j ∈ t i, f ⟨i, j⟩
state_after: no goals
tactic: simp_rw [← Finset.iSup_coe, Finset.coe_sigma, biSup_sigma]
Theorem: Matrix.linfty_opNNNorm_row
File: Mathlib/Analysis/Matrix.lean

Proof steps:
state_before: R : Type u_1
l : Type u_2
m : Type u_3
n : Type u_4
α : Type u_5
β : Type u_6
ι : Type u_7
inst✝⁴ : Fintype l
inst✝³ : Fintype m
inst✝² : Fintype n
inst✝¹ : Unique ι
inst✝ : SeminormedAddCommGroup α
v : n → α
⊢ ‖row ι v‖₊ = ∑ i : n, ‖v i‖₊
state_after: no goals
tactic: simp [linfty_opNNNorm_def]
Theorem: Inducing.specializingMap
File: Mathlib/Topology/Inseparable.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f g : X → Y
hf : Inducing f
h : StableUnderSpecialization (Set.range f)
⊢ SpecializingMap f
state_after: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x✝ y✝ z : X
s : Set X
f g : X → Y
hf : Inducing f
h : StableUnderSpecialization (Set.range f)
x : X
y : Y
e : flip (fun x x_1 => x ⤳ x_1) y (f x)
⊢ ∃ a', flip (fun x x_1 => x ⤳ x_1) a' x ∧ f a' = y
tactic: intros x y e
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x✝ y✝ z : X
s : Set X
f g : X → Y
hf : Inducing f
h : StableUnderSpecialization (Set.range f)
x : X
y : Y
e : flip (fun x x_1 => x ⤳ x_1) y (f x)
⊢ ∃ a', flip (fun x x_1 => x ⤳ x_1) a' x ∧ f a' = y
state_after: case intro
X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x✝ y✝ z : X
s : Set X
f g : X → Y
hf : Inducing f
h : StableUnderSpecialization (Set.range f)
x y : X
e : flip (fun x x_1 => x ⤳ x_1) (f y) (f x)
⊢ ∃ a', flip (fun x x_1 => x ⤳ x_1) a' x ∧ f a' = f y
tactic: obtain ⟨y, rfl⟩ := h e ⟨x, rfl⟩
state_before: case intro
X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x✝ y✝ z : X
s : Set X
f g : X → Y
hf : Inducing f
h : StableUnderSpecialization (Set.range f)
x y : X
e : flip (fun x x_1 => x ⤳ x_1) (f y) (f x)
⊢ ∃ a', flip (fun x x_1 => x ⤳ x_1) a' x ∧ f a' = f y
state_after: no goals
tactic: exact ⟨_, hf.specializes_iff.mp e, rfl⟩
Theorem: CategoryTheory.Limits.pullbackSymmetry_hom_comp_fst
File: Mathlib/CategoryTheory/Limits/Shapes/Pullback/HasPullback.lean

Proof steps:
state_before: C : Type u
inst✝¹ : Category.{v, u} C
W X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : HasPullback f g
⊢ (pullbackSymmetry f g).hom ≫ pullback.fst g f = pullback.snd f g
state_after: no goals
tactic: simp [pullbackSymmetry]
Theorem: Equiv.Perm.IsCycleOn.extendDomain
File: Mathlib/GroupTheory/Perm/Cycle/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
f✝ g : Perm α
s t : Set α
a b x y : α
p : β → Prop
inst✝ : DecidablePred p
f : α ≃ Subtype p
h : g.IsCycleOn s
⊢ ∀ ⦃x : β⦄, x ∈ Subtype.val ∘ ⇑f '' s → ∀ ⦃y : β⦄, y ∈ Subtype.val ∘ ⇑f '' s → (g.extendDomain f).SameCycle x y
state_after: case intro.intro.intro.intro
ι : Type u_1
α : Type u_2
β : Type u_3
f✝ g : Perm α
s t : Set α
a✝ b✝ x y : α
p : β → Prop
inst✝ : DecidablePred p
f : α ≃ Subtype p
h : g.IsCycleOn s
a : α
ha : a ∈ s
b : α
hb : b ∈ s
⊢ (g.extendDomain f).SameCycle ((Subtype.val ∘ ⇑f) a) ((Subtype.val ∘ ⇑f) b)
tactic: rintro _ ⟨a, ha, rfl⟩ _ ⟨b, hb, rfl⟩
state_before: case intro.intro.intro.intro
ι : Type u_1
α : Type u_2
β : Type u_3
f✝ g : Perm α
s t : Set α
a✝ b✝ x y : α
p : β → Prop
inst✝ : DecidablePred p
f : α ≃ Subtype p
h : g.IsCycleOn s
a : α
ha : a ∈ s
b : α
hb : b ∈ s
⊢ (g.extendDomain f).SameCycle ((Subtype.val ∘ ⇑f) a) ((Subtype.val ∘ ⇑f) b)
state_after: no goals
tactic: exact (h.2 ha hb).extendDomain
Theorem: Nat.image_cast_int_Ioc
File: Mathlib/Data/Nat/Cast/SetInterval.lean

Proof steps:
state_before: a b : ℕ
⊢ (range ⇑castOrderEmbedding).OrdConnected
state_after: no goals
tactic: simp [ordConnected_Ici]
Theorem: lipschitzOnWith_inv_iff
File: Mathlib/Analysis/Normed/Group/Uniform.lean

Proof steps:
state_before: 𝓕 : Type u_1
α✝ : Type u_2
E✝ : Type u_3
F : Type u_4
inst✝³ : SeminormedCommGroup E✝
inst✝² : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E✝
r r₁ r₂ : ℝ
α : Type u_5
E : Type u_6
inst✝¹ : SeminormedCommGroup E
inst✝ : PseudoEMetricSpace α
K Kf Kg : ℝ≥0
f g : α → E
s : Set α
x : α
⊢ LipschitzOnWith K f⁻¹ s ↔ LipschitzOnWith K f s
state_after: no goals
tactic: simp [LipschitzOnWith]
Theorem: WeierstrassCurve.Jacobian.Point.fromAffine_ne_zero
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

Proof steps:
state_before: R : Type u
inst✝² : CommRing R
W' : Jacobian R
F : Type v
inst✝¹ : Field F
W : Jacobian F
inst✝ : Nontrivial R
X Y : R
h : W'.toAffine.Nonsingular X Y
h0 : fromAffine (Affine.Point.some h) = 0
⊢ False
state_after: case intro
R : Type u
inst✝² : CommRing R
W' : Jacobian R
F : Type v
inst✝¹ : Field F
W : Jacobian F
inst✝ : Nontrivial R
X Y : R
h : W'.toAffine.Nonsingular X Y
h0 : fromAffine (Affine.Point.some h) = 0
u : Rˣ
eq : (fun m => m • ![1, 1, 0]) u = ![X, Y, 1]
⊢ False
tactic: obtain ⟨u, eq⟩ := Quotient.eq.mp <| (Point.ext_iff ..).mp h0
state_before: case intro
R : Type u
inst✝² : CommRing R
W' : Jacobian R
F : Type v
inst✝¹ : Field F
W : Jacobian F
inst✝ : Nontrivial R
X Y : R
h : W'.toAffine.Nonsingular X Y
h0 : fromAffine (Affine.Point.some h) = 0
u : Rˣ
eq : (fun m => m • ![1, 1, 0]) u = ![X, Y, 1]
⊢ False
state_after: no goals
tactic: simpa [Units.smul_def, smul_fin3] using congr_fun eq z
Theorem: symmDiff_hnot_self
File: Mathlib/Order/SymmDiff.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : CoheytingAlgebra α
a : α
⊢ a ∆ (￢a) = ⊤
state_after: no goals
tactic: rw [symmDiff_comm, hnot_symmDiff_self]
Theorem: QPF.recF_eq_of_Wequiv
File: Mathlib/Data/QPF/Univariate/Basic.lean

Proof steps:
state_before: F : Type u → Type u
q : QPF F
α : Type u
u : F α → α
x y : (P F).W
⊢ Wequiv x y → recF u x = recF u y
state_after: F : Type u → Type u
q : QPF F
α : Type u
u : F α → α
x y : (P F).W
h : Wequiv x y
⊢ recF u x = recF u y
tactic: intro h
state_before: F : Type u → Type u
q : QPF F
α : Type u
u : F α → α
x y : (P F).W
h : Wequiv x y
⊢ recF u x = recF u y
state_after: no goals
tactic: induction h with
  | ind a f f' _ ih => simp only [recF_eq', PFunctor.map_eq, Function.comp, ih]
  | abs a f a' f' h => simp only [recF_eq', abs_map, h]
  | trans x y z _ _ ih₁ ih₂ => exact Eq.trans ih₁ ih₂
Theorem: Algebra.restrictScalars_adjoin
File: Mathlib/RingTheory/Adjoin/Basic.lean

Proof steps:
state_before: R : Type uR
S✝ : Type uS
A : Type uA
B : Type uB
F✝ : Type u_1
E✝ : Type u_2
K✝ : Type u_3
inst✝⁹ : CommSemiring E✝
inst✝⁸ : Semiring K✝
inst✝⁷ : SMul F✝ E✝
inst✝⁶ : Algebra E✝ K✝
inst✝⁵ : CommSemiring F✝
inst✝⁴ : Algebra F✝ K✝
inst✝³ : IsScalarTower F✝ E✝ K✝
L : Subalgebra F✝ K✝
F : Type u_4
inst✝² : CommSemiring F
E : Type u_5
inst✝¹ : CommSemiring E
inst✝ : Algebra F E
K : Subalgebra F E
S : Set E
⊢ Subalgebra.restrictScalars F (adjoin (↥K) S) = adjoin F (↑K ∪ S)
state_after: no goals
tactic: conv_lhs => rw [← Algebra.adjoin_eq K, ← Algebra.adjoin_union_eq_adjoin_adjoin]
Theorem: CategoryTheory.Groupoid.invEquiv_apply
File: Mathlib/CategoryTheory/Groupoid.lean

Proof steps:
state_before: C : Type u
inst✝ : Groupoid C
X Y : C
f : X ⟶ Y
⊢ inv (inv f) = f
state_after: no goals
tactic: simp
state_before: C : Type u
inst✝ : Groupoid C
X Y : C
f : Y ⟶ X
⊢ inv (inv f) = f
state_after: no goals
tactic: simp
Theorem: SymplecticGroup.inv_left_mul_aux
File: Mathlib/LinearAlgebra/SymplecticGroup.lean

Proof steps:
state_before: l : Type u_1
R : Type u_2
inst✝² : DecidableEq l
inst✝¹ : Fintype l
inst✝ : CommRing R
A : Matrix (l ⊕ l) (l ⊕ l) R
hA : A ∈ symplecticGroup l R
⊢ -(J l R * Aᵀ * J l R * A) = -J l R * (Aᵀ * J l R * A)
state_after: no goals
tactic: simp only [Matrix.mul_assoc, Matrix.neg_mul]
state_before: l : Type u_1
R : Type u_2
inst✝² : DecidableEq l
inst✝¹ : Fintype l
inst✝ : CommRing R
A : Matrix (l ⊕ l) (l ⊕ l) R
hA : A ∈ symplecticGroup l R
⊢ -J l R * (Aᵀ * J l R * A) = -J l R * J l R
state_after: l : Type u_1
R : Type u_2
inst✝² : DecidableEq l
inst✝¹ : Fintype l
inst✝ : CommRing R
A : Matrix (l ⊕ l) (l ⊕ l) R
hA : Aᵀ * J l R * A = J l R
⊢ -J l R * (Aᵀ * J l R * A) = -J l R * J l R
tactic: rw [mem_iff'] at hA
state_before: l : Type u_1
R : Type u_2
inst✝² : DecidableEq l
inst✝¹ : Fintype l
inst✝ : CommRing R
A : Matrix (l ⊕ l) (l ⊕ l) R
hA : Aᵀ * J l R * A = J l R
⊢ -J l R * (Aᵀ * J l R * A) = -J l R * J l R
state_after: no goals
tactic: rw [hA]
state_before: l : Type u_1
R : Type u_2
inst✝² : DecidableEq l
inst✝¹ : Fintype l
inst✝ : CommRing R
A : Matrix (l ⊕ l) (l ⊕ l) R
hA : A ∈ symplecticGroup l R
⊢ -J l R * J l R = -1 • (J l R * J l R)
state_after: no goals
tactic: simp only [Matrix.neg_mul, neg_smul, one_smul]
state_before: l : Type u_1
R : Type u_2
inst✝² : DecidableEq l
inst✝¹ : Fintype l
inst✝ : CommRing R
A : Matrix (l ⊕ l) (l ⊕ l) R
hA : A ∈ symplecticGroup l R
⊢ -1 • (J l R * J l R) = -1 • -1
state_after: no goals
tactic: rw [J_squared]
state_before: l : Type u_1
R : Type u_2
inst✝² : DecidableEq l
inst✝¹ : Fintype l
inst✝ : CommRing R
A : Matrix (l ⊕ l) (l ⊕ l) R
hA : A ∈ symplecticGroup l R
⊢ -1 • -1 = 1
state_after: no goals
tactic: simp only [neg_smul_neg, one_smul]
Theorem: Quaternion.im_sq
File: Mathlib/Algebra/Quaternion.lean

Proof steps:
state_before: S : Type u_1
T : Type u_2
R : Type u_3
inst✝ : CommRing R
r x y z : R
a b c : ℍ[R]
⊢ a.im ^ 2 = -↑(normSq a.im)
state_after: no goals
tactic: simp_rw [sq, ← star_mul_self, im_star, neg_mul, neg_neg]
Theorem: Doset.doset_union_rightCoset
File: Mathlib/GroupTheory/DoubleCoset.lean

Proof steps:
state_before: G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H K : Subgroup G
a : G
⊢ ⋃ k, op (a * ↑k) • ↑H = doset a ↑H ↑K
state_after: case h
G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H K : Subgroup G
a x : G
⊢ x ∈ ⋃ k, op (a * ↑k) • ↑H ↔ x ∈ doset a ↑H ↑K
tactic: ext x
state_before: case h
G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H K : Subgroup G
a x : G
⊢ x ∈ ⋃ k, op (a * ↑k) • ↑H ↔ x ∈ doset a ↑H ↑K
state_after: case h
G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H K : Subgroup G
a x : G
⊢ (∃ i, x * ((↑i)⁻¹ * a⁻¹) ∈ H) ↔ ∃ x_1 ∈ H, ∃ y ∈ K, x = x_1 * a * y
tactic: simp only [mem_rightCoset_iff, exists_prop, mul_inv_rev, Set.mem_iUnion, mem_doset,
    Subgroup.mem_carrier, SetLike.mem_coe]
state_before: case h
G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H K : Subgroup G
a x : G
⊢ (∃ i, x * ((↑i)⁻¹ * a⁻¹) ∈ H) ↔ ∃ x_1 ∈ H, ∃ y ∈ K, x = x_1 * a * y
state_after: case h.mp
G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H K : Subgroup G
a x : G
⊢ (∃ i, x * ((↑i)⁻¹ * a⁻¹) ∈ H) → ∃ x_1 ∈ H, ∃ y ∈ K, x = x_1 * a * y

case h.mpr
G : Type u_1
inst✝¹ : Group G
α : Type u_2
inst✝ : Mul α
J : Subgroup G
g : G
H K : Subgroup G
a x : G
⊢ (∃ x_1 ∈ H, ∃ y ∈ K, x = x_1 * a * y) → ∃ i, x * ((↑i)⁻¹ * a⁻¹) ∈ H
tactic: constructor
Theorem: SimpleGraph.isNClique_one
File: Mathlib/Combinatorics/SimpleGraph/Clique.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a b c : α
⊢ G.IsNClique 1 s ↔ ∃ a, s = {a}
state_after: α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a b c : α
⊢ (∃ a, s = {a}) → G.IsClique ↑s
tactic: simp only [isNClique_iff, card_eq_one, and_iff_right_iff_imp]
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a b c : α
⊢ (∃ a, s = {a}) → G.IsClique ↑s
state_after: case intro
α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
a✝ b c a : α
⊢ G.IsClique ↑{a}
tactic: rintro ⟨a, rfl⟩
state_before: case intro
α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
a✝ b c a : α
⊢ G.IsClique ↑{a}
state_after: no goals
tactic: simp