ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: MeasureTheory.OuterMeasure.le_pi
File: Mathlib/MeasureTheory/Constructions/Pi.lean

Proof steps:
state_before: ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m✝ m : (i : ι) → OuterMeasure (α i)
n : OuterMeasure ((i : ι) → α i)
⊢ n ≤ OuterMeasure.pi m ↔ ∀ (s : (i : ι) → Set (α i)), (univ.pi s).Nonempty → n (univ.pi s) ≤ ∏ i : ι, (m i) (s i)
state_after: ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m✝ m : (i : ι) → OuterMeasure (α i)
n : OuterMeasure ((i : ι) → α i)
⊢ (∀ (s : Set ((i : ι) → α i)), s.Nonempty → n s ≤ piPremeasure m s) ↔
    ∀ (s : (i : ι) → Set (α i)), (univ.pi s).Nonempty → n (univ.pi s) ≤ ∏ i : ι, (m i) (s i)
tactic: rw [OuterMeasure.pi, le_boundedBy']
state_before: ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m✝ m : (i : ι) → OuterMeasure (α i)
n : OuterMeasure ((i : ι) → α i)
⊢ (∀ (s : Set ((i : ι) → α i)), s.Nonempty → n s ≤ piPremeasure m s) ↔
    ∀ (s : (i : ι) → Set (α i)), (univ.pi s).Nonempty → n (univ.pi s) ≤ ∏ i : ι, (m i) (s i)
state_after: case mp
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m✝ m : (i : ι) → OuterMeasure (α i)
n : OuterMeasure ((i : ι) → α i)
⊢ (∀ (s : Set ((i : ι) → α i)), s.Nonempty → n s ≤ piPremeasure m s) →
    ∀ (s : (i : ι) → Set (α i)), (univ.pi s).Nonempty → n (univ.pi s) ≤ ∏ i : ι, (m i) (s i)

case mpr
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m✝ m : (i : ι) → OuterMeasure (α i)
n : OuterMeasure ((i : ι) → α i)
⊢ (∀ (s : (i : ι) → Set (α i)), (univ.pi s).Nonempty → n (univ.pi s) ≤ ∏ i : ι, (m i) (s i)) →
    ∀ (s : Set ((i : ι) → α i)), s.Nonempty → n s ≤ piPremeasure m s
tactic: constructor
Theorem: ContinuousLinearEquiv.tsum_eq_iff
File: Mathlib/Topology/Algebra/InfiniteSum/Module.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
κ : Type u_6
R : Type u_7
R₂ : Type u_8
M : Type u_9
M₂ : Type u_10
inst✝¹¹ : Semiring R
inst✝¹⁰ : Semiring R₂
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : Module R₂ M₂
inst✝⁵ : TopologicalSpace M
inst✝⁴ : TopologicalSpace M₂
σ : R →+* R₂
σ' : R₂ →+* R
inst✝³ : RingHomInvPair σ σ'
inst✝² : RingHomInvPair σ' σ
inst✝¹ : T2Space M
inst✝ : T2Space M₂
f : ι → M
e : M ≃SL[σ] M₂
y : M₂
⊢ ∑' (z : ι), e (f z) = y ↔ ∑' (z : ι), f z = e.symm y
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
κ : Type u_6
R : Type u_7
R₂ : Type u_8
M : Type u_9
M₂ : Type u_10
inst✝¹¹ : Semiring R
inst✝¹⁰ : Semiring R₂
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : Module R₂ M₂
inst✝⁵ : TopologicalSpace M
inst✝⁴ : TopologicalSpace M₂
σ : R →+* R₂
σ' : R₂ →+* R
inst✝³ : RingHomInvPair σ σ'
inst✝² : RingHomInvPair σ' σ
inst✝¹ : T2Space M
inst✝ : T2Space M₂
f : ι → M
e : M ≃SL[σ] M₂
y : M₂
hf : Summable f
⊢ ∑' (z : ι), e (f z) = y ↔ ∑' (z : ι), f z = e.symm y

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
κ : Type u_6
R : Type u_7
R₂ : Type u_8
M : Type u_9
M₂ : Type u_10
inst✝¹¹ : Semiring R
inst✝¹⁰ : Semiring R₂
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
inst✝⁷ : AddCommMonoid M₂
inst✝⁶ : Module R₂ M₂
inst✝⁵ : TopologicalSpace M
inst✝⁴ : TopologicalSpace M₂
σ : R →+* R₂
σ' : R₂ →+* R
inst✝³ : RingHomInvPair σ σ'
inst✝² : RingHomInvPair σ' σ
inst✝¹ : T2Space M
inst✝ : T2Space M₂
f : ι → M
e : M ≃SL[σ] M₂
y : M₂
hf : ¬Summable f
⊢ ∑' (z : ι), e (f z) = y ↔ ∑' (z : ι), f z = e.symm y
tactic: by_cases hf : Summable f
Theorem: Algebra.Generators.σ_injective
File: Mathlib/RingTheory/Generators.lean

Proof steps:
state_before: R : Type u
S : Type v
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : Algebra R S
P : Generators R S
⊢ Function.Injective P.σ
state_after: R : Type u
S : Type v
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : Algebra R S
P : Generators R S
x y : S
e : P.σ x = P.σ y
⊢ x = y
tactic: intro x y e
state_before: R : Type u
S : Type v
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : Algebra R S
P : Generators R S
x y : S
e : P.σ x = P.σ y
⊢ x = y
state_after: no goals
tactic: rw [← P.aeval_val_σ x, ← P.aeval_val_σ y, e]
Theorem: List.dlookup_kunion_right
File: Mathlib/Data/List/Sigma.lean

Proof steps:
state_before: α : Type u
β : α → Type v
l l₁✝ l₂✝ : List (Sigma β)
inst✝ : DecidableEq α
a : α
l₁ l₂ : List (Sigma β)
h : a ∉ l₁.keys
⊢ dlookup a (l₁.kunion l₂) = dlookup a l₂
state_after: no goals
tactic: induction l₁ generalizing l₂ with
  | nil => simp
  | cons _ _ ih => simp_all [not_or]
Theorem: String.Iterator.ValidFor.mk'
File: .lake/packages/batteries/Batteries/Data/String/Lemmas.lean

Proof steps:
state_before: l r : List Char
⊢ ValidFor l r { s := { data := l.reverse ++ r }, i := { byteIdx := utf8Len l.reverse } }
state_after: no goals
tactic: simpa [List.reverseAux_eq] using mk
Theorem: isStronglyAtomic_dual_iff_is_stronglyCoatomic
File: Mathlib/Order/Atoms.lean

Proof steps:
state_before: ι : Sort u_1
α✝ : Type u_2
β : Type u_3
inst✝¹ : PartialOrder α✝
α : Type u_4
a b : α
inst✝ : Preorder α
⊢ IsStronglyAtomic αᵒᵈ ↔ IsStronglyCoatomic α
state_after: no goals
tactic: simpa [isStronglyAtomic_iff, OrderDual.exists, OrderDual.forall,
    OrderDual.toDual_le_toDual, and_comm, isStronglyCoatomic_iff] using forall_comm
Theorem: Function.Antiperiodic.int_odd_mul_antiperiodic
File: Mathlib/Algebra/Periodic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f g : α → β
c c₁ c₂ x✝ : α
inst✝¹ : Ring α
inst✝ : InvolutiveNeg β
h : Antiperiodic f c
n : ℤ
x : α
⊢ f (x + (↑n * (2 * c) + c)) = -f x
state_after: no goals
tactic: rw [← add_assoc, h, h.int_even_mul_periodic]
Theorem: ContinuousMultilinearMap.curry_uncurryRight
File: Mathlib/Analysis/NormedSpace/Multilinear/Curry.lean

Proof steps:
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
n : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin n.succ → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin n.succ) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin n.succ) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : ContinuousMultilinearMap 𝕜 (fun i => Ei i.castSucc) (Ei (last n) →L[𝕜] G)
⊢ f.uncurryRight.curryRight = f
state_after: case H.h
𝕜 : Type u
ι : Type v
ι' : Type v'
n : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin n.succ → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin n.succ) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin n.succ) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : ContinuousMultilinearMap 𝕜 (fun i => Ei i.castSucc) (Ei (last n) →L[𝕜] G)
m : (i : Fin n) → Ei i.castSucc
x : Ei (last n)
⊢ (f.uncurryRight.curryRight m) x = (f m) x
tactic: ext m x
state_before: case H.h
𝕜 : Type u
ι : Type v
ι' : Type v'
n : ℕ
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
Ei : Fin n.succ → Type wEi
G : Type wG
G' : Type wG'
inst✝¹⁴ : Fintype ι
inst✝¹³ : Fintype ι'
inst✝¹² : NontriviallyNormedField 𝕜
inst✝¹¹ : (i : ι) → NormedAddCommGroup (E i)
inst✝¹⁰ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁹ : (i : ι) → NormedAddCommGroup (E₁ i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁷ : (i : ι') → NormedAddCommGroup (E' i)
inst✝⁶ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁵ : (i : Fin n.succ) → NormedAddCommGroup (Ei i)
inst✝⁴ : (i : Fin n.succ) → NormedSpace 𝕜 (Ei i)
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : ContinuousMultilinearMap 𝕜 (fun i => Ei i.castSucc) (Ei (last n) →L[𝕜] G)
m : (i : Fin n) → Ei i.castSucc
x : Ei (last n)
⊢ (f.uncurryRight.curryRight m) x = (f m) x
state_after: no goals
tactic: rw [ContinuousMultilinearMap.curryRight_apply, ContinuousMultilinearMap.uncurryRight_apply,
    snoc_last, init_snoc]
Theorem: MvQPF.wEquiv_map
File: Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean

Proof steps:
state_before: n : ℕ
F : TypeVec.{u} (n + 1) → Type u
q : MvQPF F
α β : TypeVec.{u} n
g : α ⟹ β
x y : (P F).W α
⊢ WEquiv x y → WEquiv (g <$$> x) (g <$$> y)
state_after: n : ℕ
F : TypeVec.{u} (n + 1) → Type u
q : MvQPF F
α β : TypeVec.{u} n
g : α ⟹ β
x y : (P F).W α
h : WEquiv x y
⊢ WEquiv (g <$$> x) (g <$$> y)
tactic: intro h
Theorem: CategoryTheory.GradedObject.comapEquiv_counitIso
File: Mathlib/CategoryTheory/GradedObject.lean

Proof steps:
state_before: C : Type u
inst✝ : Category.{v, u} C
β γ : Type w
e : β ≃ γ
⊢ ⇑e ∘ ⇑e.symm = fun i => i
state_after: case h
C : Type u
inst✝ : Category.{v, u} C
β γ : Type w
e : β ≃ γ
x✝ : γ
⊢ (⇑e ∘ ⇑e.symm) x✝ = x✝
tactic: ext
state_before: case h
C : Type u
inst✝ : Category.{v, u} C
β γ : Type w
e : β ≃ γ
x✝ : γ
⊢ (⇑e ∘ ⇑e.symm) x✝ = x✝
state_after: no goals
tactic: simp
state_before: C : Type u
inst✝ : Category.{v, u} C
β γ : Type w
e : β ≃ γ
⊢ (fun i => i) = ⇑e.symm ∘ ⇑e
state_after: case h
C : Type u
inst✝ : Category.{v, u} C
β γ : Type w
e : β ≃ γ
x✝ : β
⊢ x✝ = (⇑e.symm ∘ ⇑e) x✝
tactic: ext
state_before: case h
C : Type u
inst✝ : Category.{v, u} C
β γ : Type w
e : β ≃ γ
x✝ : β
⊢ x✝ = (⇑e.symm ∘ ⇑e) x✝
state_after: no goals
tactic: simp
Theorem: Basis.index_nonempty
File: Mathlib/LinearAlgebra/Basis.lean

Proof steps:
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : AddCommMonoid M'
inst✝¹ : Module R M'
b✝ b₁ : Basis ι R M
i : ι
c : R
x : M
b : Basis ι R M
inst✝ : Nontrivial M
⊢ Nonempty ι
state_after: case intro.intro
ι : Type u_1
ι' : Type u_2
R : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : AddCommMonoid M'
inst✝¹ : Module R M'
b✝ b₁ : Basis ι R M
i : ι
c : R
x✝ : M
b : Basis ι R M
inst✝ : Nontrivial M
x y : M
ne : x ≠ y
⊢ Nonempty ι
tactic: obtain ⟨x, y, ne⟩ : ∃ x y : M, x ≠ y := Nontrivial.exists_pair_ne
state_before: case intro.intro
ι : Type u_1
ι' : Type u_2
R : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : AddCommMonoid M'
inst✝¹ : Module R M'
b✝ b₁ : Basis ι R M
i : ι
c : R
x✝ : M
b : Basis ι R M
inst✝ : Nontrivial M
x y : M
ne : x ≠ y
⊢ Nonempty ι
state_after: case intro.intro.intro
ι : Type u_1
ι' : Type u_2
R : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : AddCommMonoid M'
inst✝¹ : Module R M'
b✝ b₁ : Basis ι R M
i✝ : ι
c : R
x✝ : M
b : Basis ι R M
inst✝ : Nontrivial M
x y : M
ne : x ≠ y
i : ι
h✝ : ¬(b.repr x) i = (b.repr y) i
⊢ Nonempty ι
tactic: obtain ⟨i, _⟩ := not_forall.mp (mt b.ext_elem_iff.2 ne)
state_before: case intro.intro.intro
ι : Type u_1
ι' : Type u_2
R : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : AddCommMonoid M'
inst✝¹ : Module R M'
b✝ b₁ : Basis ι R M
i✝ : ι
c : R
x✝ : M
b : Basis ι R M
inst✝ : Nontrivial M
x y : M
ne : x ≠ y
i : ι
h✝ : ¬(b.repr x) i = (b.repr y) i
⊢ Nonempty ι
state_after: no goals
tactic: exact ⟨i⟩
Theorem: SimpleGraph.TripartiteFromTriangles.Graph.in₀₁_iff'
File: Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
𝕜 : Type u_4
inst✝ : LinearOrderedField 𝕜
t : Finset (α × β × γ)
a a' : α
b b' : β
c c' : γ
x : α × β × γ
ε : 𝕜
⊢ (graph t).Adj (in₀ a) (in₁ b) → ∃ x ∈ t, x.1 = a ∧ x.2.1 = b
state_after: case in₀₁
α : Type u_1
β : Type u_2
γ : Type u_3
𝕜 : Type u_4
inst✝ : LinearOrderedField 𝕜
t : Finset (α × β × γ)
a a' : α
b b' : β
c c' : γ
x : α × β × γ
ε : 𝕜
c✝ : γ
a✝ : (a, b, c✝) ∈ t
⊢ ∃ x ∈ t, x.1 = a ∧ x.2.1 = b
tactic: rintro ⟨⟩
state_before: case in₀₁
α : Type u_1
β : Type u_2
γ : Type u_3
𝕜 : Type u_4
inst✝ : LinearOrderedField 𝕜
t : Finset (α × β × γ)
a a' : α
b b' : β
c c' : γ
x : α × β × γ
ε : 𝕜
c✝ : γ
a✝ : (a, b, c✝) ∈ t
⊢ ∃ x ∈ t, x.1 = a ∧ x.2.1 = b
state_after: no goals
tactic: exact ⟨_, ‹_›, by simp⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
𝕜 : Type u_4
inst✝ : LinearOrderedField 𝕜
t : Finset (α × β × γ)
a a' : α
b b' : β
c c' : γ
x : α × β × γ
ε : 𝕜
⊢ (∃ x ∈ t, x.1 = a ∧ x.2.1 = b) → (graph t).Adj (in₀ a) (in₁ b)
state_after: case intro.mk.mk.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
𝕜 : Type u_4
inst✝ : LinearOrderedField 𝕜
t : Finset (α × β × γ)
a' : α
b' : β
c✝ c' : γ
x : α × β × γ
ε : 𝕜
a : α
b : β
c : γ
h : (a, b, c) ∈ t
⊢ (graph t).Adj (in₀ (a, b, c).1) (in₁ (a, b, c).2.1)
tactic: rintro ⟨⟨a, b, c⟩, h, rfl, rfl⟩
state_before: case intro.mk.mk.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
𝕜 : Type u_4
inst✝ : LinearOrderedField 𝕜
t : Finset (α × β × γ)
a' : α
b' : β
c✝ c' : γ
x : α × β × γ
ε : 𝕜
a : α
b : β
c : γ
h : (a, b, c) ∈ t
⊢ (graph t).Adj (in₀ (a, b, c).1) (in₁ (a, b, c).2.1)
state_after: case intro.mk.mk.intro.intro.a
α : Type u_1
β : Type u_2
γ : Type u_3
𝕜 : Type u_4
inst✝ : LinearOrderedField 𝕜
t : Finset (α × β × γ)
a' : α
b' : β
c✝ c' : γ
x : α × β × γ
ε : 𝕜
a : α
b : β
c : γ
h : (a, b, c) ∈ t
⊢ ((a, b, c).1, (a, b, c).2.1, ?intro.mk.mk.intro.intro.c) ∈ t

case intro.mk.mk.intro.intro.c
α : Type u_1
β : Type u_2
γ : Type u_3
𝕜 : Type u_4
inst✝ : LinearOrderedField 𝕜
t : Finset (α × β × γ)
a' : α
b' : β
c✝ c' : γ
x : α × β × γ
ε : 𝕜
a : α
b : β
c : γ
h : (a, b, c) ∈ t
⊢ γ
tactic: constructor
state_before: case intro.mk.mk.intro.intro.a
α : Type u_1
β : Type u_2
γ : Type u_3
𝕜 : Type u_4
inst✝ : LinearOrderedField 𝕜
t : Finset (α × β × γ)
a' : α
b' : β
c✝ c' : γ
x : α × β × γ
ε : 𝕜
a : α
b : β
c : γ
h : (a, b, c) ∈ t
⊢ ((a, b, c).1, (a, b, c).2.1, ?intro.mk.mk.intro.intro.c) ∈ t

case intro.mk.mk.intro.intro.c
α : Type u_1
β : Type u_2
γ : Type u_3
𝕜 : Type u_4
inst✝ : LinearOrderedField 𝕜
t : Finset (α × β × γ)
a' : α
b' : β
c✝ c' : γ
x : α × β × γ
ε : 𝕜
a : α
b : β
c : γ
h : (a, b, c) ∈ t
⊢ γ
state_after: no goals
tactic: assumption
Theorem: Fin.le_zero_iff'
File: Mathlib/Data/Fin/Basic.lean

Proof steps:
state_before: n✝ m n : ℕ
inst✝ : NeZero n
k : Fin n
h : k ≤ 0
⊢ ↑k = ↑0
state_after: n✝ m n : ℕ
inst✝ : NeZero n
k : Fin n
h : k ≤ 0
⊢ 0 = ↑0
tactic: rw [Nat.eq_zero_of_le_zero h]
state_before: n✝ m n : ℕ
inst✝ : NeZero n
k : Fin n
h : k ≤ 0
⊢ 0 = ↑0
state_after: no goals
tactic: rfl
state_before: n✝ m n : ℕ
inst✝ : NeZero n
k : Fin n
⊢ k = 0 → k ≤ 0
state_after: n✝ m n : ℕ
inst✝ : NeZero n
⊢ 0 ≤ 0
tactic: rintro rfl
state_before: n✝ m n : ℕ
inst✝ : NeZero n
⊢ 0 ≤ 0
state_after: no goals
tactic: exact Nat.le_refl _
Theorem: SemiNormedGrp.explicitCokernelDesc_comp_eq_zero
File: Mathlib/Analysis/Normed/Group/SemiNormedGrp/Kernels.lean

Proof steps:
state_before: X Y Z W : SemiNormedGrp
f : X ⟶ Y
g : Y ⟶ Z
h : Z ⟶ W
cond : f ≫ g = 0
cond2 : g ≫ h = 0
⊢ explicitCokernelDesc cond ≫ h = 0
state_after: X Y Z W : SemiNormedGrp
f : X ⟶ Y
g : Y ⟶ Z
h : Z ⟶ W
cond : f ≫ g = 0
cond2 : g ≫ h = 0
⊢ g ≫ h = explicitCokernelπ f ≫ 0
tactic: rw [← cancel_epi (explicitCokernelπ f), ← Category.assoc, explicitCokernelπ_desc]
state_before: X Y Z W : SemiNormedGrp
f : X ⟶ Y
g : Y ⟶ Z
h : Z ⟶ W
cond : f ≫ g = 0
cond2 : g ≫ h = 0
⊢ g ≫ h = explicitCokernelπ f ≫ 0
state_after: no goals
tactic: simp [cond2]
Theorem: Matroid.Base.inter_basis_iff_compl_inter_basis_dual
File: Mathlib/Data/Matroid/Dual.lean

Proof steps:
state_before: α : Type u_1
M : Matroid α
I B X : Set α
hB : M.Base B
hX : autoParam (X ⊆ M.E) _auto✝
⊢ M.Basis (B ∩ X) X ↔ M✶.Basis (M.E \ B ∩ (M.E \ X)) (M.E \ X)
state_after: α : Type u_1
M : Matroid α
I B X : Set α
hB : M.Base B
hX : autoParam (X ⊆ M.E) _auto✝
h : M✶.Basis (M.E \ B ∩ (M.E \ X)) (M.E \ X)
⊢ M.Basis (B ∩ X) X
tactic: refine ⟨hB.compl_inter_basis_of_inter_basis, fun h ↦ ?_⟩
state_before: α : Type u_1
M : Matroid α
I B X : Set α
hB : M.Base B
hX : autoParam (X ⊆ M.E) _auto✝
h : M✶.Basis (M.E \ B ∩ (M.E \ X)) (M.E \ X)
⊢ M.Basis (B ∩ X) X
state_after: no goals
tactic: simpa [inter_eq_self_of_subset_right hX, inter_eq_self_of_subset_right hB.subset_ground] using
    hB.compl_base_dual.compl_inter_basis_of_inter_basis h
Theorem: CategoryTheory.ComposableArrows.homMk₁_app
File: Mathlib/CategoryTheory/ComposableArrows.lean

Proof steps:
state_before: C : Type u_1
inst✝ : Category.{?u.67529, u_1} C
n m : ℕ
F✝ G✝ : ComposableArrows C n
F G : ComposableArrows C 1
left : F.obj' 0 ⋯ ⟶ G.obj' 0 ⋯
right : F.obj' 1 ⋯ ⟶ G.obj' 1 ⋯
w : autoParam (F.map' 0 1 ⋯ ⋯ ≫ right = left ≫ G.map' 0 1 ⋯ ⋯) _auto✝
⊢ ∀ (i : ℕ) (hi : i < 1),
    F.map' i (i + 1) ⋯ hi ≫
        (fun i =>
            match i with
            | ⟨0, isLt⟩ => left
            | ⟨1, isLt⟩ => right)
          ⟨i + 1, ⋯⟩ =
      (fun i =>
            match i with
            | ⟨0, isLt⟩ => left
            | ⟨1, isLt⟩ => right)
          ⟨i, ⋯⟩ ≫
        G.map' i (i + 1) ⋯ hi
state_after: C : Type u_1
inst✝ : Category.{?u.67529, u_1} C
n m : ℕ
F✝ G✝ : ComposableArrows C n
F G : ComposableArrows C 1
left : F.obj' 0 ⋯ ⟶ G.obj' 0 ⋯
right : F.obj' 1 ⋯ ⟶ G.obj' 1 ⋯
w : autoParam (F.map' 0 1 ⋯ ⋯ ≫ right = left ≫ G.map' 0 1 ⋯ ⋯) _auto✝
i : ℕ
hi : i < 1
⊢ F.map' i (i + 1) ⋯ hi ≫
      (fun i =>
          match i with
          | ⟨0, isLt⟩ => left
          | ⟨1, isLt⟩ => right)
        ⟨i + 1, ⋯⟩ =
    (fun i =>
          match i with
          | ⟨0, isLt⟩ => left
          | ⟨1, isLt⟩ => right)
        ⟨i, ⋯⟩ ≫
      G.map' i (i + 1) ⋯ hi
tactic: intro i hi
state_before: C : Type u_1
inst✝ : Category.{?u.67529, u_1} C
n m : ℕ
F✝ G✝ : ComposableArrows C n
F G : ComposableArrows C 1
left : F.obj' 0 ⋯ ⟶ G.obj' 0 ⋯
right : F.obj' 1 ⋯ ⟶ G.obj' 1 ⋯
w : autoParam (F.map' 0 1 ⋯ ⋯ ≫ right = left ≫ G.map' 0 1 ⋯ ⋯) _auto✝
i : ℕ
hi : i < 1
⊢ F.map' i (i + 1) ⋯ hi ≫
      (fun i =>
          match i with
          | ⟨0, isLt⟩ => left
          | ⟨1, isLt⟩ => right)
        ⟨i + 1, ⋯⟩ =
    (fun i =>
          match i with
          | ⟨0, isLt⟩ => left
          | ⟨1, isLt⟩ => right)
        ⟨i, ⋯⟩ ≫
      G.map' i (i + 1) ⋯ hi
state_after: C : Type u_1
inst✝ : Category.{?u.67529, u_1} C
n m : ℕ
F✝ G✝ : ComposableArrows C n
F G : ComposableArrows C 1
left : F.obj' 0 ⋯ ⟶ G.obj' 0 ⋯
right : F.obj' 1 ⋯ ⟶ G.obj' 1 ⋯
w : autoParam (F.map' 0 1 ⋯ ⋯ ≫ right = left ≫ G.map' 0 1 ⋯ ⋯) _auto✝
hi : 0 < 1
⊢ F.map' 0 (0 + 1) ⋯ hi ≫
      (fun i =>
          match i with
          | ⟨0, isLt⟩ => left
          | ⟨1, isLt⟩ => right)
        ⟨0 + 1, ⋯⟩ =
    (fun i =>
          match i with
          | ⟨0, isLt⟩ => left
          | ⟨1, isLt⟩ => right)
        ⟨0, ⋯⟩ ≫
      G.map' 0 (0 + 1) ⋯ hi
tactic: obtain rfl : i = 0 := by simpa using hi
state_before: C : Type u_1
inst✝ : Category.{?u.67529, u_1} C
n m : ℕ
F✝ G✝ : ComposableArrows C n
F G : ComposableArrows C 1
left : F.obj' 0 ⋯ ⟶ G.obj' 0 ⋯
right : F.obj' 1 ⋯ ⟶ G.obj' 1 ⋯
w : autoParam (F.map' 0 1 ⋯ ⋯ ≫ right = left ≫ G.map' 0 1 ⋯ ⋯) _auto✝
hi : 0 < 1
⊢ F.map' 0 (0 + 1) ⋯ hi ≫
      (fun i =>
          match i with
          | ⟨0, isLt⟩ => left
          | ⟨1, isLt⟩ => right)
        ⟨0 + 1, ⋯⟩ =
    (fun i =>
          match i with
          | ⟨0, isLt⟩ => left
          | ⟨1, isLt⟩ => right)
        ⟨0, ⋯⟩ ≫
      G.map' 0 (0 + 1) ⋯ hi
state_after: no goals
tactic: exact w
Theorem: AlgebraicGeometry.SheafedSpace.ext
File: Mathlib/Geometry/RingedSpace/SheafedSpace.lean

Proof steps:
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y : SheafedSpace C
α β : X ⟶ Y
w : α.base = β.base
⊢ (Opens.map α.base).op = (Opens.map β.base).op
state_after: no goals
tactic: rw [w]
Theorem: rexp_neg_quadratic_isLittleO_rpow_atTop
File: Mathlib/Analysis/SpecialFunctions/Gaussian/PoissonSummation.lean

Proof steps:
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
a : ℝ
ha : a < 0
b s : ℝ
⊢ (fun x => rexp (a * x ^ 2 + b * x)) =o[atTop] fun x => x ^ s
state_after: E : Type u_1
inst✝ : NormedAddCommGroup E
a : ℝ
ha : a < 0
b s : ℝ
⊢ (fun x => rexp (a * x ^ 2 + b * x)) =o[atTop] fun x => rexp (-x)
tactic: suffices (fun x ↦ rexp (a * x ^ 2 + b * x)) =o[atTop] (fun x ↦ rexp (-x)) by
    refine this.trans ?_
    simpa only [neg_one_mul] using isLittleO_exp_neg_mul_rpow_atTop zero_lt_one s
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
a : ℝ
ha : a < 0
b s : ℝ
⊢ (fun x => rexp (a * x ^ 2 + b * x)) =o[atTop] fun x => rexp (-x)
state_after: E : Type u_1
inst✝ : NormedAddCommGroup E
a : ℝ
ha : a < 0
b s : ℝ
⊢ Tendsto (fun x => -x - (a * x ^ 2 + b * x)) atTop atTop
tactic: rw [isLittleO_exp_comp_exp_comp]
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
a : ℝ
ha : a < 0
b s : ℝ
⊢ Tendsto (fun x => -x - (a * x ^ 2 + b * x)) atTop atTop
state_after: E : Type u_1
inst✝ : NormedAddCommGroup E
a : ℝ
ha : a < 0
b s : ℝ
this : (fun x => -x - (a * x ^ 2 + b * x)) = fun x => x * (-a * x - (b + 1))
⊢ Tendsto (fun x => -x - (a * x ^ 2 + b * x)) atTop atTop
tactic: have : (fun x ↦ -x - (a * x ^ 2 + b * x)) = fun x ↦ x * (-a * x - (b + 1)) := by
    ext1 x; ring_nf
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
a : ℝ
ha : a < 0
b s : ℝ
this : (fun x => -x - (a * x ^ 2 + b * x)) = fun x => x * (-a * x - (b + 1))
⊢ Tendsto (fun x => -x - (a * x ^ 2 + b * x)) atTop atTop
state_after: E : Type u_1
inst✝ : NormedAddCommGroup E
a : ℝ
ha : a < 0
b s : ℝ
this : (fun x => -x - (a * x ^ 2 + b * x)) = fun x => x * (-a * x - (b + 1))
⊢ Tendsto (fun x => x * (-a * x - (b + 1))) atTop atTop
tactic: rw [this]
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
a : ℝ
ha : a < 0
b s : ℝ
this : (fun x => -x - (a * x ^ 2 + b * x)) = fun x => x * (-a * x - (b + 1))
⊢ Tendsto (fun x => x * (-a * x - (b + 1))) atTop atTop
state_after: no goals
tactic: exact tendsto_id.atTop_mul_atTop <|
    Filter.tendsto_atTop_add_const_right _ _ <| tendsto_id.const_mul_atTop (neg_pos.mpr ha)
Theorem: Int.exists_unit_of_abs
File: Mathlib/Algebra/GCDMonoid/Nat.lean

Proof steps:
state_before: a : ℤ
⊢ ∃ u, ∃ (_ : IsUnit u), ↑a.natAbs = u * a
state_after: case inl
a : ℤ
h : a = ↑a.natAbs
⊢ ∃ u, ∃ (_ : IsUnit u), ↑a.natAbs = u * a

case inr
a : ℤ
h : a = -↑a.natAbs
⊢ ∃ u, ∃ (_ : IsUnit u), ↑a.natAbs = u * a
tactic: cases' natAbs_eq a with h h
Theorem: one_div_le_of_neg
File: Mathlib/Algebra/Order/Field/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
ha : a < 0
hb : b < 0
⊢ 1 / a ≤ b ↔ 1 / b ≤ a
state_after: no goals
tactic: simpa using inv_le_of_neg ha hb
Theorem: CategoryTheory.Limits.PreservesPullback.iso_hom_snd
File: Mathlib/CategoryTheory/Limits/Preserves/Shapes/Pullbacks.lean

Proof steps:
state_before: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
G : C ⥤ D
W X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
h : W ⟶ X
k : W ⟶ Y
comm : h ≫ f = k ≫ g
inst✝² : PreservesLimit (cospan f g) G
inst✝¹ : HasPullback f g
inst✝ : HasPullback (G.map f) (G.map g)
⊢ (iso G f g).hom ≫ pullback.snd (G.map f) (G.map g) = G.map (pullback.snd f g)
state_after: no goals
tactic: simp [PreservesPullback.iso]
Theorem: AlgebraicGeometry.quasiCompact_iff_spectral
File: Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean

Proof steps:
state_before: X Y : Scheme
f : X ⟶ Y
x✝ : QuasiCompact f
h : ∀ (U : Set ↑↑Y.toPresheafedSpace), IsOpen U → IsCompact U → IsCompact (⇑f.val.base ⁻¹' U)
⊢ Continuous ⇑f.val.base
state_after: no goals
tactic: fun_prop