ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: LinearEquiv.toLinearEquiv_toContinuousLinearEquiv
File: Mathlib/Topology/Algebra/Module/FiniteDimension.lean

Proof steps:
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁸ : AddCommGroup E
inst✝¹⁷ : Module 𝕜 E
inst✝¹⁶ : TopologicalSpace E
inst✝¹⁵ : TopologicalAddGroup E
inst✝¹⁴ : ContinuousSMul 𝕜 E
F : Type w
inst✝¹³ : AddCommGroup F
inst✝¹² : Module 𝕜 F
inst✝¹¹ : TopologicalSpace F
inst✝¹⁰ : TopologicalAddGroup F
inst✝⁹ : ContinuousSMul 𝕜 F
F' : Type x
inst✝⁸ : AddCommGroup F'
inst✝⁷ : Module 𝕜 F'
inst✝⁶ : TopologicalSpace F'
inst✝⁵ : TopologicalAddGroup F'
inst✝⁴ : ContinuousSMul 𝕜 F'
inst✝³ : CompleteSpace 𝕜
inst✝² : T2Space E
inst✝¹ : T2Space F
inst✝ : FiniteDimensional 𝕜 E
e : E ≃ₗ[𝕜] F
⊢ e.toContinuousLinearEquiv.toLinearEquiv = e
state_after: case h
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁸ : AddCommGroup E
inst✝¹⁷ : Module 𝕜 E
inst✝¹⁶ : TopologicalSpace E
inst✝¹⁵ : TopologicalAddGroup E
inst✝¹⁴ : ContinuousSMul 𝕜 E
F : Type w
inst✝¹³ : AddCommGroup F
inst✝¹² : Module 𝕜 F
inst✝¹¹ : TopologicalSpace F
inst✝¹⁰ : TopologicalAddGroup F
inst✝⁹ : ContinuousSMul 𝕜 F
F' : Type x
inst✝⁸ : AddCommGroup F'
inst✝⁷ : Module 𝕜 F'
inst✝⁶ : TopologicalSpace F'
inst✝⁵ : TopologicalAddGroup F'
inst✝⁴ : ContinuousSMul 𝕜 F'
inst✝³ : CompleteSpace 𝕜
inst✝² : T2Space E
inst✝¹ : T2Space F
inst✝ : FiniteDimensional 𝕜 E
e : E ≃ₗ[𝕜] F
x : E
⊢ e.toContinuousLinearEquiv.toLinearEquiv x = e x
tactic: ext x
state_before: case h
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁸ : AddCommGroup E
inst✝¹⁷ : Module 𝕜 E
inst✝¹⁶ : TopologicalSpace E
inst✝¹⁵ : TopologicalAddGroup E
inst✝¹⁴ : ContinuousSMul 𝕜 E
F : Type w
inst✝¹³ : AddCommGroup F
inst✝¹² : Module 𝕜 F
inst✝¹¹ : TopologicalSpace F
inst✝¹⁰ : TopologicalAddGroup F
inst✝⁹ : ContinuousSMul 𝕜 F
F' : Type x
inst✝⁸ : AddCommGroup F'
inst✝⁷ : Module 𝕜 F'
inst✝⁶ : TopologicalSpace F'
inst✝⁵ : TopologicalAddGroup F'
inst✝⁴ : ContinuousSMul 𝕜 F'
inst✝³ : CompleteSpace 𝕜
inst✝² : T2Space E
inst✝¹ : T2Space F
inst✝ : FiniteDimensional 𝕜 E
e : E ≃ₗ[𝕜] F
x : E
⊢ e.toContinuousLinearEquiv.toLinearEquiv x = e x
state_after: no goals
tactic: rfl
Theorem: IsAdjoinRootMonic.basis_apply
File: Mathlib/RingTheory/IsAdjoinRoot.lean

