ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: InnerProductGeometry.angle_smul_smul
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean

Proof steps:
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x✝ y✝ : V
c : ℝ
hc : c ≠ 0
x y : V
⊢ angle (c • x) (c • y) = angle x y
state_after: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x✝ y✝ : V
c : ℝ
hc : c ≠ 0
x y : V
this : c * c ≠ 0
⊢ angle (c • x) (c • y) = angle x y
tactic: have : c * c ≠ 0 := mul_ne_zero hc hc
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x✝ y✝ : V
c : ℝ
hc : c ≠ 0
x y : V
this : c * c ≠ 0
⊢ angle (c • x) (c • y) = angle x y
state_after: no goals
tactic: rw [angle, angle, real_inner_smul_left, inner_smul_right, norm_smul, norm_smul, Real.norm_eq_abs,
    mul_mul_mul_comm _ ‖x‖, abs_mul_abs_self, ← mul_assoc c c, mul_div_mul_left _ _ this]
Theorem: RingHom.ker_coe_equiv
File: Mathlib/RingTheory/Ideal/Maps.lean

Proof steps:
state_before: R : Type u
S : Type v
T : Type w
F : Type u_1
inst✝² : Ring R
inst✝¹ : Semiring S
inst✝ : FunLike F R S
rc : RingHomClass F R S
f✝ : F
f : R ≃+* S
⊢ ker ↑f = ⊥
state_after: no goals
tactic: simpa only [← injective_iff_ker_eq_bot] using EquivLike.injective f
Theorem: List.mem_getLast?_eq_getLast
File: Mathlib/Data/List/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
x : α
hx : x ∈ [].getLast?
⊢ False
state_after: no goals
tactic: simp at hx
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a x : α
hx : x ∈ [a].getLast?
⊢ a = x
state_after: no goals
tactic: simpa using hx
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a b : α
l : List α
x : α
hx : x ∈ (a :: b :: l).getLast?
⊢ ∃ h, x = (a :: b :: l).getLast h
state_after: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a b : α
l : List α
x : α
hx : x ∈ (b :: l).getLast?
⊢ ∃ h, x = (a :: b :: l).getLast h
tactic: rw [getLast?_cons_cons] at hx
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a b : α
l : List α
x : α
hx : x ∈ (b :: l).getLast?
⊢ ∃ h, x = (a :: b :: l).getLast h
state_after: case intro
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a b : α
l : List α
x : α
hx : x ∈ (b :: l).getLast?
w✝ : b :: l ≠ []
h₂ : x = (b :: l).getLast w✝
⊢ ∃ h, x = (a :: b :: l).getLast h
tactic: rcases mem_getLast?_eq_getLast hx with ⟨_, h₂⟩
state_before: case intro
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a b : α
l : List α
x : α
hx : x ∈ (b :: l).getLast?
w✝ : b :: l ≠ []
h₂ : x = (b :: l).getLast w✝
⊢ ∃ h, x = (a :: b :: l).getLast h
state_after: case h
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a b : α
l : List α
x : α
hx : x ∈ (b :: l).getLast?
w✝ : b :: l ≠ []
h₂ : x = (b :: l).getLast w✝
⊢ x = (a :: b :: l).getLast ⋯
tactic: use cons_ne_nil _ _
state_before: case h
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a b : α
l : List α
x : α
hx : x ∈ (b :: l).getLast?
w✝ : b :: l ≠ []
h₂ : x = (b :: l).getLast w✝
⊢ x = (a :: b :: l).getLast ⋯
state_after: no goals
tactic: assumption
Theorem: Nat.card_fintypeIco
File: Mathlib/Order/Interval/Finset/Nat.lean

Proof steps:
state_before: a b c : ℕ
⊢ Fintype.card ↑(Set.Ico a b) = b - a
state_after: no goals
tactic: rw [Fintype.card_ofFinset, card_Ico]
Theorem: MeasureTheory.measure_lt_top_of_isCompact_of_isAddLeftInvariant
File: Mathlib/MeasureTheory/Group/Measure.lean

