ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: ChainComplex.fromSingle₀Equiv_apply
File: Mathlib/Algebra/Homology/Single.lean

Proof steps:
state_before: V : Type u
inst✝² : Category.{v, u} V
inst✝¹ : HasZeroMorphisms V
inst✝ : HasZeroObject V
C : ChainComplex V ℕ
X : V
f : X ⟶ C.X 0
i : ℕ
hi : (ComplexShape.down ℕ).Rel 0 i
⊢ f ≫ C.d 0 i = 0
state_after: no goals
tactic: simp at hi
state_before: V : Type u
inst✝² : Category.{v, u} V
inst✝¹ : HasZeroMorphisms V
inst✝ : HasZeroObject V
C : ChainComplex V ℕ
X : V
⊢ Function.LeftInverse (fun f => HomologicalComplex.mkHomFromSingle f ⋯) fun f => f.f 0
state_after: no goals
tactic: aesop_cat
state_before: V : Type u
inst✝² : Category.{v, u} V
inst✝¹ : HasZeroMorphisms V
inst✝ : HasZeroObject V
C : ChainComplex V ℕ
X : V
⊢ Function.RightInverse (fun f => HomologicalComplex.mkHomFromSingle f ⋯) fun f => f.f 0
state_after: no goals
tactic: aesop_cat
Theorem: SimpleGraph.nonempty_ends_of_infinite
File: Mathlib/Combinatorics/SimpleGraph/Ends/Properties.lean

Proof steps:
state_before: V : Type
G : SimpleGraph V
inst✝² : G.LocallyFinite
inst✝¹ : Fact G.Preconnected
inst✝ : Infinite V
⊢ G.end.Nonempty
state_after: no goals
tactic: classical
  apply nonempty_sections_of_finite_inverse_system G.componentComplFunctor
Theorem: MvPowerSeries.trunc_c
File: Mathlib/RingTheory/MvPowerSeries/Trunc.lean

Proof steps:
state_before: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
n✝ n : σ →₀ ℕ
hnn : n ≠ 0
a : R
m : σ →₀ ℕ
⊢ MvPolynomial.coeff m ((trunc R n) ((C σ R) a)) = MvPolynomial.coeff m (MvPolynomial.C a)
state_after: no goals
tactic: classical
    rw [coeff_trunc, coeff_C, MvPolynomial.coeff_C]
    split_ifs with H <;> first |rfl|try simp_all
    exfalso; apply H; subst m; exact Ne.bot_lt hnn
Theorem: FormalMultilinearSeries.comp_removeZero
File: Mathlib/Analysis/Analytic/Composition.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹⁵ : CommRing 𝕜
inst✝¹⁴ : AddCommGroup E
inst✝¹³ : AddCommGroup F
inst✝¹² : AddCommGroup G
inst✝¹¹ : Module 𝕜 E
inst✝¹⁰ : Module 𝕜 F
inst✝⁹ : Module 𝕜 G
inst✝⁸ : TopologicalSpace E
inst✝⁷ : TopologicalSpace F
inst✝⁶ : TopologicalSpace G
inst✝⁵ : TopologicalAddGroup E
inst✝⁴ : ContinuousConstSMul 𝕜 E
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousConstSMul 𝕜 F
inst✝¹ : TopologicalAddGroup G
inst✝ : ContinuousConstSMul 𝕜 G
q : FormalMultilinearSeries 𝕜 F G
p : FormalMultilinearSeries 𝕜 E F
⊢ q.comp p.removeZero = q.comp p
state_after: case h.H
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹⁵ : CommRing 𝕜
inst✝¹⁴ : AddCommGroup E
inst✝¹³ : AddCommGroup F
inst✝¹² : AddCommGroup G
inst✝¹¹ : Module 𝕜 E
inst✝¹⁰ : Module 𝕜 F
inst✝⁹ : Module 𝕜 G
inst✝⁸ : TopologicalSpace E
inst✝⁷ : TopologicalSpace F
inst✝⁶ : TopologicalSpace G
inst✝⁵ : TopologicalAddGroup E
inst✝⁴ : ContinuousConstSMul 𝕜 E
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousConstSMul 𝕜 F
inst✝¹ : TopologicalAddGroup G
inst✝ : ContinuousConstSMul 𝕜 G
q : FormalMultilinearSeries 𝕜 F G
p : FormalMultilinearSeries 𝕜 E F
n : ℕ
x✝ : Fin n → E
⊢ (q.comp p.removeZero n) x✝ = (q.comp p n) x✝
tactic: ext n
state_before: case h.H
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹⁵ : CommRing 𝕜
inst✝¹⁴ : AddCommGroup E
inst✝¹³ : AddCommGroup F
inst✝¹² : AddCommGroup G
inst✝¹¹ : Module 𝕜 E
inst✝¹⁰ : Module 𝕜 F
inst✝⁹ : Module 𝕜 G
inst✝⁸ : TopologicalSpace E
inst✝⁷ : TopologicalSpace F
inst✝⁶ : TopologicalSpace G
inst✝⁵ : TopologicalAddGroup E
inst✝⁴ : ContinuousConstSMul 𝕜 E
inst✝³ : TopologicalAddGroup F
inst✝² : ContinuousConstSMul 𝕜 F
inst✝¹ : TopologicalAddGroup G
inst✝ : ContinuousConstSMul 𝕜 G
q : FormalMultilinearSeries 𝕜 F G
p : FormalMultilinearSeries 𝕜 E F
n : ℕ
x✝ : Fin n → E
⊢ (q.comp p.removeZero n) x✝ = (q.comp p n) x✝
state_after: no goals
tactic: simp [FormalMultilinearSeries.comp]
Theorem: AdicCompletion.map_exact
File: Mathlib/RingTheory/AdicCompletion/Exactness.lean