Proof steps:
state_before: R : Type u
S : Type v
inst✝² : CommRing R
inst✝¹ : Ring S
f : R[X]
inst✝ : Algebra R S
h : IsAdjoinRootMonic S f
i : Fin f.natDegree
⊢ Finsupp.comapDomain Fin.val (h.modByMonicHom (h.root ^ ↑i)).toFinsupp ⋯ = Finsupp.single i 1
state_after: case h
R : Type u
S : Type v
inst✝² : CommRing R
inst✝¹ : Ring S
f : R[X]
inst✝ : Algebra R S
h : IsAdjoinRootMonic S f
i j : Fin f.natDegree
⊢ (Finsupp.comapDomain Fin.val (h.modByMonicHom (h.root ^ ↑i)).toFinsupp ⋯) j = (Finsupp.single i 1) j
tactic: ext j
state_before: case h
R : Type u
S : Type v
inst✝² : CommRing R
inst✝¹ : Ring S
f : R[X]
inst✝ : Algebra R S
h : IsAdjoinRootMonic S f
i j : Fin f.natDegree
⊢ (Finsupp.comapDomain Fin.val (h.modByMonicHom (h.root ^ ↑i)).toFinsupp ⋯) j = (Finsupp.single i 1) j
state_after: case h
R : Type u
S : Type v
inst✝² : CommRing R
inst✝¹ : Ring S
f : R[X]
inst✝ : Algebra R S
h : IsAdjoinRootMonic S f
i j : Fin f.natDegree
⊢ (X ^ ↑i).toFinsupp ↑j = (Finsupp.single i 1) j

case h.hdeg
R : Type u
S : Type v
inst✝² : CommRing R
inst✝¹ : Ring S
f : R[X]
inst✝ : Algebra R S
h : IsAdjoinRootMonic S f
i j : Fin f.natDegree
⊢ ↑i < f.natDegree
tactic: rw [Finsupp.comapDomain_apply, modByMonicHom_root_pow]
Theorem: Ordinal.zero_opow'
File: Mathlib/SetTheory/Ordinal/Exponential.lean

Proof steps:
state_before: a : Ordinal.{u_1}
⊢ 0 ^ a = 1 - a
state_after: no goals
tactic: simp only [opow_def, if_true]
Theorem: Equiv.Set.univPi_symm_apply_coe
File: Mathlib/Logic/Equiv/Set.lean