Proof steps:
state_before: 𝕜 : Type u_1
G : Type u_2
H : Type u_3
inst✝⁶ : MeasurableSpace G
inst✝⁵ : MeasurableSpace H
inst✝⁴ : TopologicalSpace G
inst✝³ : BorelSpace G
μ : Measure G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : μ.IsMulLeftInvariant
U : Set G
hU : IsOpen U
h'U : U.Nonempty
h : μ U ≠ ⊤
K : Set G
hK : IsCompact K
⊢ μ K < ⊤
state_after: 𝕜 : Type u_1
G : Type u_2
H : Type u_3
inst✝⁶ : MeasurableSpace G
inst✝⁵ : MeasurableSpace H
inst✝⁴ : TopologicalSpace G
inst✝³ : BorelSpace G
μ : Measure G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : μ.IsMulLeftInvariant
U : Set G
hU : IsOpen U
h'U : (interior U).Nonempty
h : μ U ≠ ⊤
K : Set G
hK : IsCompact K
⊢ μ K < ⊤
tactic: rw [← hU.interior_eq] at h'U
state_before: 𝕜 : Type u_1
G : Type u_2
H : Type u_3
inst✝⁶ : MeasurableSpace G
inst✝⁵ : MeasurableSpace H
inst✝⁴ : TopologicalSpace G
inst✝³ : BorelSpace G
μ : Measure G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : μ.IsMulLeftInvariant
U : Set G
hU : IsOpen U
h'U : (interior U).Nonempty
h : μ U ≠ ⊤
K : Set G
hK : IsCompact K
⊢ μ K < ⊤
state_after: case intro
𝕜 : Type u_1
G : Type u_2
H : Type u_3
inst✝⁶ : MeasurableSpace G
inst✝⁵ : MeasurableSpace H
inst✝⁴ : TopologicalSpace G
inst✝³ : BorelSpace G
μ : Measure G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : μ.IsMulLeftInvariant
U : Set G
hU : IsOpen U
h'U : (interior U).Nonempty
h : μ U ≠ ⊤
K : Set G
hK : IsCompact K
t : Finset G
hKt : K ⊆ ⋃ g ∈ t, (fun h => g * h) ⁻¹' U
⊢ μ K < ⊤
tactic: obtain ⟨t, hKt⟩ : ∃ t : Finset G, K ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h : G => g * h) ⁻¹' U :=
    compact_covered_by_mul_left_translates hK h'U
