ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: Ordinal.eq_enumOrd
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

Proof steps:
state_before: S : Set Ordinal.{u}
f : Ordinal.{u} → Ordinal.{u}
hS : Unbounded (fun x x_1 => x < x_1) S
⊢ StrictMono f ∧ range f = S ↔ f = enumOrd S
state_after: case mp
S : Set Ordinal.{u}
f : Ordinal.{u} → Ordinal.{u}
hS : Unbounded (fun x x_1 => x < x_1) S
⊢ StrictMono f ∧ range f = S → f = enumOrd S

case mpr
S : Set Ordinal.{u}
f : Ordinal.{u} → Ordinal.{u}
hS : Unbounded (fun x x_1 => x < x_1) S
⊢ f = enumOrd S → StrictMono f ∧ range f = S
tactic: constructor
Theorem: Nat.totient_mul_prod_primeFactors
File: Mathlib/Data/Nat/Totient.lean

Proof steps:
state_before: n : ℕ
⊢ φ n * ∏ p ∈ n.primeFactors, p = n * ∏ p ∈ n.primeFactors, (p - 1)
state_after: case pos
n : ℕ
hn : n = 0
⊢ φ n * ∏ p ∈ n.primeFactors, p = n * ∏ p ∈ n.primeFactors, (p - 1)

case neg
n : ℕ
hn : ¬n = 0
⊢ φ n * ∏ p ∈ n.primeFactors, p = n * ∏ p ∈ n.primeFactors, (p - 1)
tactic: by_cases hn : n = 0
state_before: case neg
n : ℕ
hn : ¬n = 0
⊢ φ n * ∏ p ∈ n.primeFactors, p = n * ∏ p ∈ n.primeFactors, (p - 1)
state_after: case neg
n : ℕ
hn : ¬n = 0
⊢ (n.factorization.prod fun p k => p ^ (k - 1) * (p - 1)) * ∏ p ∈ n.primeFactors, p = n * ∏ p ∈ n.primeFactors, (p - 1)
tactic: rw [totient_eq_prod_factorization hn]
state_before: case neg
n : ℕ
hn : ¬n = 0
⊢ (n.factorization.prod fun p k => p ^ (k - 1) * (p - 1)) * ∏ p ∈ n.primeFactors, p = n * ∏ p ∈ n.primeFactors, (p - 1)
state_after: case neg
n : ℕ
hn : ¬n = 0
⊢ (n.factorization.prod fun p k => p ^ (k - 1) * (p - 1)) * ∏ p ∈ n.primeFactors, p =
    (n.factorization.prod fun x x_1 => x ^ x_1) * ∏ p ∈ n.primeFactors, (p - 1)
tactic: nth_rw 3 [← factorization_prod_pow_eq_self hn]
state_before: case neg
n : ℕ
hn : ¬n = 0
⊢ (n.factorization.prod fun p k => p ^ (k - 1) * (p - 1)) * ∏ p ∈ n.primeFactors, p =
    (n.factorization.prod fun x x_1 => x ^ x_1) * ∏ p ∈ n.primeFactors, (p - 1)