Proof steps:
state_before: α✝ : Sort u
β✝ : Sort v
γ : Sort w
α : Type u_1
β : α → Type u_2
s : (a : α) → Set (β a)
x✝ : ↑(univ.pi s)
f : (i : α) → β i
hf : f ∈ univ.pi s
⊢ (fun f => ⟨fun a => ↑(f a), ⋯⟩) ((fun f a => ⟨↑f a, ⋯⟩) ⟨f, hf⟩) = ⟨f, hf⟩
state_after: case a.h
α✝ : Sort u
β✝ : Sort v
γ : Sort w
α : Type u_1
β : α → Type u_2
s : (a : α) → Set (β a)
x✝ : ↑(univ.pi s)
f : (i : α) → β i
hf : f ∈ univ.pi s
a : α
⊢ ↑((fun f => ⟨fun a => ↑(f a), ⋯⟩) ((fun f a => ⟨↑f a, ⋯⟩) ⟨f, hf⟩)) a = ↑⟨f, hf⟩ a
tactic: ext a
state_before: case a.h
α✝ : Sort u
β✝ : Sort v
γ : Sort w
α : Type u_1
β : α → Type u_2
s : (a : α) → Set (β a)
x✝ : ↑(univ.pi s)
f : (i : α) → β i
hf : f ∈ univ.pi s
a : α
⊢ ↑((fun f => ⟨fun a => ↑(f a), ⋯⟩) ((fun f a => ⟨↑f a, ⋯⟩) ⟨f, hf⟩)) a = ↑⟨f, hf⟩ a
state_after: no goals
tactic: rfl
state_before: α✝ : Sort u
β✝ : Sort v
γ : Sort w
α : Type u_1
β : α → Type u_2
s : (a : α) → Set (β a)
f : (a : α) → ↑(s a)
⊢ (fun f a => ⟨↑f a, ⋯⟩) ((fun f => ⟨fun a => ↑(f a), ⋯⟩) f) = f
state_after: case h.a
α✝ : Sort u
β✝ : Sort v
γ : Sort w
α : Type u_1
β : α → Type u_2
s : (a : α) → Set (β a)
f : (a : α) → ↑(s a)
a : α
⊢ ↑((fun f a => ⟨↑f a, ⋯⟩) ((fun f => ⟨fun a => ↑(f a), ⋯⟩) f) a) = ↑(f a)
tactic: ext a
state_before: case h.a
α✝ : Sort u
β✝ : Sort v
γ : Sort w
α : Type u_1
β : α → Type u_2
s : (a : α) → Set (β a)
f : (a : α) → ↑(s a)
a : α
⊢ ↑((fun f a => ⟨↑f a, ⋯⟩) ((fun f => ⟨fun a => ↑(f a), ⋯⟩) f) a) = ↑(f a)
state_after: no goals
tactic: rfl
Theorem: real_inner_mul_inner_self_le
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
x y : F
⊢ ⟪x, y⟫_ℝ * ⟪x, y⟫_ℝ ≤ ‖⟪x, y⟫_ℝ‖ * ‖⟪y, x⟫_ℝ‖
state_after: 𝕜 : 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
x y : F
⊢ ⟪y, x⟫_ℝ * ⟪y, x⟫_ℝ ≤ ‖⟪y, x⟫_ℝ * ⟪y, x⟫_ℝ‖
tactic: rw [real_inner_comm y, ← norm_mul]
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
x y : F
⊢ ⟪y, x⟫_ℝ * ⟪y, x⟫_ℝ ≤ ‖⟪y, x⟫_ℝ * ⟪y, x⟫_ℝ‖
state_after: no goals
tactic: exact le_abs_self _
Theorem: MeasureTheory.VectorMeasure.AbsolutelyContinuous.neg_right
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
L : Type u_3
M : Type u_4
N✝ : Type u_5
inst✝⁸ : AddCommMonoid L
inst✝⁷ : TopologicalSpace L
inst✝⁶ : AddCommMonoid M
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommMonoid N✝
inst✝³ : TopologicalSpace N✝
v✝ : VectorMeasure α M
w✝ : VectorMeasure α N✝
N : Type u_6
inst✝² : AddCommGroup N
inst✝¹ : TopologicalSpace N
inst✝ : TopologicalAddGroup N
v : VectorMeasure α M
w : VectorMeasure α N
h : v ≪ᵥ w
⊢ v ≪ᵥ -w
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
L : Type u_3
M : Type u_4
N✝ : Type u_5
inst✝⁸ : AddCommMonoid L
inst✝⁷ : TopologicalSpace L
inst✝⁶ : AddCommMonoid M
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommMonoid N✝
inst✝³ : TopologicalSpace N✝
v✝ : VectorMeasure α M
w✝ : VectorMeasure α N✝
N : Type u_6
inst✝² : AddCommGroup N
inst✝¹ : TopologicalSpace N
inst✝ : TopologicalAddGroup N
v : VectorMeasure α M
w : VectorMeasure α N
h : v ≪ᵥ w
s : Set α
hs : ↑(-w) s = 0
⊢ ↑v s = 0
tactic: intro s hs
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
L : Type u_3
M : Type u_4
N✝ : Type u_5
inst✝⁸ : AddCommMonoid L
inst✝⁷ : TopologicalSpace L
inst✝⁶ : AddCommMonoid M
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommMonoid N✝
inst✝³ : TopologicalSpace N✝
v✝ : VectorMeasure α M
w✝ : VectorMeasure α N✝
N : Type u_6
inst✝² : AddCommGroup N
inst✝¹ : TopologicalSpace N
inst✝ : TopologicalAddGroup N
v : VectorMeasure α M
w : VectorMeasure α N
h : v ≪ᵥ w
s : Set α
hs : ↑(-w) s = 0
⊢ ↑v s = 0
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
L : Type u_3
M : Type u_4
N✝ : Type u_5
inst✝⁸ : AddCommMonoid L
inst✝⁷ : TopologicalSpace L
inst✝⁶ : AddCommMonoid M
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommMonoid N✝
inst✝³ : TopologicalSpace N✝
v✝ : VectorMeasure α M
w✝ : VectorMeasure α N✝
N : Type u_6
inst✝² : AddCommGroup N
inst✝¹ : TopologicalSpace N
inst✝ : TopologicalAddGroup N
v : VectorMeasure α M
w : VectorMeasure α N
h : v ≪ᵥ w
s : Set α
hs : ↑w s = 0
⊢ ↑v s = 0
tactic: rw [neg_apply, neg_eq_zero] at hs
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
L : Type u_3
M : Type u_4
N✝ : Type u_5
inst✝⁸ : AddCommMonoid L
inst✝⁷ : TopologicalSpace L
inst✝⁶ : AddCommMonoid M
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommMonoid N✝
inst✝³ : TopologicalSpace N✝
v✝ : VectorMeasure α M
w✝ : VectorMeasure α N✝
N : Type u_6
inst✝² : AddCommGroup N
inst✝¹ : TopologicalSpace N
inst✝ : TopologicalAddGroup N
v : VectorMeasure α M
w : VectorMeasure α N
h : v ≪ᵥ w
s : Set α
hs : ↑w s = 0
⊢ ↑v s = 0
state_after: no goals
tactic: exact h hs
Theorem: MeasureTheory.ae_withDensity_iff_ae_restrict'
File: Mathlib/MeasureTheory/Measure/WithDensity.lean