state_before: case intro
𝕜 : Type u_1
G : Type u_2
H : Type u_3
inst✝⁶ : MeasurableSpace G
inst✝⁵ : MeasurableSpace H
inst✝⁴ : TopologicalSpace G
inst✝³ : BorelSpace G
μ : Measure G
inst✝² : Group G
inst✝¹ : TopologicalGroup G
inst✝ : μ.IsMulLeftInvariant
U : Set G
hU : IsOpen U
h'U : (interior U).Nonempty
h : μ U ≠ ⊤
K : Set G
hK : IsCompact K
t : Finset G
hKt : K ⊆ ⋃ g ∈ t, (fun h => g * h) ⁻¹' U
⊢ μ K < ⊤
state_after: no goals
tactic: calc
    μ K ≤ μ (⋃ (g : G) (_ : g ∈ t), (fun h : G => g * h) ⁻¹' U) := measure_mono hKt
    _ ≤ ∑ g ∈ t, μ ((fun h : G => g * h) ⁻¹' U) := measure_biUnion_finset_le _ _
    _ = Finset.card t * μ U := by simp only [measure_preimage_mul, Finset.sum_const, nsmul_eq_mul]
    _ < ∞ := ENNReal.mul_lt_top (ENNReal.natCast_ne_top _) h
Theorem: LinearOrderedField.smul_Ioo
File: Mathlib/Algebra/Order/Pointwise.lean

Proof steps:
state_before: α : Type u_1
K : Type u_2
inst✝ : LinearOrderedField K
a b r : K
hr : 0 < r
⊢ r • Ioo a b = Ioo (r • a) (r • b)
state_after: case h
α : Type u_1
K : Type u_2
inst✝ : LinearOrderedField K
a b r : K
hr : 0 < r
x : K
⊢ x ∈ r • Ioo a b ↔ x ∈ Ioo (r • a) (r • b)
tactic: ext x
state_before: case h
α : Type u_1
K : Type u_2
inst✝ : LinearOrderedField K
a b r : K
hr : 0 < r
x : K
⊢ x ∈ r • Ioo a b ↔ x ∈ Ioo (r • a) (r • b)
state_after: case h
α : Type u_1
K : Type u_2
inst✝ : LinearOrderedField K
a b r : K
hr : 0 < r
x : K
⊢ (∃ y, (a < y ∧ y < b) ∧ r * y = x) ↔ r * a < x ∧ x < r * b
tactic: simp only [mem_smul_set, smul_eq_mul, mem_Ioo]
state_before: case h
α : Type u_1
K : Type u_2
inst✝ : LinearOrderedField K
a b r : K
hr : 0 < r
x : K
⊢ (∃ y, (a < y ∧ y < b) ∧ r * y = x) ↔ r * a < x ∧ x < r * b
state_after: case h.mp
α : Type u_1
K : Type u_2
inst✝ : LinearOrderedField K
a b r : K
hr : 0 < r
x : K
⊢ (∃ y, (a < y ∧ y < b) ∧ r * y = x) → r * a < x ∧ x < r * b

case h.mpr
α : Type u_1
K : Type u_2
inst✝ : LinearOrderedField K
a b r : K
hr : 0 < r
x : K
⊢ r * a < x ∧ x < r * b → ∃ y, (a < y ∧ y < b) ∧ r * y = x
tactic: constructor
Theorem: Real.rpow_sub_one
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

Proof steps:
state_before: x✝ y✝ z : ℝ
n : ℕ
x : ℝ
hx : x ≠ 0
y : ℝ
⊢ x ^ (y - 1) = x ^ y / x
state_after: no goals
tactic: simpa using rpow_sub_nat hx y 1
Theorem: CategoryTheory.Localization.Construction.objEquiv_symm_apply
File: Mathlib/CategoryTheory/Localization/Construction.lean

Proof steps:
state_before: C : Type uC
inst✝¹ : Category.{uC', uC} C
W : MorphismProperty C
D : Type uD
inst✝ : Category.{uD', uD} D
G : C ⥤ D
hG : W.IsInvertedBy G
⊢ Function.RightInverse (fun X => X.as.obj) W.Q.obj
state_after: case mk.mk
C : Type uC
inst✝¹ : Category.{uC', uC} C
W : MorphismProperty C
D : Type uD
inst✝ : Category.{uD', uD} D
G : C ⥤ D
hG : W.IsInvertedBy G
X : C
⊢ W.Q.obj ((fun X => X.as.obj) { as := { obj := X } }) = { as := { obj := X } }
tactic: rintro ⟨⟨X⟩⟩
state_before: case mk.mk
C : Type uC
inst✝¹ : Category.{uC', uC} C
W : MorphismProperty C
D : Type uD
inst✝ : Category.{uD', uD} D
G : C ⥤ D
hG : W.IsInvertedBy G
X : C
⊢ W.Q.obj ((fun X => X.as.obj) { as := { obj := X } }) = { as := { obj := X } }
state_after: no goals
tactic: rfl
Theorem: RCLike.norm_sq_re_conj_add
File: Mathlib/Analysis/RCLike/Basic.lean

Proof steps:
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z x : K
⊢ ‖(starRingEnd K) x + x‖ ^ 2 = re ((starRingEnd K) x + x) ^ 2
state_after: no goals
tactic: rw [add_comm, norm_sq_re_add_conj]
Theorem: List.IsSuffix.filter
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

Proof steps:
state_before: α : Type u_1
p : α → Bool
l₁ l₂ : List α
h : l₁ <:+ l₂
⊢ List.filter p l₁ <:+ List.filter p l₂
state_after: case intro
α : Type u_1
p : α → Bool
l₁ xs : List α
⊢ List.filter p l₁ <:+ List.filter p (xs ++ l₁)
tactic: obtain ⟨xs, rfl⟩ := h
state_before: case intro
α : Type u_1
p : α → Bool
l₁ xs : List α
⊢ List.filter p l₁ <:+ List.filter p (xs ++ l₁)
state_after: case intro
α : Type u_1
p : α → Bool
l₁ xs : List α
⊢ List.filter p l₁ <:+ List.filter p xs ++ List.filter p l₁
tactic: rw [filter_append]
state_before: case intro
α : Type u_1
p : α → Bool
l₁ xs : List α
⊢ List.filter p l₁ <:+ List.filter p xs ++ List.filter p l₁
state_after: no goals
tactic: apply suffix_append
Theorem: Nat.clog_pow
File: Mathlib/Data/Nat/Log.lean

Proof steps:
state_before: b x : ℕ
hb : 1 < b
z : ℕ
⊢ clog b (b ^ x) ≤ z ↔ x ≤ z
state_after: no goals
tactic: rw [← le_pow_iff_clog_le hb, Nat.pow_le_pow_iff_right hb]
Theorem: Prod.mk.inj_left
File: Mathlib/Data/Prod/Basic.lean

Proof steps:
state_before: α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
α : Type u_5
β : Type u_6
a : α
⊢ Function.Injective (mk a)
state_after: α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
α : Type u_5
β : Type u_6
a : α
b₁ b₂ : β
h : (a, b₁) = (a, b₂)
⊢ b₁ = b₂
tactic: intro b₁ b₂ h
state_before: α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
δ : Type u_4
α : Type u_5
β : Type u_6
a : α
b₁ b₂ : β
h : (a, b₁) = (a, b₂)
⊢ b₁ = b₂
state_after: no goals
tactic: simpa only [true_and, Prod.mk.inj_iff, eq_self_iff_true] using h
Theorem: FiniteDimensional.lt_rank_of_lt_finrank
File: Mathlib/LinearAlgebra/Dimension/Finrank.lean

Proof steps:
state_before: R : Type u
M : Type v
N : Type w
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
n : ℕ
h : n < finrank R M
⊢ ↑n < Module.rank R M
state_after: case hc
R : Type u
M : Type v
N : Type w
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
n : ℕ
h : n < finrank R M
⊢ ↑n < ℵ₀

case hd
R : Type u
M : Type v
N : Type w
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
n : ℕ
h : n < finrank R M
⊢ Module.rank R M < ℵ₀
tactic: rwa [← Cardinal.toNat_lt_iff_lt_of_lt_aleph0, toNat_natCast]
Theorem: NonUnitalStarAlgebra.coe_bot
File: Mathlib/Algebra/Star/NonUnitalSubalgebra.lean

Proof steps:
state_before: F : Type v'
R' : Type u'
R : Type u
A : Type v
B : Type w
C : Type w'
inst✝¹⁶ : CommSemiring R
inst✝¹⁵ : StarRing R
inst✝¹⁴ : NonUnitalSemiring A
inst✝¹³ : StarRing A
inst✝¹² : Module R A
inst✝¹¹ : IsScalarTower R A A
inst✝¹⁰ : SMulCommClass R A A
inst✝⁹ : StarModule R A
inst✝⁸ : NonUnitalSemiring B
inst✝⁷ : StarRing B
inst✝⁶ : Module R B
inst✝⁵ : IsScalarTower R B B
inst✝⁴ : SMulCommClass R B B
inst✝³ : StarModule R B
inst✝² : FunLike F A B
inst✝¹ : NonUnitalAlgHomClass F R A B
inst✝ : NonUnitalStarAlgHomClass F R A B
⊢ ↑⊥ = {0}
state_after: no goals
tactic: simp only [Set.ext_iff, NonUnitalStarAlgebra.mem_bot, SetLike.mem_coe, Set.mem_singleton_iff,
    iff_self_iff, forall_const]
Theorem: Multiset.support_sum_eq
File: Mathlib/Data/Finsupp/BigOperators.lean

Proof steps:
state_before: ι : Type u_1
M : Type u_2
inst✝¹ : DecidableEq ι
inst✝ : AddCommMonoid M
s : Multiset (ι →₀ M)
hs : Pairwise (_root_.Disjoint on Finsupp.support) s
⊢ s.sum.support = (map Finsupp.support s).sup
state_after: case h
ι : Type u_1
M : Type u_2
inst✝¹ : DecidableEq ι
inst✝ : AddCommMonoid M
a : List (ι →₀ M)
hs : Pairwise (_root_.Disjoint on Finsupp.support) (Quot.mk Setoid.r a)
⊢ (sum (Quot.mk Setoid.r a)).support = (map Finsupp.support (Quot.mk Setoid.r a)).sup
tactic: induction' s using Quot.inductionOn with a
state_before: case h
ι : Type u_1
M : Type u_2
inst✝¹ : DecidableEq ι
inst✝ : AddCommMonoid M
a : List (ι →₀ M)
hs : Pairwise (_root_.Disjoint on Finsupp.support) (Quot.mk Setoid.r a)
⊢ (sum (Quot.mk Setoid.r a)).support = (map Finsupp.support (Quot.mk Setoid.r a)).sup
state_after: case h.intro.intro
ι : Type u_1
M : Type u_2
inst✝¹ : DecidableEq ι
inst✝ : AddCommMonoid M
a l : List (ι →₀ M)
hl : Quot.mk Setoid.r a = ↑l
hd : List.Pairwise (_root_.Disjoint on Finsupp.support) l
⊢ (sum (Quot.mk Setoid.r a)).support = (map Finsupp.support (Quot.mk Setoid.r a)).sup
tactic: obtain ⟨l, hl, hd⟩ := hs
state_before: case h.intro.intro
ι : Type u_1
M : Type u_2
inst✝¹ : DecidableEq ι
inst✝ : AddCommMonoid M
a l : List (ι →₀ M)
hl : Quot.mk Setoid.r a = ↑l
hd : List.Pairwise (_root_.Disjoint on Finsupp.support) l
⊢ List.Pairwise (_root_.Disjoint on Finsupp.support) a
state_after: case h.intro.intro
ι : Type u_1
M : Type u_2
inst✝¹ : DecidableEq ι
inst✝ : AddCommMonoid M
a l : List (ι →₀ M)
hd : List.Pairwise (_root_.Disjoint on Finsupp.support) l
hl : a.Perm l
⊢ List.Pairwise (_root_.Disjoint on Finsupp.support) a
tactic: simp only [Multiset.quot_mk_to_coe'', Multiset.map_coe, Multiset.coe_eq_coe] at hl
state_before: case h.intro.intro
ι : Type u_1
M : Type u_2
inst✝¹ : DecidableEq ι
inst✝ : AddCommMonoid M
a l : List (ι →₀ M)
hd : List.Pairwise (_root_.Disjoint on Finsupp.support) l
hl : a.Perm l
⊢ List.Pairwise (_root_.Disjoint on Finsupp.support) a
state_after: no goals
tactic: exact hl.symm.pairwise hd fun h ↦ _root_.Disjoint.symm h
Theorem: iterateFrobenius_add_apply
File: Mathlib/Algebra/CharP/ExpChar.lean

Proof steps:
state_before: R : Type u
inst✝³ : CommSemiring R
S : Type u_1
inst✝² : CommSemiring S
f : R →* S
g : R →+* S
p m n : ℕ
inst✝¹ : ExpChar R p
inst✝ : ExpChar S p
x y : R
⊢ (iterateFrobenius R p (m + n)) x = (iterateFrobenius R p m) ((iterateFrobenius R p n) x)
state_after: no goals
tactic: simp_rw [iterateFrobenius_def, add_comm m n, pow_add, pow_mul]
Theorem: VectorPrebundle.mk_coordChange
File: Mathlib/Topology/VectorBundle/Basic.lean

Proof steps:
state_before: R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
e e' : Pretrivialization F TotalSpace.proj
he : e ∈ a.pretrivializationAtlas
he' : e' ∈ a.pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
⊢ (b, (a.coordChange he he' b) v) = ↑e' { proj := b, snd := e.symm b v }
state_after: case a
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
e e' : Pretrivialization F TotalSpace.proj
he : e ∈ a.pretrivializationAtlas
he' : e' ∈ a.pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
⊢ (b, (a.coordChange he he' b) v).1 = (↑e' { proj := b, snd := e.symm b v }).1

case a
R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁶ : NontriviallyNormedField R
inst✝⁵ : (x : B) → AddCommMonoid (E x)
inst✝⁴ : (x : B) → Module R (E x)
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace R F
inst✝¹ : TopologicalSpace B
inst✝ : (x : B) → TopologicalSpace (E x)
a : VectorPrebundle R F E
e e' : Pretrivialization F TotalSpace.proj
he : e ∈ a.pretrivializationAtlas
he' : e' ∈ a.pretrivializationAtlas
b : B
hb : b ∈ e.baseSet ∩ e'.baseSet
v : F
⊢ (b, (a.coordChange he he' b) v).2 = (↑e' { proj := b, snd := e.symm b v }).2
tactic: ext
Theorem: zmultiples_equiv_zmultiples_apply
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
inst✝ : Finite G
x y : G
h : orderOf x = orderOf y
n : ℕ
⊢ (zpowersEquivZPowers h) ⟨x ^ n, ⋯⟩ = ⟨y ^ n, ⋯⟩
state_after: G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Group G
inst✝ : Finite G
x y : G
h : orderOf x = orderOf y
n : ℕ
⊢ (finCongr h) ⟨n % orderOf x, ⋯⟩ = ⟨n % orderOf y, ⋯⟩
tactic: rw [zpowersEquivZPowers, Equiv.trans_apply, Equiv.trans_apply, finEquivZPowers_symm_apply, ←
    Equiv.eq_symm_apply, finEquivZPowers_symm_apply]
state_before: G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Group G
inst✝ : Finite G
x y : G
h : orderOf x = orderOf y
n : ℕ
⊢ (finCongr h) ⟨n % orderOf x, ⋯⟩ = ⟨n % orderOf y, ⋯⟩
state_after: no goals
tactic: simp [h]
Theorem: CategoryTheory.Limits.PreservesPullback.iso_hom_fst
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.fst (G.map f) (G.map g) = G.map (pullback.fst f g)
state_after: no goals
tactic: simp [PreservesPullback.iso]
Theorem: ENNReal.rpow_pos_of_nonneg
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

Proof steps:
state_before: p : ℝ
x : ℝ≥0∞
hx_pos : 0 < x
hp_nonneg : 0 ≤ p
⊢ 0 < x ^ p
state_after: case pos
p : ℝ
x : ℝ≥0∞
hx_pos : 0 < x
hp_nonneg : 0 ≤ p
hp_zero : p = 0
⊢ 0 < x ^ p

case neg
p : ℝ
x : ℝ≥0∞
hx_pos : 0 < x
hp_nonneg : 0 ≤ p
hp_zero : ¬p = 0
⊢ 0 < x ^ p
tactic: by_cases hp_zero : p = 0
Theorem: Multipliable.vanishing
File: Mathlib/Topology/Algebra/InfiniteSum/Group.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
G : Type u_5
inst✝² : TopologicalSpace G
inst✝¹ : CommGroup G
inst✝ : TopologicalGroup G
f : α → G
hf : Multipliable f
e : Set G
he : e ∈ 𝓝 1
⊢ ∃ s, ∀ (t : Finset α), Disjoint t s → ∏ k ∈ t, f k ∈ e
state_after: no goals
tactic: classical
  letI : UniformSpace G := TopologicalGroup.toUniformSpace G
  have : UniformGroup G := comm_topologicalGroup_is_uniform
  exact cauchySeq_finset_iff_prod_vanishing.1 hf.hasProd.cauchySeq e he
Theorem: Fin.insertNth_apply_same
File: Mathlib/Data/Fin/Tuple/Basic.lean

Proof steps:
state_before: m n : ℕ
α : Fin (n + 1) → Type u
β : Type v
i : Fin (n + 1)
x : α i
p : (j : Fin n) → α (i.succAbove j)
⊢ i.insertNth x p i = x
state_after: no goals
tactic: simp [insertNth, succAboveCases]
Theorem: Matrix.transpose_mul
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✝² : AddCommMonoid α
inst✝¹ : CommSemigroup α
inst✝ : Fintype n
M : Matrix m n α
N : Matrix n l α
⊢ (M * N)ᵀ = Nᵀ * Mᵀ
state_after: case a
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✝² : AddCommMonoid α
inst✝¹ : CommSemigroup α
inst✝ : Fintype n
M : Matrix m n α
N : Matrix n l α
i✝ : l
j✝ : m
⊢ (M * N)ᵀ i✝ j✝ = (Nᵀ * Mᵀ) i✝ j✝
tactic: ext
state_before: case a
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✝² : AddCommMonoid α
inst✝¹ : CommSemigroup α
inst✝ : Fintype n
M : Matrix m n α
N : Matrix n l α
i✝ : l
j✝ : m
⊢ (M * N)ᵀ i✝ j✝ = (Nᵀ * Mᵀ) i✝ j✝
state_after: no goals
tactic: apply dotProduct_comm
Theorem: Monotone.csInf_image_le
File: Mathlib/Order/ConditionallyCompleteLattice/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : Preorder α
inst✝ : ConditionallyCompleteLattice β
f : α → β
h_mono : Monotone f
s : Set α
c : α
hcs : c ∈ s
h_bdd : BddBelow s
⊢ sInf (f '' s) ≤ f c
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : Preorder α
inst✝ : ConditionallyCompleteLattice β
f : α → β
h_mono : Monotone f
s : Set α
c : α
hcs : c ∈ s
h_bdd : BddBelow s
f' : αᵒᵈ → βᵒᵈ := f
⊢ sInf (f '' s) ≤ f c
tactic: let f' : αᵒᵈ → βᵒᵈ := f
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : Preorder α
inst✝ : ConditionallyCompleteLattice β
f : α → β
h_mono : Monotone f
s : Set α
c : α
hcs : c ∈ s
h_bdd : BddBelow s
f' : αᵒᵈ → βᵒᵈ := f
⊢ sInf (f '' s) ≤ f c
state_after: no goals
tactic: exact le_csSup_image (α := αᵒᵈ) (β := βᵒᵈ)
    (show Monotone f' from fun x y hxy => h_mono hxy) hcs h_bdd
Theorem: LieModule.toEnd_lie
File: Mathlib/Algebra/Lie/OfAssociative.lean

Proof steps:
state_before: R : Type u
L : Type v
M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
x y : L
z : M
⊢ (φ x) ⁅y, z⁆ = ⁅((ad R L) x) y, z⁆ + ⁅y, (φ x) z⁆
state_after: no goals
tactic: simp
Theorem: Prop.compl_singleton
File: Mathlib/Data/Set/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
s t u : Set α
f : α → β
p q : Prop
⊢ q ∈ {p}ᶜ ↔ q ∈ {¬p}
state_after: no goals
tactic: simpa [@Iff.comm q] using not_iff
Theorem: Finset.right_eq_union
File: Mathlib/Data/Finset/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s s₁ s₂ t t₁ t₂ u v : Finset α
a b : α
⊢ s = t ∪ s ↔ t ⊆ s
state_after: no goals
tactic: rw [eq_comm, union_eq_right]
Theorem: Seminorm.isBounded_const
File: Mathlib/Analysis/LocallyConvex/WithSeminorms.lean

Proof steps:
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι'✝ : Type u_9
inst✝⁷ : NormedField 𝕜
inst✝⁶ : AddCommGroup E
inst✝⁵ : Module 𝕜 E
inst✝⁴ : NormedField 𝕜₂
inst✝³ : AddCommGroup F
inst✝² : Module 𝕜₂ F
σ₁₂ : 𝕜 →+* 𝕜₂
inst✝¹ : RingHomIsometric σ₁₂
ι' : Type u_10
inst✝ : Nonempty ι'
p : ι → Seminorm 𝕜 E
q : Seminorm 𝕜₂ F
f : E →ₛₗ[σ₁₂] F
⊢ IsBounded p (fun x => q) f ↔ ∃ s C, q.comp f ≤ C • s.sup p
state_after: no goals
tactic: simp only [IsBounded, forall_const]
Theorem: Finset.coe_nsmul
File: Mathlib/Data/Finset/Pointwise.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : Monoid α
s✝ t : Finset α
a : α
m n✝ : ℕ
s : Finset α
n : ℕ
⊢ ↑(s ^ n) = ↑s ^ n
state_after: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : Monoid α
s✝ t : Finset α
a : α
m n✝ : ℕ
s : Finset α
n : ℕ
⊢ ↑(npowRec n s) = ↑s ^ n
tactic: change ↑(npowRec n s) = (s : Set α) ^ n
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : Monoid α
s✝ t : Finset α
a : α
m n✝ : ℕ
s : Finset α
n : ℕ
⊢ ↑(npowRec n s) = ↑s ^ n
state_after: case zero
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : Monoid α
s✝ t : Finset α
a : α
m n : ℕ
s : Finset α
⊢ ↑(npowRec 0 s) = ↑s ^ 0

case succ
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : Monoid α
s✝ t : Finset α
a : α
m n✝ : ℕ
s : Finset α
n : ℕ
ih : ↑(npowRec n s) = ↑s ^ n
⊢ ↑(npowRec (n + 1) s) = ↑s ^ (n + 1)
tactic: induction' n with n ih
Theorem: TopCat.openEmbedding_iff_isIso_comp'
File: Mathlib/Topology/Category/TopCat/Basic.lean

Proof steps:
state_before: X Y Z : TopCat
f : X ⟶ Y
g : Y ⟶ Z
inst✝ : IsIso f
⊢ OpenEmbedding ((forget TopCat).map f ≫ (forget TopCat).map g) ↔ OpenEmbedding ⇑g
state_after: X Y Z : TopCat
f : X ⟶ Y
g : Y ⟶ Z
inst✝ : IsIso f
⊢ OpenEmbedding ((forget TopCat).map (f ≫ g)) ↔ OpenEmbedding ⇑g
tactic: simp only [← Functor.map_comp]
state_before: X Y Z : TopCat
f : X ⟶ Y
g : Y ⟶ Z
inst✝ : IsIso f
⊢ OpenEmbedding ((forget TopCat).map (f ≫ g)) ↔ OpenEmbedding ⇑g
state_after: no goals
tactic: exact openEmbedding_iff_isIso_comp f g