ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: Matrix.mulVec_mulVec
File: Mathlib/Data/Matrix/Basic.lean

Proof steps:
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝² : NonUnitalSemiring α
inst✝¹ : Fintype n
inst✝ : Fintype o
v : o → α
M : Matrix m n α
N : Matrix n o α
⊢ M *ᵥ N *ᵥ v = (M * N) *ᵥ v
state_after: case h
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝² : NonUnitalSemiring α
inst✝¹ : Fintype n
inst✝ : Fintype o
v : o → α
M : Matrix m n α
N : Matrix n o α
x✝ : m
⊢ (M *ᵥ N *ᵥ v) x✝ = ((M * N) *ᵥ v) x✝
tactic: ext
state_before: case h
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝² : NonUnitalSemiring α
inst✝¹ : Fintype n
inst✝ : Fintype o
v : o → α
M : Matrix m n α
N : Matrix n o α
x✝ : m
⊢ (M *ᵥ N *ᵥ v) x✝ = ((M * N) *ᵥ v) x✝
state_after: case h
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝² : NonUnitalSemiring α
inst✝¹ : Fintype n
inst✝ : Fintype o
v : o → α
M : Matrix m n α
N : Matrix n o α
x✝ : m
⊢ ((M * N) *ᵥ v) x✝ = (M *ᵥ N *ᵥ v) x✝
tactic: symm
state_before: case h
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝² : NonUnitalSemiring α
inst✝¹ : Fintype n
inst✝ : Fintype o
v : o → α
M : Matrix m n α
N : Matrix n o α
x✝ : m
⊢ ((M * N) *ᵥ v) x✝ = (M *ᵥ N *ᵥ v) x✝
state_after: no goals
tactic: apply dotProduct_assoc
Theorem: GenContFract.contsAux_eq_contsAux_squashGCF_of_le
File: Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean

Proof steps:
state_before: K : Type u_1
n : ℕ
g : GenContFract K
s : Stream'.Seq (Pair K)
inst✝ : DivisionRing K
m : ℕ
⊢ ∀ (n_1 : ℕ),
    (∀ m < n_1, m ≤ n → g.contsAux m = (g.squashGCF n).contsAux m) →
      n_1 ≤ n → g.contsAux n_1 = (g.squashGCF n).contsAux n_1
state_after: K : Type u_1
n : ℕ
g : GenContFract K
s : Stream'.Seq (Pair K)
inst✝ : DivisionRing K
⊢ ∀ (n_1 : ℕ),
    (∀ m < n_1, m ≤ n → g.contsAux m = (g.squashGCF n).contsAux m) →
      n_1 ≤ n → g.contsAux n_1 = (g.squashGCF n).contsAux n_1
tactic: clear m
state_before: K : Type u_1
n : ℕ
g : GenContFract K
s : Stream'.Seq (Pair K)
inst✝ : DivisionRing K
⊢ ∀ (n_1 : ℕ),
    (∀ m < n_1, m ≤ n → g.contsAux m = (g.squashGCF n).contsAux m) →
      n_1 ≤ n → g.contsAux n_1 = (g.squashGCF n).contsAux n_1
state_after: K : Type u_1
n : ℕ
g : GenContFract K
s : Stream'.Seq (Pair K)
inst✝ : DivisionRing K
m : ℕ
IH : ∀ m_1 < m, m_1 ≤ n → g.contsAux m_1 = (g.squashGCF n).contsAux m_1
m_le_n : m ≤ n
⊢ g.contsAux m = (g.squashGCF n).contsAux m
tactic: intro m IH m_le_n
state_before: K : Type u_1
n : ℕ
g : GenContFract K
s : Stream'.Seq (Pair K)
inst✝ : DivisionRing K
m : ℕ
IH : ∀ m_1 < m, m_1 ≤ n → g.contsAux m_1 = (g.squashGCF n).contsAux m_1
m_le_n : m ≤ n
⊢ g.contsAux m = (g.squashGCF n).contsAux m
state_after: case zero
K : Type u_1
n : ℕ
g : GenContFract K
s : Stream'.Seq (Pair K)
inst✝ : DivisionRing K
IH : ∀ m < 0, m ≤ n → g.contsAux m = (g.squashGCF n).contsAux m
m_le_n : 0 ≤ n
⊢ g.contsAux 0 = (g.squashGCF n).contsAux 0