Proof steps:
state_before: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
p : α → Prop
f : α → ℝ≥0∞
hf : AEMeasurable f μ
⊢ (∀ᵐ (x : α) ∂μ.withDensity f, p x) ↔ ∀ᵐ (x : α) ∂μ.restrict {x | f x ≠ 0}, p x
state_after: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
p : α → Prop
f : α → ℝ≥0∞
hf : AEMeasurable f μ
⊢ (∀ᵐ (x : α) ∂μ, f x ≠ 0 → p x) ↔ ∀ᵐ (x : α) ∂μ, x ∈ {x | f x ≠ 0} → p x

α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
p : α → Prop
f : α → ℝ≥0∞
hf : AEMeasurable f μ
⊢ NullMeasurableSet {x | f x ≠ 0} μ
tactic: rw [ae_withDensity_iff' hf, ae_restrict_iff'₀]
Theorem: Finset.sup'_comm
File: Mathlib/Data/Finset/Lattice.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
ι : Type u_5
κ : Type u_6
inst✝ : SemilatticeSup α
s : Finset β
H : s.Nonempty
f✝ : β → α
t : Finset γ
hs : s.Nonempty
ht : t.Nonempty
f : β → γ → α
a : α
⊢ (s.sup' hs fun b => t.sup' ht (f b)) ≤ a ↔ (t.sup' ht fun c => s.sup' hs fun b => f b c) ≤ a
state_after: no goals
tactic: simpa using forall₂_swap
Theorem: NFA.mem_accepts
File: Mathlib/Computability/NFA.lean

Proof steps:
state_before: α : Type u
σ σ' : Type v
M : NFA α σ
x : List α
⊢ x ∈ M.accepts ↔ ∃ S ∈ M.accept, S ∈ M.evalFrom M.start x
state_after: no goals
tactic: rfl
Theorem: FiniteDimensional.finrank_tensorProduct
File: Mathlib/LinearAlgebra/Dimension/Constructions.lean