state_after: case neg
n : ℕ
hn : ¬n = 0
⊢ (n.factorization.prod fun a b => a ^ (b - 1) * (a - 1) * a) = n.factorization.prod fun a b => a ^ b * (a - 1)
tactic: simp only [prod_primeFactors_prod_factorization, ← Finsupp.prod_mul]
state_before: case neg
n : ℕ
hn : ¬n = 0
⊢ (n.factorization.prod fun a b => a ^ (b - 1) * (a - 1) * a) = n.factorization.prod fun a b => a ^ b * (a - 1)
state_after: case neg
n : ℕ
hn : ¬n = 0
p : ℕ
hp : p ∈ n.factorization.support
⊢ p ^ (n.factorization p - 1) * (p - 1) * p = p ^ n.factorization p * (p - 1)
tactic: refine Finsupp.prod_congr (M := ℕ) (N := ℕ) fun p hp => ?_
state_before: case neg
n : ℕ
hn : ¬n = 0
p : ℕ
hp : p ∈ n.factorization.support
⊢ p ^ (n.factorization p - 1) * (p - 1) * p = p ^ n.factorization p * (p - 1)
state_after: case neg
n : ℕ
hn : ¬n = 0
p : ℕ
hp : 0 < n.factorization p
⊢ p ^ (n.factorization p - 1) * (p - 1) * p = p ^ n.factorization p * (p - 1)
tactic: rw [Finsupp.mem_support_iff, ← zero_lt_iff] at hp
state_before: case neg
n : ℕ
hn : ¬n = 0
p : ℕ
hp : 0 < n.factorization p
⊢ p ^ (n.factorization p - 1) * (p - 1) * p = p ^ n.factorization p * (p - 1)
state_after: no goals
tactic: rw [mul_comm, ← mul_assoc, ← pow_succ', Nat.sub_one, Nat.succ_pred_eq_of_pos hp]
Theorem: one_le_pow_of_one_le'
File: Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean

Proof steps:
state_before: β : Type u_1
G : Type u_2
M : Type u_3
inst✝² : Monoid M
inst✝¹ : Preorder M
inst✝ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
x a : M
H : 1 ≤ a
⊢ 1 ≤ a ^ 0
state_after: no goals
tactic: simp
state_before: β : Type u_1
G : Type u_2
M : Type u_3
inst✝² : Monoid M
inst✝¹ : Preorder M
inst✝ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
x a : M
H : 1 ≤ a
k : ℕ
⊢ 1 ≤ a ^ (k + 1)
state_after: β : Type u_1
G : Type u_2
M : Type u_3
inst✝² : Monoid M
inst✝¹ : Preorder M
inst✝ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
x a : M
H : 1 ≤ a
k : ℕ
⊢ 1 ≤ a ^ k * a
tactic: rw [pow_succ]
state_before: β : Type u_1
G : Type u_2
M : Type u_3
inst✝² : Monoid M
inst✝¹ : Preorder M
inst✝ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
x a : M
H : 1 ≤ a
k : ℕ
⊢ 1 ≤ a ^ k * a
state_after: no goals
tactic: exact one_le_mul (one_le_pow_of_one_le' H k) H
Theorem: vsub_sub_vsub_cancel_right
File: Mathlib/Algebra/AddTorsor.lean

Proof steps:
state_before: G : Type u_1
P : Type u_2
inst✝ : AddGroup G
T : AddTorsor G P
p₁ p₂ p₃ : P
⊢ p₁ -ᵥ p₃ - (p₂ -ᵥ p₃) = p₁ -ᵥ p₂
state_after: no goals
tactic: rw [← vsub_vadd_eq_vsub_sub, vsub_vadd]
Theorem: PartialEquiv.image_source_inter_eq'
File: Mathlib/Logic/Equiv/PartialEquiv.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e : PartialEquiv α β
e' : PartialEquiv β γ
s : Set α
⊢ ↑e '' (e.source ∩ s) = e.target ∩ ↑e.symm ⁻¹' s
state_after: no goals
tactic: rw [inter_comm, e.leftInvOn.image_inter', image_source_eq_target, inter_comm]
Theorem: CategoryTheory.SemiadditiveOfBinaryBiproducts.comp_add
File: Mathlib/CategoryTheory/Preadditive/OfBiproducts.lean

Proof steps:
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasBinaryBiproducts C
X Y Z : C
f : X ⟶ Y
g h : Y ⟶ Z
⊢ f ≫ (g + h) = f ≫ g + f ≫ h
state_after: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasBinaryBiproducts C
X Y Z : C
f : X ⟶ Y
g h : Y ⟶ Z
⊢ (f ≫ biprod.lift g h) ≫ biprod.desc (𝟙 Z) (𝟙 Z) = biprod.lift (f ≫ g) (f ≫ h) ≫ biprod.desc (𝟙 Z) (𝟙 Z)
tactic: simp only [add_eq_left_addition, ← Category.assoc]
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasBinaryBiproducts C
X Y Z : C
f : X ⟶ Y
g h : Y ⟶ Z
⊢ (f ≫ biprod.lift g h) ≫ biprod.desc (𝟙 Z) (𝟙 Z) = biprod.lift (f ≫ g) (f ≫ h) ≫ biprod.desc (𝟙 Z) (𝟙 Z)
state_after: case e_a
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasBinaryBiproducts C
X Y Z : C
f : X ⟶ Y
g h : Y ⟶ Z
⊢ f ≫ biprod.lift g h = biprod.lift (f ≫ g) (f ≫ h)
tactic: congr
state_before: case e_a
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasBinaryBiproducts C
X Y Z : C
f : X ⟶ Y
g h : Y ⟶ Z
⊢ f ≫ biprod.lift g h = biprod.lift (f ≫ g) (f ≫ h)
state_after: no goals
tactic: ext <;> simp
Theorem: Finsupp.sum_mapDomain_index_inj
File: Mathlib/Data/Finsupp/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝¹ : AddCommMonoid M
v v₁ v₂ : α →₀ M
inst✝ : CommMonoid N
f : α → β
s : α →₀ M
h : β → M → N
hf : Injective f
⊢ (mapDomain f s).prod h = s.prod fun a b => h (f a) b
state_after: no goals
tactic: rw [← Function.Embedding.coeFn_mk f hf, ← embDomain_eq_mapDomain, prod_embDomain]
Theorem: OnePoint.tendsto_nhds_infty'
File: Mathlib/Topology/Compactification/OnePoint.lean

Proof steps:
state_before: X : Type u_1
inst✝ : TopologicalSpace X
s : Set (OnePoint X)
t : Set X
α : Type u_2
f : OnePoint X → α
l : Filter α
⊢ Tendsto f (𝓝 ∞) l ↔ Tendsto f (pure ∞) l ∧ Tendsto (f ∘ some) (coclosedCompact X) l
state_after: no goals
tactic: simp [nhds_infty_eq, and_comm]
Theorem: collinear_pair
File: Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean

Proof steps:
state_before: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p₁ p₂ : P
⊢ Collinear k {p₁, p₂}
state_after: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p₁ p₂ : P
⊢ ∃ p₀ v, ∀ p ∈ {p₁, p₂}, ∃ r, p = r • v +ᵥ p₀
tactic: rw [collinear_iff_exists_forall_eq_smul_vadd]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p₁ p₂ : P
⊢ ∃ p₀ v, ∀ p ∈ {p₁, p₂}, ∃ r, p = r • v +ᵥ p₀
state_after: case h
k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p₁ p₂ : P
⊢ ∀ p ∈ {p₁, p₂}, ∃ r, p = r • (p₂ -ᵥ p₁) +ᵥ p₁
tactic: use p₁, p₂ -ᵥ p₁
state_before: case h
k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p₁ p₂ : P
⊢ ∀ p ∈ {p₁, p₂}, ∃ r, p = r • (p₂ -ᵥ p₁) +ᵥ p₁
state_after: case h
k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p₁ p₂ p : P
hp : p ∈ {p₁, p₂}
⊢ ∃ r, p = r • (p₂ -ᵥ p₁) +ᵥ p₁
tactic: intro p hp
state_before: case h
k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p₁ p₂ p : P
hp : p ∈ {p₁, p₂}
⊢ ∃ r, p = r • (p₂ -ᵥ p₁) +ᵥ p₁
state_after: case h
k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p₁ p₂ p : P
hp : p = p₁ ∨ p = p₂
⊢ ∃ r, p = r • (p₂ -ᵥ p₁) +ᵥ p₁
tactic: rw [Set.mem_insert_iff, Set.mem_singleton_iff] at hp
state_before: case h
k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p₁ p₂ p : P
hp : p = p₁ ∨ p = p₂
⊢ ∃ r, p = r • (p₂ -ᵥ p₁) +ᵥ p₁
state_after: case h.inl
k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p₁ p₂ p : P
hp : p = p₁
⊢ ∃ r, p = r • (p₂ -ᵥ p₁) +ᵥ p₁

case h.inr
k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p₁ p₂ p : P
hp : p = p₂
⊢ ∃ r, p = r • (p₂ -ᵥ p₁) +ᵥ p₁
tactic: cases' hp with hp hp
Theorem: cfc_cases
File: Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Unital.lean

Proof steps:
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : MetricSpace R
inst✝⁶ : TopologicalSemiring R
inst✝⁵ : ContinuousStar R
inst✝⁴ : TopologicalSpace A
inst✝³ : Ring A
inst✝² : StarRing A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
f✝ g : R → R
a✝ : A
ha : autoParam (p a✝) _auto✝
hf : autoParam (ContinuousOn f✝ (spectrum R a✝)) _auto✝
hg : autoParam (ContinuousOn g (spectrum R a✝)) _auto✝
P : A → Prop
a : A
f : R → R
h₀ : P 0
haf :
  ∀ (hf : ContinuousOn f (spectrum R a)) (ha : p a),
    P ((cfcHom ha) { toFun := (spectrum R a).restrict f, continuous_toFun := ⋯ })
⊢ P (cfc f a)
state_after: case pos
R : Type u_1
A : Type u_2
p : A → Prop
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : MetricSpace R
inst✝⁶ : TopologicalSemiring R
inst✝⁵ : ContinuousStar R
inst✝⁴ : TopologicalSpace A
inst✝³ : Ring A
inst✝² : StarRing A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
f✝ g : R → R
a✝ : A
ha : autoParam (p a✝) _auto✝
hf : autoParam (ContinuousOn f✝ (spectrum R a✝)) _auto✝
hg : autoParam (ContinuousOn g (spectrum R a✝)) _auto✝
P : A → Prop
a : A
f : R → R
h₀ : P 0
haf :
  ∀ (hf : ContinuousOn f (spectrum R a)) (ha : p a),
    P ((cfcHom ha) { toFun := (spectrum R a).restrict f, continuous_toFun := ⋯ })
h : p a ∧ ContinuousOn f (spectrum R a)
⊢ P (cfc f a)

case neg
R : Type u_1
A : Type u_2
p : A → Prop
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : MetricSpace R
inst✝⁶ : TopologicalSemiring R
inst✝⁵ : ContinuousStar R
inst✝⁴ : TopologicalSpace A
inst✝³ : Ring A
inst✝² : StarRing A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
f✝ g : R → R
a✝ : A
ha : autoParam (p a✝) _auto✝
hf : autoParam (ContinuousOn f✝ (spectrum R a✝)) _auto✝
hg : autoParam (ContinuousOn g (spectrum R a✝)) _auto✝
P : A → Prop
a : A
f : R → R
h₀ : P 0
haf :
  ∀ (hf : ContinuousOn f (spectrum R a)) (ha : p a),
    P ((cfcHom ha) { toFun := (spectrum R a).restrict f, continuous_toFun := ⋯ })
h : ¬(p a ∧ ContinuousOn f (spectrum R a))
⊢ P (cfc f a)
tactic: by_cases h : p a ∧ ContinuousOn f (spectrum R a)
Theorem: spectrum_star_mul_self_of_isStarNormal
File: Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Basic.lean

Proof steps:
state_before: A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
⊢ spectrum ℂ (star a * a) ⊆ Set.Icc 0 ↑‖star a * a‖
state_after: case inl
A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
h✝ : Subsingleton A
⊢ spectrum ℂ (star a * a) ⊆ Set.Icc 0 ↑‖star a * a‖

case inr
A : Type u_1
inst✝⁶ : NormedRing A
inst✝⁵ : NormedAlgebra ℂ A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : StarModule ℂ A
inst✝¹ : CompleteSpace A
a : A
inst✝ : IsStarNormal a
S : StarSubalgebra ℂ A
h✝ : Nontrivial A
⊢ spectrum ℂ (star a * a) ⊆ Set.Icc 0 ↑‖star a * a‖
tactic: rcases subsingleton_or_nontrivial A with ⟨⟩
Theorem: Orientation.tan_oangle_sub_right_mul_norm_of_oangle_eq_pi_div_two
File: Mathlib/Geometry/Euclidean/Angle/Oriented/RightAngle.lean

Proof steps:
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
hd2 : Fact (finrank ℝ V = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : o.oangle x y = ↑(π / 2)
⊢ (o.oangle y (y - x)).tan * ‖y‖ = ‖x‖
state_after: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
hd2 : Fact (finrank ℝ V = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : o.oangle x y = ↑(π / 2)
hs : (o.oangle y (y - x)).sign = 1
⊢ (o.oangle y (y - x)).tan * ‖y‖ = ‖x‖
tactic: have hs : (o.oangle y (y - x)).sign = 1 := by
    rw [oangle_sign_sub_right_swap, h, Real.Angle.sign_coe_pi_div_two]
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
hd2 : Fact (finrank ℝ V = 2)
o : Orientation ℝ V (Fin 2)
x y : V
h : o.oangle x y = ↑(π / 2)
hs : (o.oangle y (y - x)).sign = 1
⊢ (o.oangle y (y - x)).tan * ‖y‖ = ‖x‖
state_after: no goals
tactic: rw [o.oangle_eq_angle_of_sign_eq_one hs, Real.Angle.tan_coe,
    InnerProductGeometry.tan_angle_sub_mul_norm_of_inner_eq_zero
      (o.inner_rev_eq_zero_of_oangle_eq_pi_div_two h)
      (Or.inl (o.right_ne_zero_of_oangle_eq_pi_div_two h))]
Theorem: MulAction.IsBlock.preimage
File: Mathlib/GroupTheory/GroupAction/Blocks.lean

Proof steps:
state_before: G : Type u_1
inst✝³ : Group G
X : Type u_2
inst✝² : MulAction G X
H : Type u_3
Y : Type u_4
inst✝¹ : Group H
inst✝ : MulAction H Y
φ : H → G
j : Y →ₑ[φ] X
B : Set X
hB : IsBlock G B
⊢ IsBlock H (⇑j ⁻¹' B)
state_after: G : Type u_1
inst✝³ : Group G
X : Type u_2
inst✝² : MulAction G X
H : Type u_3
Y : Type u_4
inst✝¹ : Group H
inst✝ : MulAction H Y
φ : H → G
j : Y →ₑ[φ] X
B : Set X
hB : IsBlock G B
⊢ ∀ (g : H), g • ⇑j ⁻¹' B = ⇑j ⁻¹' B ∨ Disjoint (g • ⇑j ⁻¹' B) (⇑j ⁻¹' B)
tactic: rw [IsBlock.def_one]
state_before: G : Type u_1
inst✝³ : Group G
X : Type u_2
inst✝² : MulAction G X
H : Type u_3
Y : Type u_4
inst✝¹ : Group H
inst✝ : MulAction H Y
φ : H → G
j : Y →ₑ[φ] X
B : Set X
hB : IsBlock G B
⊢ ∀ (g : H), g • ⇑j ⁻¹' B = ⇑j ⁻¹' B ∨ Disjoint (g • ⇑j ⁻¹' B) (⇑j ⁻¹' B)
state_after: G : Type u_1
inst✝³ : Group G
X : Type u_2
inst✝² : MulAction G X
H : Type u_3
Y : Type u_4
inst✝¹ : Group H
inst✝ : MulAction H Y
φ : H → G
j : Y →ₑ[φ] X
B : Set X
hB : IsBlock G B
g : H
⊢ g • ⇑j ⁻¹' B = ⇑j ⁻¹' B ∨ Disjoint (g • ⇑j ⁻¹' B) (⇑j ⁻¹' B)
tactic: intro g
state_before: G : Type u_1
inst✝³ : Group G
X : Type u_2
inst✝² : MulAction G X
H : Type u_3
Y : Type u_4
inst✝¹ : Group H
inst✝ : MulAction H Y
φ : H → G
j : Y →ₑ[φ] X
B : Set X
hB : IsBlock G B
g : H
⊢ g • ⇑j ⁻¹' B = ⇑j ⁻¹' B ∨ Disjoint (g • ⇑j ⁻¹' B) (⇑j ⁻¹' B)
state_after: G : Type u_1
inst✝³ : Group G
X : Type u_2
inst✝² : MulAction G X
H : Type u_3
Y : Type u_4
inst✝¹ : Group H
inst✝ : MulAction H Y
φ : H → G
j : Y →ₑ[φ] X
B : Set X
hB : IsBlock G B
g : H
⊢ ⇑j ⁻¹' (φ g • B) = ⇑j ⁻¹' B ∨ Disjoint (⇑j ⁻¹' (φ g • B)) (⇑j ⁻¹' B)
tactic: rw [← Group.preimage_smul_setₛₗ Y X φ j]
state_before: G : Type u_1
inst✝³ : Group G
X : Type u_2
inst✝² : MulAction G X
H : Type u_3
Y : Type u_4
inst✝¹ : Group H
inst✝ : MulAction H Y
φ : H → G
j : Y →ₑ[φ] X
B : Set X
hB : IsBlock G B
g : H
⊢ ⇑j ⁻¹' (φ g • B) = ⇑j ⁻¹' B ∨ Disjoint (⇑j ⁻¹' (φ g • B)) (⇑j ⁻¹' B)
state_after: case f
G : Type u_1
inst✝³ : Group G
X : Type u_2
inst✝² : MulAction G X
H : Type u_3
Y : Type u_4
inst✝¹ : Group H
inst✝ : MulAction H Y
φ : H → G
j : Y →ₑ[φ] X
B : Set X
hB : IsBlock G B
g : H
⊢ φ g • B = B → ⇑j ⁻¹' (φ g • B) = ⇑j ⁻¹' B

case g
G : Type u_1
inst✝³ : Group G
X : Type u_2
inst✝² : MulAction G X
H : Type u_3
Y : Type u_4
inst✝¹ : Group H
inst✝ : MulAction H Y
φ : H → G
j : Y →ₑ[φ] X
B : Set X
hB : IsBlock G B
g : H
⊢ Disjoint (φ g • B) B → Disjoint (⇑j ⁻¹' (φ g • B)) (⇑j ⁻¹' B)
tactic: apply (hB.smul_eq_or_disjoint (φ g)).imp
Theorem: TopCat.range_pullback_to_prod
File: Mathlib/Topology/Category/TopCat/Limits/Pullbacks.lean

Proof steps:
state_before: J : Type v
inst✝ : SmallCategory J
X✝ Y✝ Z✝ : TopCat
X Y Z : TopCat
f : X ⟶ Z
g : Y ⟶ Z
⊢ Set.range ⇑(prod.lift (pullback.fst f g) (pullback.snd f g)) = {x | (prod.fst ≫ f) x = (prod.snd ≫ g) x}
state_after: case h
J : Type v
inst✝ : SmallCategory J
X✝ Y✝ Z✝ : TopCat
X Y Z : TopCat
f : X ⟶ Z
g : Y ⟶ Z
x : ↑(X ⨯ Y)
⊢ x ∈ Set.range ⇑(prod.lift (pullback.fst f g) (pullback.snd f g)) ↔ x ∈ {x | (prod.fst ≫ f) x = (prod.snd ≫ g) x}
tactic: ext x
state_before: case h
J : Type v
inst✝ : SmallCategory J
X✝ Y✝ Z✝ : TopCat
X Y Z : TopCat
f : X ⟶ Z
g : Y ⟶ Z
x : ↑(X ⨯ Y)
⊢ x ∈ Set.range ⇑(prod.lift (pullback.fst f g) (pullback.snd f g)) ↔ x ∈ {x | (prod.fst ≫ f) x = (prod.snd ≫ g) x}
state_after: case h.mp
J : Type v
inst✝ : SmallCategory J
X✝ Y✝ Z✝ : TopCat
X Y Z : TopCat
f : X ⟶ Z
g : Y ⟶ Z
x : ↑(X ⨯ Y)
⊢ x ∈ Set.range ⇑(prod.lift (pullback.fst f g) (pullback.snd f g)) → x ∈ {x | (prod.fst ≫ f) x = (prod.snd ≫ g) x}

case h.mpr
J : Type v
inst✝ : SmallCategory J
X✝ Y✝ Z✝ : TopCat
X Y Z : TopCat
f : X ⟶ Z
g : Y ⟶ Z
x : ↑(X ⨯ Y)
⊢ x ∈ {x | (prod.fst ≫ f) x = (prod.snd ≫ g) x} → x ∈ Set.range ⇑(prod.lift (pullback.fst f g) (pullback.snd f g))
tactic: constructor
Theorem: Subsemigroup.mem_sSup_of_mem
File: Mathlib/Algebra/Group/Subsemigroup/Membership.lean

Proof steps:
state_before: ι : Sort u_1
M : Type u_2
A : Type u_3
B : Type u_4
inst✝ : Mul M
S : Set (Subsemigroup M)
s : Subsemigroup M
hs : s ∈ S
⊢ ∀ {x : M}, x ∈ s → x ∈ sSup S
state_after: ι : Sort u_1
M : Type u_2
A : Type u_3
B : Type u_4
inst✝ : Mul M
S : Set (Subsemigroup M)
s : Subsemigroup M
hs : s ∈ S
this : s ≤ sSup S
⊢ ∀ {x : M}, x ∈ s → x ∈ sSup S
tactic: have : s ≤ sSup S := le_sSup hs
state_before: ι : Sort u_1
M : Type u_2
A : Type u_3
B : Type u_4
inst✝ : Mul M
S : Set (Subsemigroup M)
s : Subsemigroup M
hs : s ∈ S
this : s ≤ sSup S
⊢ ∀ {x : M}, x ∈ s → x ∈ sSup S
state_after: no goals
tactic: tauto
Theorem: Real.pow_div_factorial_le_exp
File: Mathlib/Data/Complex/Exponential.lean

Proof steps:
state_before: x y : ℝ
hx : 0 ≤ x
n k : ℕ
x✝ : k ∈ range (n + 1)
⊢ 0 ≤ (fun k => x ^ k / ↑k !) k
state_after: no goals
tactic: positivity
Theorem: EReal.coe_ennreal_add
File: Mathlib/Data/Real/EReal.lean

Proof steps:
state_before: x y : ℝ≥0∞
⊢ ↑(x + y) = ↑x + ↑y
state_after: no goals
tactic: cases x <;> cases y <;> rfl
Theorem: AddCircle.norm_div_natCast
File: Mathlib/Analysis/Normed/Group/AddCircle.lean

Proof steps:
state_before: p : ℝ
hp : Fact (0 < p)
m n : ℕ
⊢ ‖↑(↑m / ↑n * p)‖ = p * (↑(min (m % n) (n - m % n)) / ↑n)
state_after: p : ℝ
hp : Fact (0 < p)
m n : ℕ
this : p⁻¹ * (↑m / ↑n * p) = ↑m / ↑n
⊢ ‖↑(↑m / ↑n * p)‖ = p * (↑(min (m % n) (n - m % n)) / ↑n)
tactic: have : p⁻¹ * (↑m / ↑n * p) = ↑m / ↑n := by rw [mul_comm _ p, inv_mul_cancel_left₀ hp.out.ne.symm]
state_before: p : ℝ
hp : Fact (0 < p)
m n : ℕ
this : p⁻¹ * (↑m / ↑n * p) = ↑m / ↑n
⊢ ‖↑(↑m / ↑n * p)‖ = p * (↑(min (m % n) (n - m % n)) / ↑n)
state_after: no goals
tactic: rw [norm_eq' p hp.out, this, abs_sub_round_div_natCast_eq]
Theorem: PowerSeries.rescale_zero_apply
File: Mathlib/RingTheory/PowerSeries/Basic.lean

Proof steps:
state_before: R : Type u_1
inst✝ : CommSemiring R
⊢ (rescale 0) X = (C R) ((constantCoeff R) X)
state_after: no goals
tactic: simp
Theorem: MeasureTheory.setIntegral_map
File: Mathlib/MeasureTheory/Integral/SetIntegral.lean

Proof steps:
state_before: X : Type u_1
Y✝ : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : MeasurableSpace X
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
f✝ g✝ : X → E
s✝ t : Set X
μ ν : Measure X
l l' : Filter X
Y : Type u_5
inst✝ : MeasurableSpace Y
g : X → Y
f : Y → E
s : Set Y
hs : MeasurableSet s
hf : AEStronglyMeasurable f (Measure.map g μ)
hg : AEMeasurable g μ
⊢ ∫ (y : Y) in s, f y ∂Measure.map g μ = ∫ (x : X) in g ⁻¹' s, f (g x) ∂μ
state_after: X : Type u_1
Y✝ : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : MeasurableSpace X
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
f✝ g✝ : X → E
s✝ t : Set X
μ ν : Measure X
l l' : Filter X
Y : Type u_5
inst✝ : MeasurableSpace Y
g : X → Y
f : Y → E
s : Set Y
hs : MeasurableSet s
hf : AEStronglyMeasurable f (Measure.map g μ)
hg : AEMeasurable g μ
⊢ Measure.map g (μ.restrict (g ⁻¹' s)) ≤ Measure.map g μ
tactic: rw [Measure.restrict_map_of_aemeasurable hg hs,
    integral_map (hg.mono_measure Measure.restrict_le_self) (hf.mono_measure _)]
state_before: X : Type u_1
Y✝ : Type u_2
E : Type u_3
F : Type u_4
inst✝³ : MeasurableSpace X
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
f✝ g✝ : X → E
s✝ t : Set X
μ ν : Measure X
l l' : Filter X
Y : Type u_5
inst✝ : MeasurableSpace Y
g : X → Y
f : Y → E
s : Set Y
hs : MeasurableSet s
hf : AEStronglyMeasurable f (Measure.map g μ)
hg : AEMeasurable g μ
⊢ Measure.map g (μ.restrict (g ⁻¹' s)) ≤ Measure.map g μ
state_after: no goals
tactic: exact Measure.map_mono_of_aemeasurable Measure.restrict_le_self hg
Theorem: HomologicalComplex.homologyMap_comp
File: Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean

Proof steps:
state_before: C : Type u_1
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : HasZeroMorphisms C
ι : Type u_2
c : ComplexShape ι
K L M : HomologicalComplex C c
φ : K ⟶ L
ψ : L ⟶ M
i j k : ι
inst✝² : K.HasHomology i
inst✝¹ : L.HasHomology i
inst✝ : M.HasHomology i
⊢ homologyMap (φ ≫ ψ) i = homologyMap φ i ≫ homologyMap ψ i
state_after: C : Type u_1
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : HasZeroMorphisms C
ι : Type u_2
c : ComplexShape ι
K L M : HomologicalComplex C c
φ : K ⟶ L
ψ : L ⟶ M
i j k : ι
inst✝² : K.HasHomology i
inst✝¹ : L.HasHomology i
inst✝ : M.HasHomology i
⊢ ShortComplex.homologyMap ((shortComplexFunctor C c i).map (φ ≫ ψ)) =
    ShortComplex.homologyMap ((shortComplexFunctor C c i).map φ) ≫
      ShortComplex.homologyMap ((shortComplexFunctor C c i).map ψ)
tactic: dsimp [homologyMap]
state_before: C : Type u_1
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : HasZeroMorphisms C
ι : Type u_2
c : ComplexShape ι
K L M : HomologicalComplex C c
φ : K ⟶ L
ψ : L ⟶ M
i j k : ι
inst✝² : K.HasHomology i
inst✝¹ : L.HasHomology i
inst✝ : M.HasHomology i
⊢ ShortComplex.homologyMap ((shortComplexFunctor C c i).map (φ ≫ ψ)) =
    ShortComplex.homologyMap ((shortComplexFunctor C c i).map φ) ≫
      ShortComplex.homologyMap ((shortComplexFunctor C c i).map ψ)
state_after: no goals
tactic: rw [Functor.map_comp, ShortComplex.homologyMap_comp]
Theorem: Equiv.Perm.IsSwap.finite_compl_fixedBy
File: Mathlib/GroupTheory/Perm/ClosureSwap.lean

Proof steps:
state_before: G : Type u_1
α : Type u_2
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : DecidableEq α
σ : Perm α
h : σ.IsSwap
⊢ (fixedBy α σ)ᶜ.Finite
state_after: case intro.intro.intro
G : Type u_1
α : Type u_2
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : DecidableEq α
x y : α
⊢ (fixedBy α (swap x y))ᶜ.Finite
tactic: obtain ⟨x, y, -, rfl⟩ := h
state_before: case intro.intro.intro
G : Type u_1
α : Type u_2
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : DecidableEq α
x y : α
⊢ (fixedBy α (swap x y))ᶜ.Finite
state_after: no goals
tactic: exact finite_compl_fixedBy_swap