case succ
K : Type u_1
n : ℕ
g : GenContFract K
s : Stream'.Seq (Pair K)
inst✝ : DivisionRing K
m' : ℕ
IH : ∀ m < m' + 1, m ≤ n → g.contsAux m = (g.squashGCF n).contsAux m
m_le_n : m' + 1 ≤ n
⊢ g.contsAux (m' + 1) = (g.squashGCF n).contsAux (m' + 1)
tactic: cases' m with m'
Theorem: finsuppTensorFinsupp'_symm_single_eq_tmul_single_one
File: Mathlib/LinearAlgebra/DirectSum/Finsupp.lean

Proof steps:
state_before: R : Type u_1
S : Type u_2
M : Type u_3
N : Type u_4
ι : Type u_5
κ : Type u_6
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
inst✝⁵ : AddCommMonoid N
inst✝⁴ : Module R N
inst✝³ : Semiring S
inst✝² : Algebra R S
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
i : ι × κ
r : R
⊢ (finsuppTensorFinsupp' R ι κ).symm (Finsupp.single i r) = Finsupp.single i.1 r ⊗ₜ[R] Finsupp.single i.2 1
state_after: R : Type u_1
S : Type u_2
M : Type u_3
N : Type u_4
ι : Type u_5
κ : Type u_6
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
inst✝⁵ : AddCommMonoid N
inst✝⁴ : Module R N
inst✝³ : Semiring S
inst✝² : Algebra R S
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
i : ι × κ
r : R
⊢ (finsuppTensorFinsupp' R ι κ).symm (Finsupp.single i (r * 1)) = Finsupp.single i.1 r ⊗ₜ[R] Finsupp.single i.2 1
tactic: nth_rw 1 [← mul_one r]
state_before: R : Type u_1
S : Type u_2
M : Type u_3
N : Type u_4
ι : Type u_5
κ : Type u_6
inst✝⁸ : CommSemiring R
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
inst✝⁵ : AddCommMonoid N
inst✝⁴ : Module R N
inst✝³ : Semiring S
inst✝² : Algebra R S
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
i : ι × κ
r : R
⊢ (finsuppTensorFinsupp' R ι κ).symm (Finsupp.single i (r * 1)) = Finsupp.single i.1 r ⊗ₜ[R] Finsupp.single i.2 1
state_after: no goals
tactic: exact finsuppTensorFinsupp'_symm_single_mul R ι κ i _ _
Theorem: Set.Sized.card_le
File: Mathlib/Data/Finset/Slice.lean

Proof steps:
state_before: α : Type u_1
ι : Sort u_2
κ : ι → Sort u_3
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s : Finset α
r : ℕ
h𝒜 : Set.Sized r ↑𝒜
⊢ 𝒜.card ≤ (Fintype.card α).choose r
state_after: α : Type u_1
ι : Sort u_2
κ : ι → Sort u_3
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s : Finset α
r : ℕ
h𝒜 : Set.Sized r ↑𝒜
⊢ 𝒜.card ≤ (powersetCard r univ).card
tactic: rw [Fintype.card, ← card_powersetCard]
state_before: α : Type u_1
ι : Sort u_2
κ : ι → Sort u_3
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s : Finset α
r : ℕ
h𝒜 : Set.Sized r ↑𝒜
⊢ 𝒜.card ≤ (powersetCard r univ).card
state_after: no goals
tactic: exact card_le_card (subset_powersetCard_univ_iff.mpr h𝒜)
Theorem: Submodule.map_op_pow
File: Mathlib/Algebra/Algebra/Operations.lean

Proof steps:
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : Semiring A
inst✝ : Algebra R A
S T : Set A
M N P Q : Submodule R A
m n✝ : A
n : ℕ
⊢ map (↑(opLinearEquiv R)) (M ^ n) = map (↑(opLinearEquiv R)) M ^ n
state_after: no goals
tactic: rw [map_equiv_eq_comap_symm, map_equiv_eq_comap_symm, comap_unop_pow]
Theorem: CategoryTheory.Abelian.epi_of_mono_of_epi_of_mono'
File: Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean

Proof steps:
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Abelian C
R₁ R₂ : ComposableArrows C 2
φ : R₁ ⟶ R₂
hR₁ : R₁.Exact
hR₂ : R₂.map' 0 2 ⋯ ⋯ = 0
hR₂' : Mono (R₂.map' 0 1 ⋯ ⋯)
h₀ : Epi (app' φ 1 ⋯)
h₁ : Mono (app' φ 2 ⋯)
⊢ Epi (app' φ 0 ⋯)
state_after: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Abelian C
R₁ R₂ : ComposableArrows C 2
φ : R₁ ⟶ R₂
hR₁ : R₁.Exact
hR₂ : R₂.map' 0 2 ⋯ ⋯ = 0
hR₂' : Mono (R₂.map' 0 1 ⋯ ⋯)
h₀ : Epi (app' φ 1 ⋯)
h₁ : Mono (app' φ 2 ⋯)
ψ : mk₃ 0 (R₁.map' 0 1 ⋯ ⋯) (R₁.map' 1 2 ⋯ ⋯) ⟶ mk₃ 0 (R₂.map' 0 1 ⋯ ⋯) (R₂.map' 1 2 ⋯ ⋯) :=
  homMk₃ (𝟙 ((mk₃ 0 (R₁.map' 0 1 ⋯ ⋯) (R₁.map' 1 2 ⋯ ⋯)).obj' 0 ⋯)) (app' φ 0 ⋯) (app' φ 1 ⋯) (app' φ 2 ⋯) ⋯ ⋯ ⋯
⊢ Epi (app' φ 0 ⋯)
tactic: let ψ : mk₃ (0 : R₁.obj' 0 ⟶ _) (R₁.map' 0 1) (R₁.map' 1 2) ⟶
    mk₃ (0 : R₁.obj' 0 ⟶ _) (R₂.map' 0 1) (R₂.map' 1 2) := homMk₃ (𝟙 _) (app' φ 0) (app' φ 1)
      (app' φ 2) (by simp) (naturality' φ 0 1) (naturality' φ 1 2)
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Abelian C
R₁ R₂ : ComposableArrows C 2
φ : R₁ ⟶ R₂
hR₁ : R₁.Exact
hR₂ : R₂.map' 0 2 ⋯ ⋯ = 0
hR₂' : Mono (R₂.map' 0 1 ⋯ ⋯)
h₀ : Epi (app' φ 1 ⋯)
h₁ : Mono (app' φ 2 ⋯)
ψ : mk₃ 0 (R₁.map' 0 1 ⋯ ⋯) (R₁.map' 1 2 ⋯ ⋯) ⟶ mk₃ 0 (R₂.map' 0 1 ⋯ ⋯) (R₂.map' 1 2 ⋯ ⋯) :=
  homMk₃ (𝟙 ((mk₃ 0 (R₁.map' 0 1 ⋯ ⋯) (R₁.map' 1 2 ⋯ ⋯)).obj' 0 ⋯)) (app' φ 0 ⋯) (app' φ 1 ⋯) (app' φ 2 ⋯) ⋯ ⋯ ⋯
⊢ Epi (app' φ 0 ⋯)
state_after: case refine_1
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Abelian C
R₁ R₂ : ComposableArrows C 2
φ : R₁ ⟶ R₂
hR₁ : R₁.Exact
hR₂ : R₂.map' 0 2 ⋯ ⋯ = 0
hR₂' : Mono (R₂.map' 0 1 ⋯ ⋯)
h₀ : Epi (app' φ 1 ⋯)
h₁ : Mono (app' φ 2 ⋯)
ψ : mk₃ 0 (R₁.map' 0 1 ⋯ ⋯) (R₁.map' 1 2 ⋯ ⋯) ⟶ mk₃ 0 (R₂.map' 0 1 ⋯ ⋯) (R₂.map' 1 2 ⋯ ⋯) :=
  homMk₃ (𝟙 ((mk₃ 0 (R₁.map' 0 1 ⋯ ⋯) (R₁.map' 1 2 ⋯ ⋯)).obj' 0 ⋯)) (app' φ 0 ⋯) (app' φ 1 ⋯) (app' φ 2 ⋯) ⋯ ⋯ ⋯
⊢ (ShortComplex.mk
      ((mk₂ ((mk₃ 0 (R₂.map' 0 1 ⋯ ⋯) (R₂.map' 1 2 ⋯ ⋯)).map' 0 1 ⋯ ⋯)
            ((mk₃ 0 (R₂.map' 0 1 ⋯ ⋯) (R₂.map' 1 2 ⋯ ⋯)).map' 1 2 ⋯ ⋯)).map'
        0 1 ⋯ ⋯)
      ((mk₂ ((mk₃ 0 (R₂.map' 0 1 ⋯ ⋯) (R₂.map' 1 2 ⋯ ⋯)).map' 0 1 ⋯ ⋯)
            ((mk₃ 0 (R₂.map' 0 1 ⋯ ⋯) (R₂.map' 1 2 ⋯ ⋯)).map' 1 2 ⋯ ⋯)).map'
        1 2 ⋯ ⋯)
      ⋯).Exact

case refine_2
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Abelian C
R₁ R₂ : ComposableArrows C 2
φ : R₁ ⟶ R₂
hR₁ : R₁.Exact
hR₂ : R₂.map' 0 2 ⋯ ⋯ = 0
hR₂' : Mono (R₂.map' 0 1 ⋯ ⋯)
h₀ : Epi (app' φ 1 ⋯)
h₁ : Mono (app' φ 2 ⋯)
ψ : mk₃ 0 (R₁.map' 0 1 ⋯ ⋯) (R₁.map' 1 2 ⋯ ⋯) ⟶ mk₃ 0 (R₂.map' 0 1 ⋯ ⋯) (R₂.map' 1 2 ⋯ ⋯) :=
  homMk₃ (𝟙 ((mk₃ 0 (R₁.map' 0 1 ⋯ ⋯) (R₁.map' 1 2 ⋯ ⋯)).obj' 0 ⋯)) (app' φ 0 ⋯) (app' φ 1 ⋯) (app' φ 2 ⋯) ⋯ ⋯ ⋯
⊢ (mk₃ 0 (R₂.map' 0 1 ⋯ ⋯) (R₂.map' 1 2 ⋯ ⋯)).map' 1 3 ⋯ ⋯ = 0
tactic: refine epi_of_epi_of_epi_of_mono' ψ (hR₁.exact 0).exact_toComposableArrows
    (exact₂_mk _ (by simp) ?_) ?_ (by dsimp [ψ]; infer_instance) h₀ h₁
Theorem: isOfFinOrder_inv_iff
File: Mathlib/GroupTheory/OrderOfElement.lean

Proof steps:
state_before: G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝ : Group G
x✝ y : G
i : ℤ
x : G
⊢ IsOfFinOrder x⁻¹ ↔ IsOfFinOrder x
state_after: no goals
tactic: simp [isOfFinOrder_iff_pow_eq_one]
Theorem: List.sum_drop_succ
File: Mathlib/Algebra/BigOperators/Group/List.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
inst✝ : Group G
x : G
xs : List G
x✝ : 0 < (x :: xs).length
⊢ (drop (0 + 1) (x :: xs)).prod = ((x :: xs).get ⟨0, x✝⟩)⁻¹ * (drop 0 (x :: xs)).prod
state_after: no goals
tactic: simp
Theorem: AddCircle.continuousAt_equivIco
File: Mathlib/Topology/Instances/AddCircle.lean

Proof steps:
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
x : AddCircle p
hx : x ≠ ↑a
⊢ ContinuousAt (⇑(equivIco p a)) x
state_after: case H
𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
x : AddCircle p
z✝ : 𝕜
hx : ↑z✝ ≠ ↑a
⊢ ContinuousAt ⇑(equivIco p a) ↑z✝
tactic: induction x using QuotientAddGroup.induction_on'
state_before: case H
𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
x : AddCircle p
z✝ : 𝕜
hx : ↑z✝ ≠ ↑a
⊢ ContinuousAt ⇑(equivIco p a) ↑z✝
state_after: case H
𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
x : AddCircle p
z✝ : 𝕜
hx : ↑z✝ ≠ ↑a
⊢ Filter.map (⇑(equivIco p a) ∘ QuotientAddGroup.mk) (𝓝 z✝) ≤ 𝓝 ((equivIco p a) ↑z✝)
tactic: rw [ContinuousAt, Filter.Tendsto, QuotientAddGroup.nhds_eq, Filter.map_map]
state_before: case H
𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
x : AddCircle p
z✝ : 𝕜
hx : ↑z✝ ≠ ↑a
⊢ Filter.map (⇑(equivIco p a) ∘ QuotientAddGroup.mk) (𝓝 z✝) ≤ 𝓝 ((equivIco p a) ↑z✝)
state_after: no goals
tactic: exact (continuousAt_toIcoMod hp.out a hx).codRestrict _
Theorem: MeasurableSet.measurableSet_limsup
File: Mathlib/MeasureTheory/MeasurableSpace/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s✝ t u : Set α
inst✝ : MeasurableSpace α
s : ℕ → Set α
hs : ∀ (n : ℕ), MeasurableSet (s n)
⊢ MeasurableSet (limsup s atTop)
state_after: no goals
tactic: simpa only [← blimsup_true] using measurableSet_blimsup fun n _ => hs n
Theorem: Orthonormal.orthogonalFamily
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : _root_.RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : InnerProductSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace ℝ F
ι : Type u_4
G : ι → Type u_5
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
V : (i : ι) → G i →ₗᵢ[𝕜] E
hV : OrthogonalFamily 𝕜 G V
dec_V : (i : ι) → (x : G i) → Decidable (x ≠ 0)
v : ι → E
hv : Orthonormal 𝕜 v
i j : ι
hij : i ≠ j
a : (fun _i => 𝕜) i
b : (fun _i => 𝕜) j
⊢ ⟪((fun i => LinearIsometry.toSpanSingleton 𝕜 E ⋯) i) a, ((fun i => LinearIsometry.toSpanSingleton 𝕜 E ⋯) j) b⟫_𝕜 = 0
state_after: no goals
tactic: simp [inner_smul_left, inner_smul_right, hv.2 hij]
Theorem: LinearMap.toMatrix_id
File: Mathlib/LinearAlgebra/Matrix/ToLin.lean

Proof steps:
state_before: R : Type u_1
inst✝⁷ : CommSemiring R
l : Type u_2
m : Type u_3
n : Type u_4
inst✝⁶ : Fintype n
inst✝⁵ : Finite m
inst✝⁴ : DecidableEq n
M₁ : Type u_5
M₂ : Type u_6
inst✝³ : AddCommMonoid M₁
inst✝² : AddCommMonoid M₂
inst✝¹ : Module R M₁
inst✝ : Module R M₂
v₁ : Basis n R M₁
v₂ : Basis m R M₂
⊢ (toMatrix v₁ v₁) id = 1
state_after: case a
R : Type u_1
inst✝⁷ : CommSemiring R
l : Type u_2
m : Type u_3
n : Type u_4
inst✝⁶ : Fintype n
inst✝⁵ : Finite m
inst✝⁴ : DecidableEq n
M₁ : Type u_5
M₂ : Type u_6
inst✝³ : AddCommMonoid M₁
inst✝² : AddCommMonoid M₂
inst✝¹ : Module R M₁
inst✝ : Module R M₂
v₁ : Basis n R M₁
v₂ : Basis m R M₂
i j : n
⊢ (toMatrix v₁ v₁) id i j = 1 i j
tactic: ext i j
state_before: case a
R : Type u_1
inst✝⁷ : CommSemiring R
l : Type u_2
m : Type u_3
n : Type u_4
inst✝⁶ : Fintype n
inst✝⁵ : Finite m
inst✝⁴ : DecidableEq n
M₁ : Type u_5
M₂ : Type u_6
inst✝³ : AddCommMonoid M₁
inst✝² : AddCommMonoid M₂
inst✝¹ : Module R M₁
inst✝ : Module R M₂
v₁ : Basis n R M₁
v₂ : Basis m R M₂
i j : n
⊢ (toMatrix v₁ v₁) id i j = 1 i j
state_after: no goals
tactic: simp [LinearMap.toMatrix_apply, Matrix.one_apply, Finsupp.single_apply, eq_comm]
Theorem: isComplete_iff_ultrafilter
File: Mathlib/Topology/UniformSpace/Cauchy.lean

Proof steps:
state_before: α : Type u
β : Type v
uniformSpace : UniformSpace α
s : Set α
⊢ IsComplete s ↔ ∀ (l : Ultrafilter α), Cauchy ↑l → ↑l ≤ 𝓟 s → ∃ x ∈ s, ↑l ≤ 𝓝 x
state_after: α : Type u
β : Type v
uniformSpace : UniformSpace α
s : Set α
H : ∀ (l : Ultrafilter α), Cauchy ↑l → ↑l ≤ 𝓟 s → ∃ x ∈ s, ↑l ≤ 𝓝 x
l : Filter α
hl : Cauchy l
hls : l ≤ 𝓟 s
⊢ ∃ x ∈ s, ClusterPt x l
tactic: refine ⟨fun h l => h l, fun H => isComplete_iff_clusterPt.2 fun l hl hls => ?_⟩
state_before: α : Type u
β : Type v
uniformSpace : UniformSpace α
s : Set α
H : ∀ (l : Ultrafilter α), Cauchy ↑l → ↑l ≤ 𝓟 s → ∃ x ∈ s, ↑l ≤ 𝓝 x
l : Filter α
hl : Cauchy l
hls : l ≤ 𝓟 s
⊢ ∃ x ∈ s, ClusterPt x l
state_after: α : Type u
β : Type v
uniformSpace : UniformSpace α
s : Set α
H : ∀ (l : Ultrafilter α), Cauchy ↑l → ↑l ≤ 𝓟 s → ∃ x ∈ s, ↑l ≤ 𝓝 x
l : Filter α
hl : Cauchy l
hls : l ≤ 𝓟 s
this : l.NeBot
⊢ ∃ x ∈ s, ClusterPt x l
tactic: haveI := hl.1
state_before: α : Type u
β : Type v
uniformSpace : UniformSpace α
s : Set α
H : ∀ (l : Ultrafilter α), Cauchy ↑l → ↑l ≤ 𝓟 s → ∃ x ∈ s, ↑l ≤ 𝓝 x
l : Filter α
hl : Cauchy l
hls : l ≤ 𝓟 s
this : l.NeBot
⊢ ∃ x ∈ s, ClusterPt x l
state_after: case intro.intro
α : Type u
β : Type v
uniformSpace : UniformSpace α
s : Set α
H : ∀ (l : Ultrafilter α), Cauchy ↑l → ↑l ≤ 𝓟 s → ∃ x ∈ s, ↑l ≤ 𝓝 x
l : Filter α
hl : Cauchy l
hls : l ≤ 𝓟 s
this : l.NeBot
x : α
hxs : x ∈ s
hxl : ↑(Ultrafilter.of l) ≤ 𝓝 x
⊢ ∃ x ∈ s, ClusterPt x l
tactic: rcases H (Ultrafilter.of l) hl.ultrafilter_of ((Ultrafilter.of_le l).trans hls) with ⟨x, hxs, hxl⟩
state_before: case intro.intro
α : Type u
β : Type v
uniformSpace : UniformSpace α
s : Set α
H : ∀ (l : Ultrafilter α), Cauchy ↑l → ↑l ≤ 𝓟 s → ∃ x ∈ s, ↑l ≤ 𝓝 x
l : Filter α
hl : Cauchy l
hls : l ≤ 𝓟 s
this : l.NeBot
x : α
hxs : x ∈ s
hxl : ↑(Ultrafilter.of l) ≤ 𝓝 x
⊢ ∃ x ∈ s, ClusterPt x l
state_after: no goals
tactic: exact ⟨x, hxs, (ClusterPt.of_le_nhds hxl).mono (Ultrafilter.of_le l)⟩
Theorem: List.oldMapIdxCore_eq
File: Mathlib/Data/List/Indexes.lean

Proof steps:
state_before: α : Type u
β : Type v
l : List α
f : ℕ → α → β
n : ℕ
⊢ List.oldMapIdxCore f n l = List.oldMapIdx (fun i a => f (i + n) a) l
state_after: case nil
α : Type u
β : Type v
f : ℕ → α → β
n : ℕ
⊢ List.oldMapIdxCore f n [] = List.oldMapIdx (fun i a => f (i + n) a) []

case cons
α : Type u
β : Type v
hd : α
tl : List α
hl : ∀ (f : ℕ → α → β) (n : ℕ), List.oldMapIdxCore f n tl = List.oldMapIdx (fun i a => f (i + n) a) tl
f : ℕ → α → β
n : ℕ
⊢ List.oldMapIdxCore f n (hd :: tl) = List.oldMapIdx (fun i a => f (i + n) a) (hd :: tl)
tactic: induction' l with hd tl hl generalizing f n
Theorem: MeasureTheory.Lp.coeFn_le
File: Mathlib/MeasureTheory/Function/LpOrder.lean

Proof steps:
state_before: α : Type u_1
E : Type u_2
m : MeasurableSpace α
μ : Measure α
p : ℝ≥0∞
inst✝ : NormedLatticeAddCommGroup E
f g : ↥(Lp E p μ)
⊢ ↑↑f ≤ᶠ[ae μ] ↑↑g ↔ f ≤ g
state_after: no goals
tactic: rw [← Subtype.coe_le_coe, ← AEEqFun.coeFn_le]
Theorem: aestronglyMeasurable_const_smul_iff
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝¹¹ : Countable ι
m : MeasurableSpace α
μ ν : Measure α
inst✝¹⁰ : TopologicalSpace β
inst✝⁹ : TopologicalSpace γ
f g : α → β
M : Type u_5
G : Type u_6
G₀ : Type u_7
inst✝⁸ : Monoid M
inst✝⁷ : MulAction M β
inst✝⁶ : ContinuousConstSMul M β
inst✝⁵ : Group G
inst✝⁴ : MulAction G β
inst✝³ : ContinuousConstSMul G β
inst✝² : GroupWithZero G₀
inst✝¹ : MulAction G₀ β
inst✝ : ContinuousConstSMul G₀ β
c : G
h : AEStronglyMeasurable (fun x => c • f x) μ
⊢ AEStronglyMeasurable f μ
state_after: no goals
tactic: simpa only [inv_smul_smul] using h.const_smul' c⁻¹
Theorem: Ideal.eq_top_iff_one
File: Mathlib/RingTheory/Ideal/Basic.lean

Proof steps:
state_before: α : Type u
β : Type v
inst✝ : Semiring α
I : Ideal α
a b : α
⊢ I = ⊤ → 1 ∈ I
state_after: α : Type u
β : Type v
inst✝ : Semiring α
a b : α
⊢ 1 ∈ ⊤
tactic: rintro rfl
state_before: α : Type u
β : Type v
inst✝ : Semiring α
a b : α
⊢ 1 ∈ ⊤
state_after: no goals
tactic: trivial
state_before: α : Type u
β : Type v
inst✝ : Semiring α
I : Ideal α
a b : α
h : 1 ∈ I
⊢ 1 * 1 = 1
state_after: no goals
tactic: simp
Theorem: CategoryTheory.Functor.mapSquare_map_τ₂
File: Mathlib/CategoryTheory/Square.lean

Proof steps:
state_before: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
F : C ⥤ D
X✝ Y✝ : Square C
φ : X✝ ⟶ Y✝
⊢ ((fun sq => sq.map F) X✝).f₁₂ ≫ F.map φ.τ₂ = F.map φ.τ₁ ≫ ((fun sq => sq.map F) Y✝).f₁₂
state_after: no goals
tactic: simpa only [Functor.map_comp] using F.congr_map φ.comm₁₂
state_before: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
F : C ⥤ D
X✝ Y✝ : Square C
φ : X✝ ⟶ Y✝
⊢ ((fun sq => sq.map F) X✝).f₁₃ ≫ F.map φ.τ₃ = F.map φ.τ₁ ≫ ((fun sq => sq.map F) Y✝).f₁₃
state_after: no goals
tactic: simpa only [Functor.map_comp] using F.congr_map φ.comm₁₃
state_before: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
F : C ⥤ D
X✝ Y✝ : Square C
φ : X✝ ⟶ Y✝
⊢ ((fun sq => sq.map F) X✝).f₂₄ ≫ F.map φ.τ₄ = F.map φ.τ₂ ≫ ((fun sq => sq.map F) Y✝).f₂₄
state_after: no goals
tactic: simpa only [Functor.map_comp] using F.congr_map φ.comm₂₄
state_before: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u'
inst✝ : Category.{v', u'} D
F : C ⥤ D
X✝ Y✝ : Square C
φ : X✝ ⟶ Y✝
⊢ ((fun sq => sq.map F) X✝).f₃₄ ≫ F.map φ.τ₄ = F.map φ.τ₃ ≫ ((fun sq => sq.map F) Y✝).f₃₄
state_after: no goals
tactic: simpa only [Functor.map_comp] using F.congr_map φ.comm₃₄
Theorem: MeasureTheory.measurePreserving_piUnique
File: Mathlib/MeasureTheory/Constructions/Pi.lean

Proof steps:
state_before: ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝³ : Fintype ι
m✝¹ : (i : ι) → OuterMeasure (α i)
m✝ : (i : ι) → MeasurableSpace (α i)
μ✝ : (i : ι) → Measure (α i)
inst✝² : ∀ (i : ι), SigmaFinite (μ✝ i)
inst✝¹ : Fintype ι'
π : ι → Type u_4
inst✝ : Unique ι
m : (i : ι) → MeasurableSpace (π i)
μ : (i : ι) → Measure (π i)
⊢ Measure.map (⇑(MeasurableEquiv.piUnique π)) (Measure.pi μ) = μ default
state_after: ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝³ : Fintype ι
m✝¹ : (i : ι) → OuterMeasure (α i)
m✝ : (i : ι) → MeasurableSpace (α i)
μ✝ : (i : ι) → Measure (α i)
inst✝² : ∀ (i : ι), SigmaFinite (μ✝ i)
inst✝¹ : Fintype ι'
π : ι → Type u_4
inst✝ : Unique ι
m : (i : ι) → MeasurableSpace (π i)
μ : (i : ι) → Measure (π i)
e : ((i : ι) → π i) ≃ᵐ π default := MeasurableEquiv.piUnique π
⊢ Measure.map (⇑e) (Measure.pi μ) = μ default
tactic: set e := MeasurableEquiv.piUnique π
state_before: ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝³ : Fintype ι
m✝¹ : (i : ι) → OuterMeasure (α i)
m✝ : (i : ι) → MeasurableSpace (α i)
μ✝ : (i : ι) → Measure (α i)
inst✝² : ∀ (i : ι), SigmaFinite (μ✝ i)
inst✝¹ : Fintype ι'
π : ι → Type u_4
inst✝ : Unique ι
m : (i : ι) → MeasurableSpace (π i)
μ : (i : ι) → Measure (π i)
e : ((i : ι) → π i) ≃ᵐ π default := MeasurableEquiv.piUnique π
⊢ Measure.map (⇑e) (Measure.pi μ) = μ default
state_after: ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝³ : Fintype ι
m✝¹ : (i : ι) → OuterMeasure (α i)
m✝ : (i : ι) → MeasurableSpace (α i)
μ✝ : (i : ι) → Measure (α i)
inst✝² : ∀ (i : ι), SigmaFinite (μ✝ i)
inst✝¹ : Fintype ι'
π : ι → Type u_4
inst✝ : Unique ι
m : (i : ι) → MeasurableSpace (π i)
μ : (i : ι) → Measure (π i)
e : ((i : ι) → π i) ≃ᵐ π default := MeasurableEquiv.piUnique π
this : (piPremeasure fun i => (μ i).toOuterMeasure) = ⇑(Measure.map (⇑e.symm) (μ default))
⊢ Measure.map (⇑e) (Measure.pi μ) = μ default
tactic: have : (piPremeasure fun i => (μ i).toOuterMeasure) = Measure.map e.symm (μ default) := by
      ext1 s
      rw [piPremeasure, Fintype.prod_unique, e.symm.map_apply, coe_toOuterMeasure]
      congr 1; exact e.toEquiv.image_eq_preimage s
state_before: ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝³ : Fintype ι
m✝¹ : (i : ι) → OuterMeasure (α i)
m✝ : (i : ι) → MeasurableSpace (α i)
μ✝ : (i : ι) → Measure (α i)
inst✝² : ∀ (i : ι), SigmaFinite (μ✝ i)
inst✝¹ : Fintype ι'
π : ι → Type u_4
inst✝ : Unique ι
m : (i : ι) → MeasurableSpace (π i)
μ : (i : ι) → Measure (π i)
e : ((i : ι) → π i) ≃ᵐ π default := MeasurableEquiv.piUnique π
this : (piPremeasure fun i => (μ i).toOuterMeasure) = ⇑(Measure.map (⇑e.symm) (μ default))
⊢ Measure.map (⇑e) (Measure.pi μ) = μ default
state_after: no goals
tactic: simp_rw [Measure.pi, OuterMeasure.pi, this, ← coe_toOuterMeasure, boundedBy_eq_self,
      toOuterMeasure_toMeasure, MeasurableEquiv.map_map_symm]
Theorem: Padic.valuation_map_add
File: Mathlib/NumberTheory/Padics/PadicNumbers.lean

Proof steps:
state_before: p : ℕ
hp : Fact (Nat.Prime p)
x y : ℚ_[p]
hxy : x + y ≠ 0
⊢ min x.valuation y.valuation ≤ (x + y).valuation
state_after: case pos
p : ℕ
hp : Fact (Nat.Prime p)
x y : ℚ_[p]
hxy : x + y ≠ 0
hx : x = 0
⊢ min x.valuation y.valuation ≤ (x + y).valuation

case neg
p : ℕ
hp : Fact (Nat.Prime p)
x y : ℚ_[p]
hxy : x + y ≠ 0
hx : ¬x = 0
⊢ min x.valuation y.valuation ≤ (x + y).valuation
tactic: by_cases hx : x = 0
Theorem: MvPolynomial.monomial_le_degreeOf
File: Mathlib/Algebra/MvPolynomial/Degrees.lean

Proof steps:
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m✝ : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
i : σ
f : MvPolynomial σ R
m : σ →₀ ℕ
h_m : m ∈ f.support
⊢ m i ≤ degreeOf i f
state_after: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m✝ : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
i : σ
f : MvPolynomial σ R
m : σ →₀ ℕ
h_m : m ∈ f.support
⊢ m i ≤ f.support.sup fun m => m i
tactic: rw [degreeOf_eq_sup i]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m✝ : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
i : σ
f : MvPolynomial σ R
m : σ →₀ ℕ
h_m : m ∈ f.support
⊢ m i ≤ f.support.sup fun m => m i
state_after: no goals
tactic: apply Finset.le_sup h_m