Proof steps:
state_before: R S : Type u
M : Type v
M' : Type v'
M₁ : Type v
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type u_1
inst✝¹⁹ : Ring R
inst✝¹⁸ : CommRing S
inst✝¹⁷ : AddCommGroup M
inst✝¹⁶ : AddCommGroup M'
inst✝¹⁵ : AddCommGroup M₁
inst✝¹⁴ : Module R M
inst✝¹³ : Module R M'
inst✝¹² : Module R M₁
inst✝¹¹ : StrongRankCondition R
inst✝¹⁰ : StrongRankCondition S
inst✝⁹ : Module S M
inst✝⁸ : Module.Free S M
inst✝⁷ : Module S M'
inst✝⁶ : Module.Free S M'
inst✝⁵ : Module S M₁
inst✝⁴ : Module.Free S M₁
inst✝³ : Algebra S R
inst✝² : Module R M
inst✝¹ : IsScalarTower S R M
inst✝ : Module.Free R M
⊢ finrank R (M ⊗[S] M') = finrank R M * finrank S M'
state_after: no goals
tactic: simp [finrank]
Theorem: Option.comp_traverse
File: Mathlib/Control/Traversable/Instances.lean

Proof steps:
state_before: F G : Type u → Type u
inst✝² : Applicative F
inst✝¹ : Applicative G
inst✝ : LawfulApplicative G
α : Type u_1
β γ : Type u
f : β → F γ
g : α → G β
x : Option α
⊢ Option.traverse (Comp.mk ∘ (fun x => f <$> x) ∘ g) x = Comp.mk (Option.traverse f <$> Option.traverse g x)
state_after: no goals
tactic: cases x <;> simp! [functor_norm] <;> rfl
Theorem: Set.range_list_map
File: Mathlib/Data/Set/List.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
l : List α
f : α → β
⊢ range (map f) = {l | ∀ x ∈ l, x ∈ range f}
state_after: α : Type u_1
β : Type u_2
l✝ : List α
f : α → β
l : List β
hl : l ∈ {l | ∀ x ∈ l, x ∈ range f}
⊢ l ∈ range (map f)
tactic: refine antisymm (range_subset_iff.2 fun l => forall_mem_map_iff.2 fun y _ => mem_range_self _)
      fun l hl => ?_
state_before: α : Type u_1
β : Type u_2
l✝ : List α
f : α → β
l : List β
hl : l ∈ {l | ∀ x ∈ l, x ∈ range f}
⊢ l ∈ range (map f)
state_after: case nil
α : Type u_1
β : Type u_2
l : List α
f : α → β
hl : [] ∈ {l | ∀ x ∈ l, x ∈ range f}
⊢ [] ∈ range (map f)

case cons
α : Type u_1
β : Type u_2
l✝ : List α
f : α → β
a : β
l : List β
ihl : l ∈ {l | ∀ x ∈ l, x ∈ range f} → l ∈ range (map f)
hl : a :: l ∈ {l | ∀ x ∈ l, x ∈ range f}
⊢ a :: l ∈ range (map f)
tactic: induction' l with a l ihl
state_before: case cons
α : Type u_1
β : Type u_2
l✝ : List α
f : α → β
a : β
l : List β
ihl : l ∈ {l | ∀ x ∈ l, x ∈ range f} → l ∈ range (map f)
hl : a :: l ∈ {l | ∀ x ∈ l, x ∈ range f}
⊢ a :: l ∈ range (map f)
state_after: case cons.intro
α : Type u_1
β : Type u_2
l✝ : List α
f : α → β
a : β
l : List α
ihl : map f l ∈ {l | ∀ x ∈ l, x ∈ range f} → map f l ∈ range (map f)
hl : a :: map f l ∈ {l | ∀ x ∈ l, x ∈ range f}
⊢ a :: map f l ∈ range (map f)
tactic: rcases ihl fun x hx => hl x <| subset_cons _ _ hx with ⟨l, rfl⟩
state_before: case cons.intro
α : Type u_1
β : Type u_2
l✝ : List α
f : α → β
a : β
l : List α
ihl : map f l ∈ {l | ∀ x ∈ l, x ∈ range f} → map f l ∈ range (map f)
hl : a :: map f l ∈ {l | ∀ x ∈ l, x ∈ range f}
⊢ a :: map f l ∈ range (map f)
state_after: case cons.intro.intro
α : Type u_1
β : Type u_2
l✝ : List α
f : α → β
l : List α
ihl : map f l ∈ {l | ∀ x ∈ l, x ∈ range f} → map f l ∈ range (map f)
a : α
hl : f a :: map f l ∈ {l | ∀ x ∈ l, x ∈ range f}
⊢ f a :: map f l ∈ range (map f)
tactic: rcases hl a (mem_cons_self _ _) with ⟨a, rfl⟩
state_before: case cons.intro.intro
α : Type u_1
β : Type u_2
l✝ : List α
f : α → β
l : List α
ihl : map f l ∈ {l | ∀ x ∈ l, x ∈ range f} → map f l ∈ range (map f)
a : α
hl : f a :: map f l ∈ {l | ∀ x ∈ l, x ∈ range f}
⊢ f a :: map f l ∈ range (map f)
state_after: no goals
tactic: exact ⟨a :: l, map_cons _ _ _⟩
Theorem: Finset.sum_ite_zero
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

Proof steps:
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a✝ : α
f g : α → β
inst✝¹ : CommMonoid β
s : Finset α
p : α → Prop
inst✝ : DecidablePred p
h : ∀ i ∈ s, ∀ j ∈ s, p i → p j → i = j
a : β
⊢ (∏ i ∈ s, if p i then a else 1) = if ∃ i ∈ s, p i then a else 1
state_after: case pos
ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a✝ : α
f g : α → β
inst✝¹ : CommMonoid β
s : Finset α
p : α → Prop
inst✝ : DecidablePred p
h✝ : ∀ i ∈ s, ∀ j ∈ s, p i → p j → i = j
a : β
h : ∃ i ∈ s, p i
⊢ (∏ i ∈ s, if p i then a else 1) = a

case neg
ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a✝ : α
f g : α → β
inst✝¹ : CommMonoid β
s : Finset α
p : α → Prop
inst✝ : DecidablePred p
h✝ : ∀ i ∈ s, ∀ j ∈ s, p i → p j → i = j
a : β
h : ¬∃ i ∈ s, p i
⊢ (∏ i ∈ s, if p i then a else 1) = 1
tactic: split_ifs with h
Theorem: IsCoprime.mulVecSL
File: Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean

Proof steps:
state_before: R : Type u_1
inst✝ : CommRing R
v : Fin 2 → R
hab : IsCoprime (v 0) (v 1)
A : SL(2, R)
⊢ IsCoprime ((↑A *ᵥ v) 0) ((↑A *ᵥ v) 1)
state_after: no goals
tactic: simpa only [← vecMul_transpose] using hab.vecMulSL A.transpose
Theorem: Submodule.inf_iSup_genEigenspace
File: Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean

Proof steps:
state_before: K : Type u_1
V : Type u_2
inst✝⁶ : Field K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
R : Type u_3
M : Type u_4
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
p : Submodule K V
f : End K V
inst✝ : FiniteDimensional K V
h : ∀ x ∈ p, f x ∈ p
⊢ p ⊓ ⨆ μ, ⨆ k, (f.genEigenspace μ) k = ⨆ μ, ⨆ k, p ⊓ (f.genEigenspace μ) k
state_after: K : Type u_1
V : Type u_2
inst✝⁶ : Field K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
R : Type u_3
M : Type u_4
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
p : Submodule K V
f : End K V
inst✝ : FiniteDimensional K V
h : ∀ x ∈ p, f x ∈ p
⊢ p ⊓ ⨆ μ, ⨆ k, (f.genEigenspace μ) k = ⨆ μ, p ⊓ ⨆ i, (f.genEigenspace μ) i
tactic: simp_rw [← (f.genEigenspace _).mono.directed_le.inf_iSup_eq]
state_before: K : Type u_1
V : Type u_2
inst✝⁶ : Field K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
R : Type u_3
M : Type u_4
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
p : Submodule K V
f : End K V
inst✝ : FiniteDimensional K V
h : ∀ x ∈ p, f x ∈ p
⊢ p ⊓ ⨆ μ, ⨆ k, (f.genEigenspace μ) k = ⨆ μ, p ⊓ ⨆ i, (f.genEigenspace μ) i
state_after: K : Type u_1
V : Type u_2
inst✝⁶ : Field K
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module K V
R : Type u_3
M : Type u_4
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
p : Submodule K V
f : End K V
inst✝ : FiniteDimensional K V
h : ∀ x ∈ p, f x ∈ p
m : V
hm : m ∈ p ⊓ ⨆ μ, ⨆ k, (f.genEigenspace μ) k
⊢ m ∈ ⨆ μ, p ⊓ ⨆ i, (f.genEigenspace μ) i
tactic: refine le_antisymm (fun m hm ↦ ?_)
    (le_inf_iff.mpr ⟨iSup_le fun μ ↦ inf_le_left, iSup_mono fun μ ↦ inf_le_right⟩)
Theorem: FreeAlgebra.liftAux_eq
File: Mathlib/Algebra/FreeAlgebra.lean

Proof steps:
state_before: R : Type u_1
inst✝² : CommSemiring R
X : Type u_2
A : Type u_3
inst✝¹ : Semiring A
inst✝ : Algebra R A
f : X → A
⊢ FreeAlgebra.liftAux R f = (lift R) f
state_after: R : Type u_1
inst✝² : CommSemiring R
X : Type u_2
A : Type u_3
inst✝¹ : Semiring A
inst✝ : Algebra R A
f : X → A
⊢ FreeAlgebra.liftAux R f =
    { toFun := FreeAlgebra.liftAux R, invFun := fun F => ⇑F ∘ ι R, left_inv := ⋯, right_inv := ⋯ } f
tactic: rw [lift]
state_before: R : Type u_1
inst✝² : CommSemiring R
X : Type u_2
A : Type u_3
inst✝¹ : Semiring A
inst✝ : Algebra R A
f : X → A
⊢ FreeAlgebra.liftAux R f =
    { toFun := FreeAlgebra.liftAux R, invFun := fun F => ⇑F ∘ ι R, left_inv := ⋯, right_inv := ⋯ } f
state_after: no goals
tactic: rfl
Theorem: Profinite.lift_lifts
File: Mathlib/Topology/Category/Stonean/Basic.lean

Proof steps:
state_before: X Y : Profinite
Z : Stonean
e : Stonean.toProfinite.obj Z ⟶ Y
f : X ⟶ Y
inst✝ : Epi f
⊢ lift e f ≫ f = e
state_after: no goals
tactic: simp [lift]
Theorem: CategoryTheory.GradedObject.Monoidal.pentagon
File: Mathlib/CategoryTheory/GradedObject/Monoidal.lean

Proof steps:
state_before: I : Type u
inst✝²⁵ : AddMonoid I
C : Type u_1
inst✝²⁴ : Category.{u_2, u_1} C
inst✝²³ : MonoidalCategory C
X₁ X₂ X₃ X₄ : GradedObject I C
inst✝²² : X₁.HasTensor X₂
inst✝²¹ : X₂.HasTensor X₃
inst✝²⁰ : X₃.HasTensor X₄
inst✝¹⁹ : (tensorObj X₁ X₂).HasTensor X₃
inst✝¹⁸ : X₁.HasTensor (tensorObj X₂ X₃)
inst✝¹⁷ : (tensorObj X₂ X₃).HasTensor X₄
inst✝¹⁶ : X₂.HasTensor (tensorObj X₃ X₄)
inst✝¹⁵ : (tensorObj (tensorObj X₁ X₂) X₃).HasTensor X₄
inst✝¹⁴ : (tensorObj X₁ (tensorObj X₂ X₃)).HasTensor X₄
inst✝¹³ : X₁.HasTensor (tensorObj (tensorObj X₂ X₃) X₄)
inst✝¹² : X₁.HasTensor (tensorObj X₂ (tensorObj X₃ X₄))
inst✝¹¹ : (tensorObj X₁ X₂).HasTensor (tensorObj X₃ X₄)
inst✝¹⁰ : X₁.HasGoodTensor₁₂Tensor X₂ X₃
inst✝⁹ : X₁.HasGoodTensorTensor₂₃ X₂ X₃
inst✝⁸ : X₁.HasGoodTensor₁₂Tensor (tensorObj X₂ X₃) X₄
inst✝⁷ : X₁.HasGoodTensorTensor₂₃ (tensorObj X₂ X₃) X₄
inst✝⁶ : X₂.HasGoodTensor₁₂Tensor X₃ X₄
inst✝⁵ : X₂.HasGoodTensorTensor₂₃ X₃ X₄
inst✝⁴ : (tensorObj X₁ X₂).HasGoodTensor₁₂Tensor X₃ X₄
inst✝³ : (tensorObj X₁ X₂).HasGoodTensorTensor₂₃ X₃ X₄
inst✝² : X₁.HasGoodTensor₁₂Tensor X₂ (tensorObj X₃ X₄)
inst✝¹ : X₁.HasGoodTensorTensor₂₃ X₂ (tensorObj X₃ X₄)
inst✝ : X₁.HasTensor₄ObjExt X₂ X₃ X₄
⊢ tensorHom (associator X₁ X₂ X₃).hom (𝟙 X₄) ≫
      (associator X₁ (tensorObj X₂ X₃) X₄).hom ≫ tensorHom (𝟙 X₁) (associator X₂ X₃ X₄).hom =
    (associator (tensorObj X₁ X₂) X₃ X₄).hom ≫ (associator X₁ X₂ (tensorObj X₃ X₄)).hom
state_after: no goals
tactic: rw [← cancel_epi (associator (tensorObj X₁ X₂) X₃ X₄).inv,
    ← cancel_epi (associator X₁ X₂ (tensorObj X₃ X₄)).inv, Iso.inv_hom_id_assoc,
    Iso.inv_hom_id, ← pentagon_inv_assoc, ← tensor_comp_assoc, id_comp, Iso.inv_hom_id,
    tensor_id, id_comp, Iso.inv_hom_id_assoc, ← tensor_comp, id_comp, Iso.inv_hom_id,
    tensor_id]
Theorem: RCLike.abs_re_le_norm
File: Mathlib/Analysis/RCLike/Basic.lean

Proof steps:
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z✝ z : K
⊢ |re z| ≤ ‖z‖
state_after: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z✝ z : K
⊢ re z * re z ≤ normSq z
tactic: rw [mul_self_le_mul_self_iff (abs_nonneg _) (norm_nonneg _), abs_mul_abs_self, mul_self_norm]
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z✝ z : K
⊢ re z * re z ≤ normSq z
state_after: no goals
tactic: apply re_sq_le_normSq
Theorem: Polynomial.isUnit_map
File: Mathlib/Algebra/Polynomial/FieldDivision.lean

Proof steps:
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝¹ : Field R
p q : R[X]
inst✝ : Field k
f : R →+* k
⊢ IsUnit (map f p) ↔ IsUnit p
state_after: no goals
tactic: simp_rw [isUnit_iff_degree_eq_zero, degree_map]
Theorem: AlgebraicTopology.DoldKan.map_Q
File: Mathlib/AlgebraicTopology/DoldKan/Projections.lean

Proof steps:
state_before: C : Type u_1
inst✝⁴ : Category.{u_4, u_1} C
inst✝³ : Preadditive C
X✝ : SimplicialObject C
D : Type u_2
inst✝² : Category.{u_3, u_2} D
inst✝¹ : Preadditive D
G : C ⥤ D
inst✝ : G.Additive
X : SimplicialObject C
q n : ℕ
⊢ G.map ((Q q).f n) = (Q q).f n
state_after: C : Type u_1
inst✝⁴ : Category.{u_4, u_1} C
inst✝³ : Preadditive C
X✝ : SimplicialObject C
D : Type u_2
inst✝² : Category.{u_3, u_2} D
inst✝¹ : Preadditive D
G : C ⥤ D
inst✝ : G.Additive
X : SimplicialObject C
q n : ℕ
⊢ G.map (𝟙 (X _[n])) = 𝟙 (((whiskering C D).obj G).obj X _[n])
tactic: rw [← add_right_inj (G.map ((P q : K[X] ⟶ _).f n)), ← G.map_add, map_P G X q n, P_add_Q_f,
    P_add_Q_f]
state_before: C : Type u_1
inst✝⁴ : Category.{u_4, u_1} C
inst✝³ : Preadditive C
X✝ : SimplicialObject C
D : Type u_2
inst✝² : Category.{u_3, u_2} D
inst✝¹ : Preadditive D
G : C ⥤ D
inst✝ : G.Additive
X : SimplicialObject C
q n : ℕ
⊢ G.map (𝟙 (X _[n])) = 𝟙 (((whiskering C D).obj G).obj X _[n])
state_after: no goals
tactic: apply G.map_id
Theorem: Equiv.Perm.mem_cycleFactorsFinset_support_le
File: Mathlib/GroupTheory/Perm/Cycle/Factors.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ p f : Perm α
h : p ∈ f.cycleFactorsFinset
⊢ p.support ≤ f.support
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ p f : Perm α
h : p.IsCycle ∧ ∀ a ∈ p.support, p a = f a
⊢ p.support ≤ f.support
tactic: rw [mem_cycleFactorsFinset_iff] at h
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ p f : Perm α
h : p.IsCycle ∧ ∀ a ∈ p.support, p a = f a
⊢ p.support ≤ f.support
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ p f : Perm α
h : p.IsCycle ∧ ∀ a ∈ p.support, p a = f a
x : α
hx : x ∈ p.support
⊢ x ∈ f.support
tactic: intro x hx
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ p f : Perm α
h : p.IsCycle ∧ ∀ a ∈ p.support, p a = f a
x : α
hx : x ∈ p.support
⊢ x ∈ f.support
state_after: no goals
tactic: rwa [mem_support, ← h.right x hx, ← mem_support]
Theorem: exists_or_forall_not
File: Mathlib/Logic/Basic.lean

Proof steps:
state_before: α : Sort u_1
β : Sort u_2
p q P : α → Prop
⊢ (∃ a, P a) ∨ ∀ (a : α), ¬P a
state_after: α : Sort u_1
β : Sort u_2
p q P : α → Prop
⊢ (∃ a, P a) ∨ ¬∃ x, P x
tactic: rw [← not_exists]
state_before: α : Sort u_1
β : Sort u_2
p q P : α → Prop
⊢ (∃ a, P a) ∨ ¬∃ x, P x
state_after: no goals
tactic: exact em _
Theorem: IsRingHom.comp
File: Mathlib/Deprecated/Ring.lean

Proof steps:
state_before: α : Type u
β : Type v
inst✝² : Ring α
inst✝¹ : Ring β
f : α → β
hf✝ : IsRingHom f
x✝ y✝ : α
hf : IsRingHom f
γ : Type u_1
inst✝ : Ring γ
g : β → γ
hg : IsRingHom g
x y : α
⊢ (g ∘ f) (x + y) = (g ∘ f) x + (g ∘ f) y
state_after: no goals
tactic: simp only [Function.comp_apply, map_add hf, map_add hg]
state_before: α : Type u
β : Type v
inst✝² : Ring α
inst✝¹ : Ring β
f : α → β
hf✝ : IsRingHom f
x✝ y✝ : α
hf : IsRingHom f
γ : Type u_1
inst✝ : Ring γ
g : β → γ
hg : IsRingHom g
x y : α
⊢ (g ∘ f) (x * y) = (g ∘ f) x * (g ∘ f) y
state_after: no goals
tactic: simp only [Function.comp_apply, map_mul hf, map_mul hg]
state_before: α : Type u
β : Type v
inst✝² : Ring α
inst✝¹ : Ring β
f : α → β
hf✝ : IsRingHom f
x y : α
hf : IsRingHom f
γ : Type u_1
inst✝ : Ring γ
g : β → γ
hg : IsRingHom g
⊢ (g ∘ f) 1 = 1
state_after: no goals
tactic: simp only [Function.comp_apply, map_one hf, map_one hg]