ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: CategoryTheory.Functor.homologySequenceδ_naturality
File: Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
A : Type u_3
inst✝¹⁶ : Category.{u_5, u_1} C
inst✝¹⁵ : HasZeroObject C
inst✝¹⁴ : HasShift C ℤ
inst✝¹³ : Preadditive C
inst✝¹² : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝¹¹ : Pretriangulated C
inst✝¹⁰ : Category.{?u.41266, u_2} D
inst✝⁹ : HasZeroObject D
inst✝⁸ : HasShift D ℤ
inst✝⁷ : Preadditive D
inst✝⁶ : ∀ (n : ℤ), (shiftFunctor D n).Additive
inst✝⁵ : Pretriangulated D
inst✝⁴ : Category.{u_4, u_3} A
inst✝³ : Abelian A
F : C ⥤ A
inst✝² inst✝¹ : F.IsHomological
inst✝ : F.ShiftSequence ℤ
T T' : Triangle C
hT : T ∈ distinguishedTriangles
hT' : T' ∈ distinguishedTriangles
φ : T ⟶ T'
n₀ n₁ : ℤ
h : n₀ + 1 = n₁
⊢ (F.shift n₀).map φ.hom₃ ≫ F.homologySequenceδ T' n₀ n₁ h = F.homologySequenceδ T n₀ n₁ h ≫ (F.shift n₁).map φ.hom₁
state_after: C : Type u_1
D : Type u_2
A : Type u_3
inst✝¹⁶ : Category.{u_5, u_1} C
inst✝¹⁵ : HasZeroObject C
inst✝¹⁴ : HasShift C ℤ
inst✝¹³ : Preadditive C
inst✝¹² : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝¹¹ : Pretriangulated C
inst✝¹⁰ : Category.{?u.41266, u_2} D
inst✝⁹ : HasZeroObject D
inst✝⁸ : HasShift D ℤ
inst✝⁷ : Preadditive D
inst✝⁶ : ∀ (n : ℤ), (shiftFunctor D n).Additive
inst✝⁵ : Pretriangulated D
inst✝⁴ : Category.{u_4, u_3} A
inst✝³ : Abelian A
F : C ⥤ A
inst✝² inst✝¹ : F.IsHomological
inst✝ : F.ShiftSequence ℤ
T T' : Triangle C
hT : T ∈ distinguishedTriangles
hT' : T' ∈ distinguishedTriangles
φ : T ⟶ T'
n₀ n₁ : ℤ
h : n₀ + 1 = n₁
⊢ (F.shift n₀).map φ.hom₃ ≫ F.shiftMap T'.mor₃ n₀ n₁ ⋯ = F.shiftMap T.mor₃ n₀ n₁ ⋯ ≫ (F.shift n₁).map φ.hom₁
tactic: dsimp only [homologySequenceδ]
state_before: C : Type u_1
D : Type u_2
A : Type u_3
inst✝¹⁶ : Category.{u_5, u_1} C
inst✝¹⁵ : HasZeroObject C
inst✝¹⁴ : HasShift C ℤ
inst✝¹³ : Preadditive C
inst✝¹² : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝¹¹ : Pretriangulated C
inst✝¹⁰ : Category.{?u.41266, u_2} D
inst✝⁹ : HasZeroObject D
inst✝⁸ : HasShift D ℤ
inst✝⁷ : Preadditive D
inst✝⁶ : ∀ (n : ℤ), (shiftFunctor D n).Additive
inst✝⁵ : Pretriangulated D
inst✝⁴ : Category.{u_4, u_3} A
inst✝³ : Abelian A
F : C ⥤ A
inst✝² inst✝¹ : F.IsHomological
inst✝ : F.ShiftSequence ℤ
T T' : Triangle C
hT : T ∈ distinguishedTriangles
hT' : T' ∈ distinguishedTriangles
φ : T ⟶ T'
n₀ n₁ : ℤ
h : n₀ + 1 = n₁
⊢ (F.shift n₀).map φ.hom₃ ≫ F.shiftMap T'.mor₃ n₀ n₁ ⋯ = F.shiftMap T.mor₃ n₀ n₁ ⋯ ≫ (F.shift n₁).map φ.hom₁
state_after: no goals
tactic: rw [← shiftMap_comp', ← φ.comm₃, shiftMap_comp]
Theorem: CategoryTheory.Limits.Sigma.eqToHom_comp_ι
File: Mathlib/CategoryTheory/Limits/Shapes/Products.lean

Proof steps:
state_before: β : Type w
α : Type w₂
γ : Type w₃
C : Type u
inst✝¹ : Category.{v, u} C
J : Type u_1
f : J → C
inst✝ : HasCoproduct f
j j' : J
w : j = j'
⊢ f j = f j'
state_after: no goals
tactic: simp [w]
state_before: β : Type w
α : Type w₂
γ : Type w₃
C : Type u
inst✝¹ : Category.{v, u} C
J : Type u_1
f : J → C
inst✝ : HasCoproduct f
j j' : J
w : j = j'
⊢ eqToHom ⋯ ≫ ι f j' = ι f j
state_after: case refl
β : Type w
α : Type w₂
γ : Type w₃
C : Type u
inst✝¹ : Category.{v, u} C
J : Type u_1
f : J → C
inst✝ : HasCoproduct f
j : J
⊢ eqToHom ⋯ ≫ ι f j = ι f j
tactic: cases w
state_before: case refl
β : Type w
α : Type w₂
γ : Type w₃
C : Type u
inst✝¹ : Category.{v, u} C
J : Type u_1
f : J → C
inst✝ : HasCoproduct f
j : J
⊢ eqToHom ⋯ ≫ ι f j = ι f j
state_after: no goals
tactic: simp
Theorem: Int.gcd_a_modEq
File: Mathlib/Data/Int/ModEq.lean

Proof steps:
state_before: m n a✝ b✝ c d : ℤ
a b : ℕ
⊢ ↑a * a.gcdA b ≡ ↑(a.gcd b) [ZMOD ↑b]
state_after: m n a✝ b✝ c d : ℤ
a b : ℕ
⊢ ↑a * a.gcdA b + 0 ≡ ↑a * a.gcdA b + ↑b * a.gcdB b [ZMOD ↑b]
tactic: rw [← add_zero ((a : ℤ) * _), Nat.gcd_eq_gcd_ab]
state_before: m n a✝ b✝ c d : ℤ
a b : ℕ
⊢ ↑a * a.gcdA b + 0 ≡ ↑a * a.gcdA b + ↑b * a.gcdB b [ZMOD ↑b]
state_after: no goals
tactic: exact (dvd_mul_right _ _).zero_modEq_int.add_left _
Theorem: MeasureTheory.exists_measure_pos_of_not_measure_iUnion_null
File: Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
inst✝¹ : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
hs : μ (⋃ n, s n) ≠ 0
⊢ ∃ n, 0 < μ (s n)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
inst✝¹ : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
hs : ∀ (n : ι), μ (s n) ≤ 0
⊢ μ (⋃ n, s n) = 0
tactic: contrapose! hs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
inst✝¹ : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s✝ s₁ s₂ t : Set α
inst✝ : Countable ι
s : ι → Set α
hs : ∀ (n : ι), μ (s n) ≤ 0
⊢ μ (⋃ n, s n) = 0
state_after: no goals
tactic: exact measure_iUnion_null fun n => nonpos_iff_eq_zero.1 (hs n)
Theorem: ProbabilityTheory.setLIntegral_preimage_condDistrib
File: Mathlib/Probability/Kernel/CondDistrib.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
inst✝¹ : NormedAddCommGroup F
mα : MeasurableSpace α
μ : Measure α
inst✝ : IsFiniteMeasure μ
X : α → β
Y : α → Ω
mβ : MeasurableSpace β
s : Set Ω
t : Set β
f : β × Ω → F
hX : Measurable X
hY : AEMeasurable Y μ
hs : MeasurableSet s
ht : MeasurableSet t
⊢ ∫⁻ (a : α) in X ⁻¹' t, ((condDistrib Y X μ) (X a)) s ∂μ = μ (X ⁻¹' t ∩ Y ⁻¹' s)
state_after: α : Type u_1
β : Type u_2
Ω : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
inst✝¹ : NormedAddCommGroup F
mα : MeasurableSpace α
μ : Measure α
inst✝ : IsFiniteMeasure μ
X : α → β
Y : α → Ω
mβ : MeasurableSpace β
s : Set Ω
t : Set β
f : β × Ω → F
hX : Measurable X
hY : AEMeasurable Y μ
hs : MeasurableSet s
ht : MeasurableSet t
⊢ lintegral (μ.restrict (X ⁻¹' t)) ((fun a => ((condDistrib Y X μ) a) s) ∘ X) = μ (X ⁻¹' t ∩ Y ⁻¹' s)
tactic: conv_lhs => arg 2; change (fun a => ((condDistrib Y X μ) a) s) ∘ X
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
inst✝¹ : NormedAddCommGroup F
mα : MeasurableSpace α
μ : Measure α
inst✝ : IsFiniteMeasure μ
X : α → β
Y : α → Ω
mβ : MeasurableSpace β
s : Set Ω
t : Set β
f : β × Ω → F
hX : Measurable X
hY : AEMeasurable Y μ
hs : MeasurableSet s
ht : MeasurableSet t
⊢ lintegral (μ.restrict (X ⁻¹' t)) ((fun a => ((condDistrib Y X μ) a) s) ∘ X) = μ (X ⁻¹' t ∩ Y ⁻¹' s)
state_after: no goals
tactic: rw [lintegral_comp (Kernel.measurable_coe _ hs) hX, condDistrib, ← Measure.restrict_map hX ht, ←
    Measure.fst_map_prod_mk₀ hY, Measure.setLIntegral_condKernel_eq_measure_prod ht hs,
    Measure.map_apply_of_aemeasurable (hX.aemeasurable.prod_mk hY) (ht.prod hs), mk_preimage_prod]
Theorem: CategoryTheory.IsKernelPair.isIso_of_mono
File: Mathlib/CategoryTheory/Limits/Shapes/KernelPair.lean

Proof steps:
state_before: C : Type u
inst✝¹ : Category.{v, u} C
R X Y Z : C
f : X ⟶ Y
a b : R ⟶ X
h : IsKernelPair f a b
inst✝ : Mono f
⊢ IsIso a
state_after: C : Type u
inst✝¹ : Category.{v, u} C
R X Y Z : C
f : X ⟶ Y
a b : R ⟶ X
h : IsKernelPair f a b
inst✝ : Mono f
⊢ IsIso ((IsPullback.isLimit ⋯).conePointUniqueUpToIso (IsPullback.isLimit h)).inv
tactic: rw [←
    show _ = a from
      (Category.comp_id _).symm.trans
        ((IsKernelPair.id_of_mono f).isLimit.conePointUniqueUpToIso_inv_comp h.isLimit
          WalkingCospan.left)]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
R X Y Z : C
f : X ⟶ Y
a b : R ⟶ X
h : IsKernelPair f a b
inst✝ : Mono f
⊢ IsIso ((IsPullback.isLimit ⋯).conePointUniqueUpToIso (IsPullback.isLimit h)).inv
state_after: no goals
tactic: infer_instance
Theorem: Mathlib.Tactic.Ring.mul_congr
File: Mathlib/Tactic/Ring/Basic.lean

Proof steps:
state_before: u✝ : Lean.Level
arg : Q(Type u✝)
sα✝ : Q(CommSemiring «$arg»)
u : Lean.Level
α : Q(Type u)
sα : Q(CommSemiring «$α»)
R : Type u_1
inst✝ : CommSemiring R
a a' a₁ a₂ a₃ b b' b₁ b₂ b₃ c c₁ c₂ : R
x✝² : a = a'
x✝¹ : b = b'
x✝ : a' * b' = c
⊢ a * b = c
state_after: u✝ : Lean.Level
arg : Q(Type u✝)
sα✝ : Q(CommSemiring «$arg»)
u : Lean.Level
α : Q(Type u)
sα : Q(CommSemiring «$α»)
R : Type u_1
inst✝ : CommSemiring R
a' a₁ a₂ a₃ b' b₁ b₂ b₃ c₁ c₂ : R
⊢ a' * b' = a' * b'
tactic: subst_vars
state_before: u✝ : Lean.Level
arg : Q(Type u✝)
sα✝ : Q(CommSemiring «$arg»)
u : Lean.Level
α : Q(Type u)
sα : Q(CommSemiring «$α»)
R : Type u_1
inst✝ : CommSemiring R
a' a₁ a₂ a₃ b' b₁ b₂ b₃ c₁ c₂ : R
⊢ a' * b' = a' * b'
state_after: no goals
tactic: rfl
Theorem: AlgebraicGeometry.Scheme.isNilpotent_iff_basicOpen_eq_bot_of_isCompact
File: Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean

Proof steps:
state_before: X✝ Y : Scheme
f✝ : X✝ ⟶ Y
Z X : Scheme
U : X.Opens
hU : IsCompact ↑U
f : ↑Γ(X, U)
⊢ IsNilpotent f ↔ X.basicOpen f = ⊥
state_after: X✝ Y : Scheme
f✝ : X✝ ⟶ Y
Z X : Scheme
U : X.Opens
hU : IsCompact ↑U
f : ↑Γ(X, U)
hf : X.basicOpen f = ⊥
⊢ IsNilpotent f
tactic: refine ⟨X.basicOpen_eq_bot_of_isNilpotent U f, fun hf ↦ ?_⟩
state_before: X✝ Y : Scheme
f✝ : X✝ ⟶ Y
Z X : Scheme
U : X.Opens
hU : IsCompact ↑U
f : ↑Γ(X, U)
hf : X.basicOpen f = ⊥
⊢ IsNilpotent f
state_after: X✝ Y : Scheme
f✝ : X✝ ⟶ Y
Z X : Scheme
U : X.Opens
hU : IsCompact ↑U
f : ↑Γ(X, U)
hf : X.basicOpen f = ⊥
h : (1 |_ X.basicOpen f) ⋯ = 0
⊢ IsNilpotent f
tactic: have h : (1 : Γ(X, U)) |_ X.basicOpen f = (0 : Γ(X, X.basicOpen f)) := by
    have e : X.basicOpen f ≤ ⊥ := by rw [hf]
    rw [← X.presheaf.restrict_restrict e bot_le]
    have : Subsingleton Γ(X, ⊥) :=
      CommRingCat.subsingleton_of_isTerminal X.sheaf.isTerminalOfEmpty
    rw [Subsingleton.eq_zero (1 |_ ⊥)]
    show X.presheaf.map _ 0 = 0
    rw [map_zero]
state_before: X✝ Y : Scheme
f✝ : X✝ ⟶ Y
Z X : Scheme
U : X.Opens
hU : IsCompact ↑U
f : ↑Γ(X, U)
hf : X.basicOpen f = ⊥
h : (1 |_ X.basicOpen f) ⋯ = 0
⊢ IsNilpotent f
state_after: case intro
X✝ Y : Scheme
f✝ : X✝ ⟶ Y
Z X : Scheme
U : X.Opens
hU : IsCompact ↑U
f : ↑Γ(X, U)
hf : X.basicOpen f = ⊥
h : (1 |_ X.basicOpen f) ⋯ = 0
n : ℕ
hn : f ^ n * 1 = 0
⊢ IsNilpotent f
tactic: obtain ⟨n, hn⟩ := exists_pow_mul_eq_zero_of_res_basicOpen_eq_zero_of_isCompact X hU 1 f h
state_before: case intro
X✝ Y : Scheme
f✝ : X✝ ⟶ Y
Z X : Scheme
U : X.Opens
hU : IsCompact ↑U
f : ↑Γ(X, U)
hf : X.basicOpen f = ⊥
h : (1 |_ X.basicOpen f) ⋯ = 0
n : ℕ
hn : f ^ n * 1 = 0
⊢ IsNilpotent f
state_after: case intro
X✝ Y : Scheme
f✝ : X✝ ⟶ Y
Z X : Scheme
U : X.Opens
hU : IsCompact ↑U
f : ↑Γ(X, U)
hf : X.basicOpen f = ⊥
h : (1 |_ X.basicOpen f) ⋯ = 0
n : ℕ
hn : f ^ n = 0
⊢ IsNilpotent f
tactic: rw [mul_one] at hn
state_before: case intro
X✝ Y : Scheme
f✝ : X✝ ⟶ Y
Z X : Scheme
U : X.Opens
hU : IsCompact ↑U
f : ↑Γ(X, U)
hf : X.basicOpen f = ⊥
h : (1 |_ X.basicOpen f) ⋯ = 0
n : ℕ
hn : f ^ n = 0
⊢ IsNilpotent f
state_after: no goals
tactic: use n
Theorem: tsum_comm'
File: Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : CommMonoid α
inst✝² : TopologicalSpace α
inst✝¹ : ContinuousMul α
inst✝ : T3Space α
f : β → γ → α
h : Multipliable (uncurry f)
h₁ : ∀ (b : β), Multipliable (f b)
h₂ : ∀ (c : γ), Multipliable fun b => f b c
⊢ ∏' (c : γ) (b : β), f b c = ∏' (b : β) (c : γ), f b c
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : CommMonoid α
inst✝² : TopologicalSpace α
inst✝¹ : ContinuousMul α
inst✝ : T3Space α
f : β → γ → α
h : Multipliable (uncurry f)
h₁ : ∀ (b : β), Multipliable (f b)
h₂ : ∀ (c : γ), Multipliable fun b => f b c
⊢ ∏' (p : γ × β), uncurry f p.swap = ∏' (c : γ × β), uncurry f ((Equiv.prodComm γ β) c)
tactic: erw [← tprod_prod' h h₁, ← tprod_prod' h.prod_symm h₂,
      ← (Equiv.prodComm γ β).tprod_eq (uncurry f)]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : CommMonoid α
inst✝² : TopologicalSpace α
inst✝¹ : ContinuousMul α
inst✝ : T3Space α
f : β → γ → α
h : Multipliable (uncurry f)
h₁ : ∀ (b : β), Multipliable (f b)
h₂ : ∀ (c : γ), Multipliable fun b => f b c
⊢ ∏' (p : γ × β), uncurry f p.swap = ∏' (c : γ × β), uncurry f ((Equiv.prodComm γ β) c)
state_after: no goals
tactic: rfl
Theorem: Localization.liftOn_mk'
File: Mathlib/GroupTheory/MonoidLocalization/Basic.lean

Proof steps:
state_before: M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type u_3
inst✝ : CommMonoid P
p : Sort u
f : M → ↥S → p
H : ∀ {a c : M} {b d : ↥S}, (r S) (a, b) (c, d) → f a b = f c d
a : M
b : ↥S
⊢ ((monoidOf S).mk' a b).liftOn f H = f a b
state_after: no goals
tactic: rw [← mk_eq_monoidOf_mk', liftOn_mk]
Theorem: CategoryTheory.ShortComplex.LeftHomologyData.ofZeros_H
File: Mathlib/Algebra/Homology/ShortComplex/LeftHomology.lean

Proof steps:
state_before: C : Type u_1
inst✝¹ : Category.{?u.30241, u_1} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
h : S.LeftHomologyData
A : C
hf : S.f = 0
hg : S.g = 0
⊢ 𝟙 S.X₂ ≫ S.g = 0
state_after: no goals
tactic: rw [id_comp, hg]
state_before: C : Type u_1
inst✝¹ : Category.{?u.30241, u_1} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
h : S.LeftHomologyData
A : C
hf : S.f = 0
hg : S.g = 0
⊢ (KernelFork.IsLimit.ofId S.g hg).lift (KernelFork.ofι S.f ⋯) ≫ 𝟙 S.X₂ = 0
state_after: C : Type u_1
inst✝¹ : Category.{?u.30241, u_1} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
h : S.LeftHomologyData
A : C
hf : S.f = 0
hg : S.g = 0
⊢ S.f ≫ 𝟙 S.X₂ = 0
tactic: change S.f ≫ 𝟙 _ = 0
state_before: C : Type u_1
inst✝¹ : Category.{?u.30241, u_1} C
inst✝ : HasZeroMorphisms C
S S₁ S₂ S₃ : ShortComplex C
h : S.LeftHomologyData
A : C
hf : S.f = 0
hg : S.g = 0
⊢ S.f ≫ 𝟙 S.X₂ = 0
state_after: no goals
tactic: simp only [hf, zero_comp]
Theorem: MeasureTheory.compl_cylinder
File: Mathlib/MeasureTheory/Constructions/Cylinders.lean

Proof steps:
state_before: ι : Type u_1
α : ι → Type u_2
s : Finset ι
S : Set ((i : { x // x ∈ s }) → α ↑i)
⊢ (cylinder s S)ᶜ = cylinder s Sᶜ
state_after: case h
ι : Type u_1
α : ι → Type u_2
s : Finset ι
S : Set ((i : { x // x ∈ s }) → α ↑i)
f : (i : ι) → α i
⊢ f ∈ (cylinder s S)ᶜ ↔ f ∈ cylinder s Sᶜ
tactic: ext1 f
state_before: case h
ι : Type u_1
α : ι → Type u_2
s : Finset ι
S : Set ((i : { x // x ∈ s }) → α ↑i)
f : (i : ι) → α i
⊢ f ∈ (cylinder s S)ᶜ ↔ f ∈ cylinder s Sᶜ
state_after: no goals
tactic: simp only [mem_compl_iff, mem_cylinder]
Theorem: CategoryTheory.NatIso.naturality_1'
File: Mathlib/CategoryTheory/NatIso.lean

Proof steps:
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
F G : C ⥤ D
X Y : C
α : F ⟶ G
f : X ⟶ Y
x✝ : IsIso (α.app X)
⊢ inv (α.app X) ≫ F.map f ≫ α.app Y = G.map f
state_after: no goals
tactic: simp
Theorem: toIcoDiv_apply_left
File: Mathlib/Algebra/Order/ToIntervalMod.lean

Proof steps:
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b c : α
n : ℤ
a : α
⊢ a - 0 • p ∈ Set.Ico a (a + p)
state_after: no goals
tactic: simp [hp]
Theorem: Matrix.Commute.mul_zpow
File: Mathlib/LinearAlgebra/Matrix/ZPow.lean

Proof steps:
state_before: n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A B : M
h : Commute A B
n : ℕ
⊢ (A * B) ^ ↑n = A ^ ↑n * B ^ ↑n
state_after: no goals
tactic: simp [h.mul_pow n]
state_before: n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A B : M
h : Commute A B
n : ℕ
⊢ (A * B) ^ -[n+1] = A ^ -[n+1] * B ^ -[n+1]
state_after: no goals
tactic: rw [zpow_negSucc, zpow_negSucc, zpow_negSucc, ← mul_inv_rev,
      h.mul_pow n.succ, (h.pow_pow _ _).eq]
Theorem: Equiv.Perm.Disjoint.mul_left
File: Mathlib/GroupTheory/Perm/Support.lean

Proof steps:
state_before: α : Type u_1
f g h : Perm α
H1 : f.Disjoint h
H2 : g.Disjoint h
x : α
⊢ (f * g) x = x ∨ h x = x
state_after: no goals
tactic: cases H1 x <;> cases H2 x <;> simp [*]
Theorem: ProbabilityTheory.Kernel.density_nonneg
File: Mathlib/Probability/Kernel/Disintegration/Density.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : Kernel α (γ × β)
ν : Kernel α γ
hκν : κ.fst ≤ ν
a : α
x : γ
s : Set β
⊢ 0 ≤ κ.density ν a x s
state_after: case refine_1
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : Kernel α (γ × β)
ν : Kernel α γ
hκν : κ.fst ≤ ν
a : α
x : γ
s : Set β
⊢ ∃ᶠ (x_1 : ℕ) in atTop, 0 ≤ κ.densityProcess ν x_1 a x s

case refine_2
α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
inst✝ : CountablyGenerated γ
κ : Kernel α (γ × β)
ν : Kernel α γ
hκν : κ.fst ≤ ν
a : α
x : γ
s : Set β
⊢ IsBoundedUnder (fun x x_1 => x ≤ x_1) atTop fun n => κ.densityProcess ν n a x s
tactic: refine le_limsup_of_frequently_le ?_ ?_
Theorem: List.range'_succ
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

Proof steps:
state_before: s n step : Nat
⊢ range' s (n + 1) step = s :: range' (s + step) n step
state_after: no goals
tactic: simp [range', Nat.add_succ, Nat.mul_succ]
Theorem: Matroid.eq_freeOn_iff
File: Mathlib/Data/Matroid/Constructions.lean

Proof steps:
state_before: α : Type u_1
M : Matroid α
E B I X R J : Set α
⊢ M = freeOn E ↔ M.E = E ∧ M.Indep E
state_after: case refine_1
α : Type u_1
M : Matroid α
E B I X R J : Set α
⊢ M = freeOn E → M.E = E ∧ M.Indep E

case refine_2
α : Type u_1
M : Matroid α
E B I X R J : Set α
h : M.E = E ∧ M.Indep E
⊢ M = freeOn E
tactic: refine ⟨?_, fun h ↦ ?_⟩
state_before: case refine_2
α : Type u_1
M : Matroid α
E B I X R J : Set α
h : M.E = E ∧ M.Indep E
⊢ M = freeOn E
state_after: case refine_2
α : Type u_1
M : Matroid α
E B I X R J : Set α
h : M.E = E ∧ M.Indep E
⊢ ∀ I ⊆ E, M.Indep I ↔ I ⊆ E
tactic: simp only [eq_iff_indep_iff_indep_forall, freeOn_ground, freeOn_indep_iff, h.1, true_and]
state_before: case refine_2
α : Type u_1
M : Matroid α
E B I X R J : Set α
h : M.E = E ∧ M.Indep E
⊢ ∀ I ⊆ E, M.Indep I ↔ I ⊆ E
state_after: no goals
tactic: exact fun I hIX ↦ iff_of_true (h.2.subset hIX) hIX
Theorem: List.mem_iterate
File: Mathlib/Data/List/Iterate.lean

Proof steps:
state_before: α : Type u_1
f : α → α
a : α
n : ℕ
b : α
⊢ b ∈ iterate f a n ↔ ∃ m < n, b = f^[m] a
state_after: no goals
tactic: simp [List.mem_iff_get, Fin.exists_iff, eq_comm (b := b)]
Theorem: LinearMap.det_eq_one_of_subsingleton
File: Mathlib/LinearAlgebra/Determinant.lean

Proof steps:
state_before: R : Type u_1
inst✝¹⁰ : CommRing R
M : Type u_2
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
M' : Type u_3
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
ι : Type u_4
inst✝⁵ : DecidableEq ι
inst✝⁴ : Fintype ι
e : Basis ι R M
A : Type u_5
inst✝³ : CommRing A
inst✝² : Module A M
κ : Type u_6
inst✝¹ : Fintype κ
inst✝ : Subsingleton M
f : M →ₗ[R] M
⊢ LinearMap.det f = 1
state_after: R : Type u_1
inst✝¹⁰ : CommRing R
M : Type u_2
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
M' : Type u_3
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
ι : Type u_4
inst✝⁵ : DecidableEq ι
inst✝⁴ : Fintype ι
e : Basis ι R M
A : Type u_5
inst✝³ : CommRing A
inst✝² : Module A M
κ : Type u_6
inst✝¹ : Fintype κ
inst✝ : Subsingleton M
f : M →ₗ[R] M
b : Basis (Fin 0) R M
⊢ LinearMap.det f = 1
tactic: have b : Basis (Fin 0) R M := Basis.empty M
state_before: R : Type u_1
inst✝¹⁰ : CommRing R
M : Type u_2
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
M' : Type u_3
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
ι : Type u_4
inst✝⁵ : DecidableEq ι
inst✝⁴ : Fintype ι
e : Basis ι R M
A : Type u_5
inst✝³ : CommRing A
inst✝² : Module A M
κ : Type u_6
inst✝¹ : Fintype κ
inst✝ : Subsingleton M
f : M →ₗ[R] M
b : Basis (Fin 0) R M
⊢ LinearMap.det f = 1
state_after: R : Type u_1
inst✝¹⁰ : CommRing R
M : Type u_2
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
M' : Type u_3
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
ι : Type u_4
inst✝⁵ : DecidableEq ι
inst✝⁴ : Fintype ι
e : Basis ι R M
A : Type u_5
inst✝³ : CommRing A
inst✝² : Module A M
κ : Type u_6
inst✝¹ : Fintype κ
inst✝ : Subsingleton M
f : M →ₗ[R] M
b : Basis (Fin 0) R M
⊢ ((toMatrix b b) f).det = 1
tactic: rw [← f.det_toMatrix b]
state_before: R : Type u_1
inst✝¹⁰ : CommRing R
M : Type u_2
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
M' : Type u_3
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
ι : Type u_4
inst✝⁵ : DecidableEq ι
inst✝⁴ : Fintype ι
e : Basis ι R M
A : Type u_5
inst✝³ : CommRing A
inst✝² : Module A M
κ : Type u_6
inst✝¹ : Fintype κ
inst✝ : Subsingleton M
f : M →ₗ[R] M
b : Basis (Fin 0) R M
⊢ ((toMatrix b b) f).det = 1
state_after: no goals
tactic: exact Matrix.det_isEmpty
Theorem: contMDiff_finprod_cond
File: Mathlib/Geometry/Manifold/Algebra/Monoid.lean

Proof steps:
state_before: ι : Type u_1
𝕜 : Type u_2
inst✝¹² : NontriviallyNormedField 𝕜
H : Type u_3
inst✝¹¹ : TopologicalSpace H
E : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
G : Type u_5
inst✝⁸ : CommMonoid G
inst✝⁷ : TopologicalSpace G
inst✝⁶ : ChartedSpace H G
inst✝⁵ : SmoothMul I G
E' : Type u_6
inst✝⁴ : NormedAddCommGroup E'
inst✝³ : NormedSpace 𝕜 E'
H' : Type u_7
inst✝² : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_8
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H' M
s : Set M
x x₀ : M
t : Finset ι
f : ι → M → G
n : ℕ∞
p : ι → Prop
hc : ∀ (i : ι), p i → ContMDiff I' I n (f i)
hf : LocallyFinite fun i => mulSupport (f i)
⊢ ContMDiff I' I n fun x => ∏ᶠ (i : ι) (_ : p i), f i x
state_after: ι : Type u_1
𝕜 : Type u_2
inst✝¹² : NontriviallyNormedField 𝕜
H : Type u_3
inst✝¹¹ : TopologicalSpace H
E : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
G : Type u_5
inst✝⁸ : CommMonoid G
inst✝⁷ : TopologicalSpace G
inst✝⁶ : ChartedSpace H G
inst✝⁵ : SmoothMul I G
E' : Type u_6
inst✝⁴ : NormedAddCommGroup E'
inst✝³ : NormedSpace 𝕜 E'
H' : Type u_7
inst✝² : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_8
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H' M
s : Set M
x x₀ : M
t : Finset ι
f : ι → M → G
n : ℕ∞
p : ι → Prop
hc : ∀ (i : ι), p i → ContMDiff I' I n (f i)
hf : LocallyFinite fun i => mulSupport (f i)
⊢ ContMDiff I' I n fun x => ∏ᶠ (j : Subtype p), f (↑j) x
tactic: simp only [← finprod_subtype_eq_finprod_cond]
state_before: ι : Type u_1
𝕜 : Type u_2
inst✝¹² : NontriviallyNormedField 𝕜
H : Type u_3
inst✝¹¹ : TopologicalSpace H
E : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
G : Type u_5
inst✝⁸ : CommMonoid G
inst✝⁷ : TopologicalSpace G
inst✝⁶ : ChartedSpace H G
inst✝⁵ : SmoothMul I G
E' : Type u_6
inst✝⁴ : NormedAddCommGroup E'
inst✝³ : NormedSpace 𝕜 E'
H' : Type u_7
inst✝² : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_8
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H' M
s : Set M
x x₀ : M
t : Finset ι
f : ι → M → G
n : ℕ∞
p : ι → Prop
hc : ∀ (i : ι), p i → ContMDiff I' I n (f i)
hf : LocallyFinite fun i => mulSupport (f i)
⊢ ContMDiff I' I n fun x => ∏ᶠ (j : Subtype p), f (↑j) x
state_after: no goals
tactic: exact contMDiff_finprod (fun i => hc i i.2) (hf.comp_injective Subtype.coe_injective)
Theorem: Polynomial.support_add
File: Mathlib/Algebra/Polynomial/Basic.lean

Proof steps:
state_before: R : Type u
a b : R
m n : ℕ
inst✝ : Semiring R
p q : R[X]
⊢ (p + q).support ⊆ p.support ∪ q.support
state_after: no goals
tactic: simpa [support] using Finsupp.support_add