Proof steps:
state_before: R : Type u
inst✝⁸ : CommRing R
I : Ideal R
M : Type u
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
N : Type u
inst✝⁵ : AddCommGroup N
inst✝⁴ : Module R N
P : Type u
inst✝³ : AddCommGroup P
inst✝² : Module R P
inst✝¹ : IsNoetherianRing R
inst✝ : Module.Finite R N
f : M →ₗ[R] N
g : N →ₗ[R] P
hf : Function.Injective ⇑f
hfg : Function.Exact ⇑f ⇑g
hg : Function.Surjective ⇑g
⊢ Function.Exact ⇑(map I f) ⇑(map I g)
state_after: case refine_1
R : Type u
inst✝⁸ : CommRing R
I : Ideal R
M : Type u
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
N : Type u
inst✝⁵ : AddCommGroup N
inst✝⁴ : Module R N
P : Type u
inst✝³ : AddCommGroup P
inst✝² : Module R P
inst✝¹ : IsNoetherianRing R
inst✝ : Module.Finite R N
f : M →ₗ[R] N
g : N →ₗ[R] P
hf : Function.Injective ⇑f
hfg : Function.Exact ⇑f ⇑g
hg : Function.Surjective ⇑g
⊢ map I g ∘ₗ map I f = 0

case refine_2
R : Type u
inst✝⁸ : CommRing R
I : Ideal R
M : Type u
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
N : Type u
inst✝⁵ : AddCommGroup N
inst✝⁴ : Module R N
P : Type u
inst✝³ : AddCommGroup P
inst✝² : Module R P
inst✝¹ : IsNoetherianRing R
inst✝ : Module.Finite R N
f : M →ₗ[R] N
g : N →ₗ[R] P
hf : Function.Injective ⇑f
hfg : Function.Exact ⇑f ⇑g
hg : Function.Surjective ⇑g
y : AdicCompletion I N
⊢ y ∈ ker (map I g) → y ∈ range (map I f)
tactic: refine LinearMap.exact_of_comp_eq_zero_of_ker_le_range ?_ (fun y ↦ ?_)
Theorem: Multiset.Rel.mono
File: Mathlib/Data/Multiset/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
r✝ : α → β → Prop
p✝ : γ → δ → Prop
r p : α → β → Prop
s : Multiset α
t : Multiset β
hst : Rel r s t
h : ∀ a ∈ s, ∀ b ∈ t, r a b → p a b
⊢ Rel p s t
state_after: no goals
tactic: induction hst with
  | zero => exact Rel.zero
  | @cons a b s t hab _hst ih =>
    apply Rel.cons (h a (mem_cons_self _ _) b (mem_cons_self _ _) hab)
    exact ih fun a' ha' b' hb' h' => h a' (mem_cons_of_mem ha') b' (mem_cons_of_mem hb') h'
Theorem: linearIndependent_algHom_toLinearMap'
File: Mathlib/LinearAlgebra/LinearIndependent.lean

Proof steps:
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K✝ : Type u_3
M✝ : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M✝
inst✝¹³ : Ring R
inst✝¹² : AddCommGroup M✝
inst✝¹¹ : AddCommGroup M'
inst✝¹⁰ : AddCommGroup M''
inst✝⁹ : Module R M✝
inst✝⁸ : Module R M'
inst✝⁷ : Module R M''
a b : R
x y : M✝
K : Type u_8
M : Type u_9
L : Type u_10
inst✝⁶ : CommRing K
inst✝⁵ : Semiring M
inst✝⁴ : Algebra K M
inst✝³ : CommRing L
inst✝² : IsDomain L
inst✝¹ : Algebra K L
inst✝ : NoZeroSMulDivisors K L
⊢ LinearIndependent K AlgHom.toLinearMap
state_after: ι : Type u'
ι' : Type u_1
R : Type u_2
K✝ : Type u_3
M✝ : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M✝
inst✝¹³ : Ring R
inst✝¹² : AddCommGroup M✝
inst✝¹¹ : AddCommGroup M'
inst✝¹⁰ : AddCommGroup M''
inst✝⁹ : Module R M✝
inst✝⁸ : Module R M'
inst✝⁷ : Module R M''
a b : R
x y : M✝
K : Type u_8
M : Type u_9
L : Type u_10
inst✝⁶ : CommRing K
inst✝⁵ : Semiring M
inst✝⁴ : Algebra K M
inst✝³ : CommRing L
inst✝² : IsDomain L
inst✝¹ : Algebra K L
inst✝ : NoZeroSMulDivisors K L
⊢ Injective fun r => r • 1
tactic: apply (linearIndependent_algHom_toLinearMap K M L).restrict_scalars
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K✝ : Type u_3
M✝ : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M✝
inst✝¹³ : Ring R
inst✝¹² : AddCommGroup M✝
inst✝¹¹ : AddCommGroup M'
inst✝¹⁰ : AddCommGroup M''
inst✝⁹ : Module R M✝
inst✝⁸ : Module R M'
inst✝⁷ : Module R M''
a b : R
x y : M✝
K : Type u_8
M : Type u_9
L : Type u_10
inst✝⁶ : CommRing K
inst✝⁵ : Semiring M
inst✝⁴ : Algebra K M
inst✝³ : CommRing L
inst✝² : IsDomain L
inst✝¹ : Algebra K L
inst✝ : NoZeroSMulDivisors K L
⊢ Injective fun r => r • 1
state_after: ι : Type u'
ι' : Type u_1
R : Type u_2
K✝ : Type u_3
M✝ : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M✝
inst✝¹³ : Ring R
inst✝¹² : AddCommGroup M✝
inst✝¹¹ : AddCommGroup M'
inst✝¹⁰ : AddCommGroup M''
inst✝⁹ : Module R M✝
inst✝⁸ : Module R M'
inst✝⁷ : Module R M''
a b : R
x y : M✝
K : Type u_8
M : Type u_9
L : Type u_10
inst✝⁶ : CommRing K
inst✝⁵ : Semiring M
inst✝⁴ : Algebra K M
inst✝³ : CommRing L
inst✝² : IsDomain L
inst✝¹ : Algebra K L
inst✝ : NoZeroSMulDivisors K L
⊢ Injective fun r => (algebraMap K L) r
tactic: simp_rw [Algebra.smul_def, mul_one]
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K✝ : Type u_3
M✝ : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M✝
inst✝¹³ : Ring R
inst✝¹² : AddCommGroup M✝
inst✝¹¹ : AddCommGroup M'
inst✝¹⁰ : AddCommGroup M''
inst✝⁹ : Module R M✝
inst✝⁸ : Module R M'
inst✝⁷ : Module R M''
a b : R
x y : M✝
K : Type u_8
M : Type u_9
L : Type u_10
inst✝⁶ : CommRing K
inst✝⁵ : Semiring M
inst✝⁴ : Algebra K M
inst✝³ : CommRing L
inst✝² : IsDomain L
inst✝¹ : Algebra K L
inst✝ : NoZeroSMulDivisors K L
⊢ Injective fun r => (algebraMap K L) r
state_after: no goals
tactic: exact NoZeroSMulDivisors.algebraMap_injective K L
Theorem: SequentiallyComplete.le_nhds_of_seq_tendsto_nhds
File: Mathlib/Topology/UniformSpace/Cauchy.lean

Proof steps:
state_before: α : Type u
β : Type v
uniformSpace : UniformSpace α
f : Filter α
hf : Cauchy f
U : ℕ → Set (α × α)
U_mem : ∀ (n : ℕ), U n ∈ 𝓤 α
U_le : ∀ s ∈ 𝓤 α, ∃ n, U n ⊆ s
a : α
ha : Tendsto (seq hf U_mem) atTop (𝓝 a)
s : Set (α × α)
hs : s ∈ 𝓤 α
⊢ ∃ t ∈ f, t ×ˢ t ⊆ s ∧ ∃ y, (a, y) ∈ s ∧ y ∈ t
state_after: case intro
α : Type u
β : Type v
uniformSpace : UniformSpace α
f : Filter α
hf : Cauchy f
U : ℕ → Set (α × α)
U_mem : ∀ (n : ℕ), U n ∈ 𝓤 α
U_le : ∀ s ∈ 𝓤 α, ∃ n, U n ⊆ s
a : α
ha : Tendsto (seq hf U_mem) atTop (𝓝 a)
s : Set (α × α)
hs : s ∈ 𝓤 α
m : ℕ
hm : U m ⊆ s
⊢ ∃ t ∈ f, t ×ˢ t ⊆ s ∧ ∃ y, (a, y) ∈ s ∧ y ∈ t
tactic: rcases U_le s hs with ⟨m, hm⟩
state_before: case intro
α : Type u
β : Type v
uniformSpace : UniformSpace α
f : Filter α
hf : Cauchy f
U : ℕ → Set (α × α)
U_mem : ∀ (n : ℕ), U n ∈ 𝓤 α
U_le : ∀ s ∈ 𝓤 α, ∃ n, U n ⊆ s
a : α
ha : Tendsto (seq hf U_mem) atTop (𝓝 a)
s : Set (α × α)
hs : s ∈ 𝓤 α
m : ℕ
hm : U m ⊆ s
⊢ ∃ t ∈ f, t ×ˢ t ⊆ s ∧ ∃ y, (a, y) ∈ s ∧ y ∈ t
state_after: case intro.intro
α : Type u
β : Type v
uniformSpace : UniformSpace α
f : Filter α
hf : Cauchy f
U : ℕ → Set (α × α)
U_mem : ∀ (n : ℕ), U n ∈ 𝓤 α
U_le : ∀ s ∈ 𝓤 α, ∃ n, U n ⊆ s
a : α
ha : Tendsto (seq hf U_mem) atTop (𝓝 a)
s : Set (α × α)
hs : s ∈ 𝓤 α
m : ℕ
hm : U m ⊆ s
n : ℕ
hn : ∀ b ≥ n, seq hf U_mem b ∈ {y | (a, y) ∈ U m}
⊢ ∃ t ∈ f, t ×ˢ t ⊆ s ∧ ∃ y, (a, y) ∈ s ∧ y ∈ t
tactic: rcases tendsto_atTop'.1 ha _ (mem_nhds_left a (U_mem m)) with ⟨n, hn⟩
state_before: case intro.intro
α : Type u
β : Type v
uniformSpace : UniformSpace α
f : Filter α
hf : Cauchy f
U : ℕ → Set (α × α)
U_mem : ∀ (n : ℕ), U n ∈ 𝓤 α
U_le : ∀ s ∈ 𝓤 α, ∃ n, U n ⊆ s
a : α
ha : Tendsto (seq hf U_mem) atTop (𝓝 a)
s : Set (α × α)
hs : s ∈ 𝓤 α
m : ℕ
hm : U m ⊆ s
n : ℕ
hn : ∀ b ≥ n, seq hf U_mem b ∈ {y | (a, y) ∈ U m}
⊢ ∃ t ∈ f, t ×ˢ t ⊆ s ∧ ∃ y, (a, y) ∈ s ∧ y ∈ t
state_after: case intro.intro.refine_1
α : Type u
β : Type v
uniformSpace : UniformSpace α
f : Filter α
hf : Cauchy f
U : ℕ → Set (α × α)
U_mem : ∀ (n : ℕ), U n ∈ 𝓤 α
U_le : ∀ s ∈ 𝓤 α, ∃ n, U n ⊆ s
a : α
ha : Tendsto (seq hf U_mem) atTop (𝓝 a)
s : Set (α × α)
hs : s ∈ 𝓤 α
m : ℕ
hm : U m ⊆ s
n : ℕ
hn : ∀ b ≥ n, seq hf U_mem b ∈ {y | (a, y) ∈ U m}
⊢ setSeq hf U_mem (max m n) ×ˢ setSeq hf U_mem (max m n) ⊆ s

case intro.intro.refine_2
α : Type u
β : Type v
uniformSpace : UniformSpace α
f : Filter α
hf : Cauchy f
U : ℕ → Set (α × α)
U_mem : ∀ (n : ℕ), U n ∈ 𝓤 α
U_le : ∀ s ∈ 𝓤 α, ∃ n, U n ⊆ s
a : α
ha : Tendsto (seq hf U_mem) atTop (𝓝 a)
s : Set (α × α)
hs : s ∈ 𝓤 α
m : ℕ
hm : U m ⊆ s
n : ℕ
hn : ∀ b ≥ n, seq hf U_mem b ∈ {y | (a, y) ∈ U m}
⊢ (a, seq hf U_mem (max m n)) ∈ s
tactic: refine
        ⟨setSeq hf U_mem (max m n), setSeq_mem hf U_mem _, ?_, seq hf U_mem (max m n), ?_,
          seq_mem hf U_mem _⟩
Theorem: AffineIndependent.mem_affineSpan_iff
File: Mathlib/LinearAlgebra/AffineSpace/Independent.lean

Proof steps:
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_4
inst✝ : Nontrivial k
p : ι → P
ha : AffineIndependent k p
i : ι
s : Set ι
⊢ p i ∈ affineSpan k (p '' s) ↔ i ∈ s
state_after: case mp
k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_4
inst✝ : Nontrivial k
p : ι → P
ha : AffineIndependent k p
i : ι
s : Set ι
⊢ p i ∈ affineSpan k (p '' s) → i ∈ s

case mpr
k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_4
inst✝ : Nontrivial k
p : ι → P
ha : AffineIndependent k p
i : ι
s : Set ι
⊢ i ∈ s → p i ∈ affineSpan k (p '' s)
tactic: constructor
Theorem: EqualCharZero.nonempty_algebraRat_iff
File: Mathlib/Algebra/CharP/MixedCharZero.lean

Proof steps:
state_before: R : Type u_1
inst✝ : CommRing R
⊢ Nonempty (Algebra ℚ R) ↔ ∀ (I : Ideal R), I ≠ ⊤ → CharZero (R ⧸ I)
state_after: case mp
R : Type u_1
inst✝ : CommRing R
⊢ Nonempty (Algebra ℚ R) → ∀ (I : Ideal R), I ≠ ⊤ → CharZero (R ⧸ I)

case mpr
R : Type u_1
inst✝ : CommRing R
⊢ (∀ (I : Ideal R), I ≠ ⊤ → CharZero (R ⧸ I)) → Nonempty (Algebra ℚ R)
tactic: constructor
Theorem: _private.Mathlib.Combinatorics.SimpleGraph.Regularity.Chunk.0.SzemerediRegularity.one_sub_eps_mul_card_nonuniformWitness_le_card_star
File: Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean

Proof steps:
state_before: α : Type u_1
inst✝² : Fintype α
inst✝¹ : DecidableEq α
P : Finpartition univ
hP : P.IsEquipartition
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : ℝ
U : Finset α
hU : U ∈ P.parts
V : Finset α
𝒜 : Finset (Finset α)
s : Finset α
hV : V ∈ P.parts
hUV : U ≠ V
hunif : ¬G.IsUniform ε U V
hPε : 100 ≤ 4 ^ P.parts.card * ε ^ 5
hε₁ : ε ≤ 1
⊢ (1 - ε / 10) * ↑(G.nonuniformWitness ε U V).card ≤ ↑((star hP G ε hU V).biUnion id).card
state_after: α : Type u_1
inst✝² : Fintype α
inst✝¹ : DecidableEq α
P : Finpartition univ
hP : P.IsEquipartition
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
ε : ℝ
U : Finset α
hU : U ∈ P.parts
V : Finset α
𝒜 : Finset (Finset α)
s : Finset α
hV : V ∈ P.parts
hUV : U ≠ V
hunif : ¬G.IsUniform ε U V
hPε : 100 ≤ 4 ^ P.parts.card * ε ^ 5
hε₁ : ε ≤ 1
hP₁ : 0 < P.parts.card
⊢ (1 - ε / 10) * ↑(G.nonuniformWitness ε U V).card ≤ ↑((star hP G ε hU V).biUnion id).card
tactic: have hP₁ : 0 < P.parts.card := Finset.card_pos.2 ⟨_, hU⟩
Theorem: Ordering.swap_then
File: .lake/packages/batteries/Batteries/Classes/Order.lean

Proof steps:
state_before: o₁ o₂ : Ordering
⊢ (o₁.then o₂).swap = o₁.swap.then o₂.swap
state_after: no goals
tactic: cases o₁ <;> rfl
Theorem: MonoidHomClass.isMulFreimanHom
File: Mathlib/Combinatorics/Additive/FreimanHom.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝⁴ : CommMonoid α
inst✝³ : CommMonoid β
inst✝² : CommMonoid γ
A A₁ A₂ : Set α
B B₁ B₂ : Set β
C : Set γ
f✝ f₁ f₂ : α → β
g : β → γ
m n : ℕ
inst✝¹ : FunLike F α β
inst✝ : MonoidHomClass F α β
f : F
hfAB : MapsTo (⇑f) A B
s t : Multiset α
x✝³ : ∀ ⦃x : α⦄, x ∈ s → x ∈ A
x✝² : ∀ ⦃x : α⦄, x ∈ t → x ∈ A
x✝¹ : card s = n
x✝ : card t = n
h : s.prod = t.prod
⊢ (map (⇑f) s).prod = (map (⇑f) t).prod
state_after: no goals
tactic: rw [← map_multiset_prod, h, map_multiset_prod]
Theorem: OnePoint.isOpen_iff_of_not_mem
File: Mathlib/Topology/Compactification/OnePoint.lean

Proof steps:
state_before: X : Type u_1
inst✝ : TopologicalSpace X
s : Set (OnePoint X)
t : Set X
h : ∞ ∉ s
⊢ IsOpen s ↔ IsOpen (some ⁻¹' s)
state_after: no goals
tactic: simp [isOpen_def, h]
Theorem: PowerSeries.eq_X_mul_shift_add_const
File: Mathlib/RingTheory/PowerSeries/Basic.lean

Proof steps:
state_before: R : Type u_1
inst✝ : Semiring R
φ : R⟦X⟧
⊢ φ = (X * mk fun p => (coeff R (p + 1)) φ) + (C R) ((constantCoeff R) φ)
state_after: case h.zero
R : Type u_1
inst✝ : Semiring R
φ : R⟦X⟧
⊢ (coeff R 0) φ = (coeff R 0) ((X * mk fun p => (coeff R (p + 1)) φ) + (C R) ((constantCoeff R) φ))

case h.succ
R : Type u_1
inst✝ : Semiring R
φ : R⟦X⟧
n : ℕ
⊢ (coeff R (n + 1)) φ = (coeff R (n + 1)) ((X * mk fun p => (coeff R (p + 1)) φ) + (C R) ((constantCoeff R) φ))
tactic: ext (_ | n)
Theorem: MeasureTheory.ProbabilityMeasure.map_apply_of_aemeasurable
File: Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean

Proof steps:
state_before: Ω : Type u_1
Ω' : Type u_2
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSpace Ω'
ν : ProbabilityMeasure Ω
f : Ω → Ω'
f_aemble : AEMeasurable f ↑ν
A : Set Ω'
A_mble : MeasurableSet A
⊢ (ν.map f_aemble) A = ν (f ⁻¹' A)
state_after: Ω : Type u_1
Ω' : Type u_2
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSpace Ω'
ν : ProbabilityMeasure Ω
f : Ω → Ω'
f_aemble : AEMeasurable f ↑ν
A : Set Ω'
A_mble : MeasurableSet A
this : ↑(ν.map f_aemble) A = ↑ν (f ⁻¹' A)
⊢ (ν.map f_aemble) A = ν (f ⁻¹' A)
tactic: have := ν.map_apply' f_aemble A_mble
state_before: Ω : Type u_1
Ω' : Type u_2
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSpace Ω'
ν : ProbabilityMeasure Ω
f : Ω → Ω'
f_aemble : AEMeasurable f ↑ν
A : Set Ω'
A_mble : MeasurableSet A
this : ↑(ν.map f_aemble) A = ↑ν (f ⁻¹' A)
⊢ (ν.map f_aemble) A = ν (f ⁻¹' A)
state_after: no goals
tactic: exact (ENNReal.toNNReal_eq_toNNReal_iff' (measure_ne_top _ _) (measure_ne_top _ _)).mpr this
Theorem: Batteries.RBNode.Path.zoom_fill'
File: .lake/packages/batteries/Batteries/Data/RBMap/Alter.lean

Proof steps:
state_before: α : Type u_1
cut : α → Ordering
t : RBNode α
path : Path α
⊢ fill' (zoom cut t path) = path.fill t
state_after: no goals
tactic: induction t generalizing path with
  | nil => rfl
  | node _ _ _ _ iha ihb => unfold zoom; split <;> [apply iha; apply ihb; rfl]
Theorem: CochainComplex.mappingCone.ext_to_iff
File: Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.53819, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
i j : ℤ
hij : i + 1 = j
A : C
f g : A ⟶ (mappingCone φ).X i
⊢ f = g ↔ f ≫ (↑(fst φ)).v i j hij = g ≫ (↑(fst φ)).v i j hij ∧ f ≫ (snd φ).v i i ⋯ = g ≫ (snd φ).v i i ⋯
state_after: case mp
C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.53819, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
i j : ℤ
hij : i + 1 = j
A : C
f g : A ⟶ (mappingCone φ).X i
⊢ f = g → f ≫ (↑(fst φ)).v i j hij = g ≫ (↑(fst φ)).v i j hij ∧ f ≫ (snd φ).v i i ⋯ = g ≫ (snd φ).v i i ⋯

case mpr
C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.53819, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
i j : ℤ
hij : i + 1 = j
A : C
f g : A ⟶ (mappingCone φ).X i
⊢ f ≫ (↑(fst φ)).v i j hij = g ≫ (↑(fst φ)).v i j hij ∧ f ≫ (snd φ).v i i ⋯ = g ≫ (snd φ).v i i ⋯ → f = g
tactic: constructor
Theorem: eq_cosets_of_normal
File: Mathlib/GroupTheory/Coset.lean

Proof steps:
state_before: α : Type u_1
inst✝ : Group α
s : Subgroup α
N : s.Normal
g a : α
⊢ a ∈ g • ↑s ↔ a ∈ op g • ↑s
state_after: no goals
tactic: simp [mem_leftCoset_iff, mem_rightCoset_iff, N.mem_comm_iff]
Theorem: PartialHomeomorph.map_extend_symm_nhdsWithin_range
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : TopologicalSpace H
inst✝⁴ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
inst✝¹ : TopologicalSpace H'
inst✝ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
y : M
hy : y ∈ f.source
⊢ map (↑(f.extend I).symm) (𝓝[range ↑I] ↑(f.extend I) y) = 𝓝 y
state_after: no goals
tactic: rw [← nhdsWithin_univ, ← map_extend_symm_nhdsWithin f I hy, preimage_univ, univ_inter]
Theorem: CategoryTheory.Monad.algebra_iso_of_iso
File: Mathlib/CategoryTheory/Monad/Algebra.lean

Proof steps:
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
T : Monad C
A B : T.Algebra
f : A ⟶ B
inst✝ : IsIso f.f
⊢ T.map (inv f.f) ≫ A.a = B.a ≫ inv f.f
state_after: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
T : Monad C
A B : T.Algebra
f : A ⟶ B
inst✝ : IsIso f.f
⊢ T.map (inv f.f) ≫ T.map f.f ≫ B.a = B.a
tactic: rw [IsIso.eq_comp_inv f.f, Category.assoc, ← f.h]
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
T : Monad C
A B : T.Algebra
f : A ⟶ B
inst✝ : IsIso f.f
⊢ T.map (inv f.f) ≫ T.map f.f ≫ B.a = B.a
state_after: no goals
tactic: simp
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
T : Monad C
A B : T.Algebra
f : A ⟶ B
inst✝ : IsIso f.f
⊢ f ≫ { f := inv f.f, h := ⋯ } = 𝟙 A ∧ { f := inv f.f, h := ⋯ } ≫ f = 𝟙 B
state_after: no goals
tactic: aesop_cat
Theorem: is_const_of_fderiv_eq_zero
File: Mathlib/Analysis/Calculus/MeanValue.lean

Proof steps:
state_before: E✝ : Type u_1
inst✝⁹ : NormedAddCommGroup E✝
inst✝⁸ : NormedSpace ℝ E✝
F : Type u_2
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
𝕜 : Type u_3
G : Type u_4
inst✝⁵ : RCLike 𝕜
inst✝⁴ : NormedSpace 𝕜 E✝
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
f✝ g : E✝ → G
C : ℝ
s : Set E✝
x✝ y✝ : E✝
f' g' : E✝ → E✝ →L[𝕜] G
φ : E✝ →L[𝕜] G
E : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : E → G
hf : Differentiable 𝕜 f
hf' : ∀ (x : E), fderiv 𝕜 f x = 0
x y : E
⊢ f x = f y
state_after: E✝ : Type u_1
inst✝⁹ : NormedAddCommGroup E✝
inst✝⁸ : NormedSpace ℝ E✝
F : Type u_2
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
𝕜 : Type u_3
G : Type u_4
inst✝⁵ : RCLike 𝕜
inst✝⁴ : NormedSpace 𝕜 E✝
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
f✝ g : E✝ → G
C : ℝ
s : Set E✝
x✝ y✝ : E✝
f' g' : E✝ → E✝ →L[𝕜] G
φ : E✝ →L[𝕜] G
E : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : E → G
hf : Differentiable 𝕜 f
hf' : ∀ (x : E), fderiv 𝕜 f x = 0
x y : E
A : NormedSpace ℝ E := RestrictScalars.normedSpace ℝ 𝕜 E
⊢ f x = f y
tactic: let A : NormedSpace ℝ E := RestrictScalars.normedSpace ℝ 𝕜 E
state_before: E✝ : Type u_1
inst✝⁹ : NormedAddCommGroup E✝
inst✝⁸ : NormedSpace ℝ E✝
F : Type u_2
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
𝕜 : Type u_3
G : Type u_4
inst✝⁵ : RCLike 𝕜
inst✝⁴ : NormedSpace 𝕜 E✝
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
f✝ g : E✝ → G
C : ℝ
s : Set E✝
x✝ y✝ : E✝
f' g' : E✝ → E✝ →L[𝕜] G
φ : E✝ →L[𝕜] G
E : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : E → G
hf : Differentiable 𝕜 f
hf' : ∀ (x : E), fderiv 𝕜 f x = 0
x y : E
A : NormedSpace ℝ E := RestrictScalars.normedSpace ℝ 𝕜 E
⊢ f x = f y
state_after: no goals
tactic: exact convex_univ.is_const_of_fderivWithin_eq_zero hf.differentiableOn
    (fun x _ => by rw [fderivWithin_univ]; exact hf' x) trivial trivial
Theorem: Real.cos_eq_one_iff
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

Proof steps:
state_before: x : ℝ
h : cos x = 1
n : ℤ
hn : ↑n * π = x
hn0 : n % 2 = 0
⊢ ↑(n / 2) * (2 * π) = x
state_after: no goals
tactic: rwa [← mul_assoc, ← @Int.cast_two ℝ, ← Int.cast_mul,
            Int.ediv_mul_cancel ((Int.dvd_iff_emod_eq_zero _ _).2 hn0)]
state_before: x : ℝ
h : cos x = 1
n : ℤ
hn : ↑n * π = x
hn1 : n % 2 = 1
⊢ ↑(n / 2) * (2 * π) = x
state_after: x : ℝ
h : cos x = 1
n : ℤ
hn : ↑(n / 2) * (2 * π) + π = x
hn1 : n % 2 = 1
⊢ ↑(n / 2) * (2 * π) = x
tactic: rw [← Int.emod_add_ediv n 2, hn1, Int.cast_add, Int.cast_one, add_mul, one_mul, add_comm,
              mul_comm (2 : ℤ), Int.cast_mul, mul_assoc, Int.cast_two] at hn
state_before: x : ℝ
h : cos x = 1
n : ℤ
hn : ↑(n / 2) * (2 * π) + π = x
hn1 : n % 2 = 1
⊢ ↑(n / 2) * (2 * π) = x
state_after: x : ℝ
n : ℤ
h : -1 = 1
hn : ↑(n / 2) * (2 * π) + π = x
hn1 : n % 2 = 1
⊢ ↑(n / 2) * (2 * π) = x
tactic: rw [← hn, cos_int_mul_two_pi_add_pi] at h
state_before: x : ℝ
n : ℤ
h : -1 = 1
hn : ↑(n / 2) * (2 * π) + π = x
hn1 : n % 2 = 1
⊢ ↑(n / 2) * (2 * π) = x
state_after: no goals
tactic: exact absurd h (by norm_num)