1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: PNat.XgcdType.finish_v
File: Mathlib/Data/PNat/Xgcd.lean

tactic: let ha : u.r + u.b * u.q = u.a := u.rq_eq
state_before: u : XgcdType
hr : u.r = 0
⊢ u.finish.v = u.v
state_after: u : XgcdType
hr : u.r = 0
ha : u.r + ↑u.b * u.q = ↑u.a := rq_eq u
⊢ u.finish.v = u.v

tactic: rw [hr, zero_add] at ha
state_before: u : XgcdType
hr : u.r = 0
ha : u.r + ↑u.b * u.q = ↑u.a := rq_eq u
⊢ u.finish.v = u.v
state_after: u : XgcdType
hr : u.r = 0
ha : ↑u.b * u.q = ↑u.a
⊢ u.finish.v = u.v

tactic: ext
state_before: u : XgcdType
hr : u.r = 0
ha : ↑u.b * u.q = ↑u.a
⊢ u.finish.v = u.v
state_after: case a
u : XgcdType
hr : u.r = 0
ha : ↑u.b * u.q = ↑u.a
⊢ u.finish.v.1 = u.v.1

case a
u : XgcdType
hr : u.r = 0
ha : ↑u.b * u.q = ↑u.a
⊢ u.finish.v.2 = u.v.2

tactic: change (u.wp + 1) * u.b + ((u.wp + 1) * u.qp + u.x) * u.b = u.w * u.a + u.x * u.b
state_before: case a
u : XgcdType
hr : u.r = 0
ha : ↑u.b * u.q = ↑u.a
⊢ u.finish.v.1 = u.v.1
state_after: case a
u : XgcdType
hr : u.r = 0
ha : ↑u.b * u.q = ↑u.a
⊢ (u.wp + 1) * ↑u.b + ((u.wp + 1) * u.qp + u.x) * ↑u.b = ↑u.w * ↑u.a + u.x * ↑u.b

tactic: have : u.wp + 1 = u.w := rfl
state_before: case a
u : XgcdType
hr : u.r = 0
ha : ↑u.b * u.q = ↑u.a
⊢ (u.wp + 1) * ↑u.b + ((u.wp + 1) * u.qp + u.x) * ↑u.b = ↑u.w * ↑u.a + u.x * ↑u.b
state_after: case a
u : XgcdType
hr : u.r = 0
ha : ↑u.b * u.q = ↑u.a
this : u.wp + 1 = ↑u.w
⊢ (u.wp + 1) * ↑u.b + ((u.wp + 1) * u.qp + u.x) * ↑u.b = ↑u.w * ↑u.a + u.x * ↑u.b

tactic: rw [this, ← ha, u.qp_eq hr]
state_before: case a
u : XgcdType
hr : u.r = 0
ha : ↑u.b * u.q = ↑u.a
this : u.wp + 1 = ↑u.w
⊢ (u.wp + 1) * ↑u.b + ((u.wp + 1) * u.qp + u.x) * ↑u.b = ↑u.w * ↑u.a + u.x * ↑u.b
state_after: case a
u : XgcdType
hr : u.r = 0
ha : ↑u.b * u.q = ↑u.a
this : u.wp + 1 = ↑u.w
⊢ ↑u.w * ↑u.b + (↑u.w * u.qp + u.x) * ↑u.b = ↑u.w * (↑u.b * (u.qp + 1)) + u.x * ↑u.b

tactic: ring
state_before: case a
u : XgcdType
hr : u.r = 0
ha : ↑u.b * u.q = ↑u.a
this : u.wp + 1 = ↑u.w
⊢ ↑u.w * ↑u.b + (↑u.w * u.qp + u.x) * ↑u.b = ↑u.w * (↑u.b * (u.qp + 1)) + u.x * ↑u.b
state_after: no goals

tactic: change u.y * u.b + (u.y * u.qp + u.z) * u.b = u.y * u.a + u.z * u.b
state_before: case a
u : XgcdType
hr : u.r = 0
ha : ↑u.b * u.q = ↑u.a
⊢ u.finish.v.2 = u.v.2
state_after: case a
u : XgcdType
hr : u.r = 0
ha : ↑u.b * u.q = ↑u.a
⊢ u.y * ↑u.b + (u.y * u.qp + ↑u.z) * ↑u.b = u.y * ↑u.a + ↑u.z * ↑u.b

tactic: rw [← ha, u.qp_eq hr]
state_before: case a
u : XgcdType
hr : u.r = 0
ha : ↑u.b * u.q = ↑u.a
⊢ u.y * ↑u.b + (u.y * u.qp + ↑u.z) * ↑u.b = u.y * ↑u.a + ↑u.z * ↑u.b
state_after: case a
u : XgcdType
hr : u.r = 0
ha : ↑u.b * u.q = ↑u.a
⊢ u.y * ↑u.b + (u.y * u.qp + ↑u.z) * ↑u.b = u.y * (↑u.b * (u.qp + 1)) + ↑u.z * ↑u.b

tactic: ring
state_before: case a
u : XgcdType
hr : u.r = 0
ha : ↑u.b * u.q = ↑u.a
⊢ u.y * ↑u.b + (u.y * u.qp + ↑u.z) * ↑u.b = u.y * (↑u.b * (u.qp + 1)) + ↑u.z * ↑u.b
state_after: no goals
Theorem: quasiIso_iff_comp_right
File: Mathlib/Algebra/Homology/QuasiIso.lean

tactic: simp only [quasiIso_iff, quasiIsoAt_iff_comp_right φ φ']
state_before: ι✝ : Type u_1
ι : Type u_2
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroMorphisms C
c : ComplexShape ι
K L M K' L' : HomologicalComplex C c
φ : K ⟶ L
φ' : L ⟶ M
inst✝² : ∀ (i : ι), K.HasHomology i
inst✝¹ : ∀ (i : ι), L.HasHomology i
inst✝ : ∀ (i : ι), M.HasHomology i
hφ' : QuasiIso φ'
⊢ QuasiIso (φ ≫ φ') ↔ QuasiIso φ
state_after: no goals
Theorem: Set.subsingleton_coe
File: Mathlib/Data/Set/Subsingleton.lean

tactic: constructor
state_before: α : Type u
a : α
s✝ t s : Set α
⊢ Subsingleton ↑s ↔ s.Subsingleton
state_after: case mp
α : Type u
a : α
s✝ t s : Set α
⊢ Subsingleton ↑s → s.Subsingleton

case mpr
α : Type u
a : α
s✝ t s : Set α
⊢ s.Subsingleton → Subsingleton ↑s

tactic: refine fun h => fun a ha b hb => ?_
state_before: case mp
α : Type u
a : α
s✝ t s : Set α
⊢ Subsingleton ↑s → s.Subsingleton
state_after: case mp
α : Type u
a✝ : α
s✝ t s : Set α
h : Subsingleton ↑s
a : α
ha : a ∈ s
b : α
hb : b ∈ s
⊢ a = b

tactic: exact SetCoe.ext_iff.2 (@Subsingleton.elim s h ⟨a, ha⟩ ⟨b, hb⟩)
state_before: case mp
α : Type u
a✝ : α
s✝ t s : Set α
h : Subsingleton ↑s
a : α
ha : a ∈ s
b : α
hb : b ∈ s
⊢ a = b
state_after: no goals

tactic: exact fun h => Subsingleton.intro fun a b => SetCoe.ext (h a.property b.property)
state_before: case mpr
α : Type u
a : α
s✝ t s : Set α
⊢ s.Subsingleton → Subsingleton ↑s
state_after: no goals
Theorem: nhdsSet_univ
File: Mathlib/Topology/NhdsSet.lean

tactic: rw [isOpen_univ.nhdsSet_eq, principal_univ]
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
f : Filter X
s t s₁ s₂ t₁ t₂ : Set X
x : X
⊢ 𝓝ˢ univ = ⊤
state_after: no goals
Theorem: AddCircle.liftIco_zero_continuous
File: Mathlib/Topology/Instances/AddCircle.lean

tactic: rwa [zero_add]
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝⁴ : LinearOrderedAddCommGroup 𝕜
inst✝³ : TopologicalSpace 𝕜
inst✝² : OrderTopology 𝕜
p a : 𝕜
hp : Fact (0 < p)
inst✝¹ : Archimedean 𝕜
inst✝ : TopologicalSpace B
f : 𝕜 → B
hf : f 0 = f p
hc : ContinuousOn f (Icc 0 p)
⊢ f 0 = f (0 + p)
state_after: no goals

tactic: rwa [zero_add]
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝⁴ : LinearOrderedAddCommGroup 𝕜
inst✝³ : TopologicalSpace 𝕜
inst✝² : OrderTopology 𝕜
p a : 𝕜
hp : Fact (0 < p)
inst✝¹ : Archimedean 𝕜
inst✝ : TopologicalSpace B
f : 𝕜 → B
hf : f 0 = f p
hc : ContinuousOn f (Icc 0 p)
⊢ ContinuousOn f (Icc 0 (0 + p))
state_after: no goals
Theorem: ENNReal.rpow_add_rpow_le_add
File: Mathlib/Analysis/MeanInequalitiesPow.lean

tactic: rw [← @ENNReal.le_rpow_one_div_iff _ _ (1 / p) (by simp [lt_of_lt_of_le zero_lt_one hp1])]
state_before: ι : Type u
s : Finset ι
p : ℝ
a b : ℝ≥0∞
hp1 : 1 ≤ p
⊢ (a ^ p + b ^ p) ^ (1 / p) ≤ a + b
state_after: ι : Type u
s : Finset ι
p : ℝ
a b : ℝ≥0∞
hp1 : 1 ≤ p
⊢ a ^ p + b ^ p ≤ (a + b) ^ (1 / (1 / p))

tactic: rw [one_div_one_div]
state_before: ι : Type u
s : Finset ι
p : ℝ
a b : ℝ≥0∞
hp1 : 1 ≤ p
⊢ a ^ p + b ^ p ≤ (a + b) ^ (1 / (1 / p))
state_after: ι : Type u
s : Finset ι
p : ℝ
a b : ℝ≥0∞
hp1 : 1 ≤ p
⊢ a ^ p + b ^ p ≤ (a + b) ^ p

tactic: exact add_rpow_le_rpow_add _ _ hp1
state_before: ι : Type u
s : Finset ι
p : ℝ
a b : ℝ≥0∞
hp1 : 1 ≤ p
⊢ a ^ p + b ^ p ≤ (a + b) ^ p
state_after: no goals

tactic: simp [lt_of_lt_of_le zero_lt_one hp1]
state_before: ι : Type u
s : Finset ι
p : ℝ
a b : ℝ≥0∞
hp1 : 1 ≤ p
⊢ 0 < 1 / p
state_after: no goals
Theorem: CategoryTheory.MonoidalNatIso.ofComponents.inv_app
File: Mathlib/CategoryTheory/Monoidal/NaturalTransformation.lean

tactic: simp [ofComponents]
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
inst✝² : MonoidalCategory C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
inst✝ : MonoidalCategory D
F G : LaxMonoidalFunctor C D
app : (X : C) → F.obj X ≅ G.obj X
naturality : ∀ {X Y : C} (f : X ⟶ Y), F.map f ≫ (app Y).hom = (app X).hom ≫ G.map f
unit : F.ε ≫ (app (𝟙_ C)).hom = G.ε
tensor : ∀ (X Y : C), F.μ X Y ≫ (app (X ⊗ Y)).hom = ((app X).hom ⊗ (app Y).hom) ≫ G.μ X Y
X : C
⊢ (ofComponents app naturality unit tensor).inv.app X = (app X).inv
state_after: no goals
Theorem: Nat.dist_tri_left'
File: Mathlib/Data/Nat/Dist.lean

tactic: rw [dist_comm]
state_before: n m : ℕ
⊢ n ≤ n.dist m + m
state_after: n m : ℕ
⊢ n ≤ m.dist n + m

tactic: apply dist_tri_left
state_before: n m : ℕ
⊢ n ≤ m.dist n + m
state_after: no goals
Theorem: Filter.tendsto_atBot_diagonal
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: rw [← prod_atBot_atBot_eq]
state_before: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : SemilatticeInf α
⊢ Tendsto (fun a => (a, a)) atBot atBot
state_after: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : SemilatticeInf α
⊢ Tendsto (fun a => (a, a)) atBot (atBot ×ˢ atBot)

tactic: exact tendsto_id.prod_mk tendsto_id
state_before: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : SemilatticeInf α
⊢ Tendsto (fun a => (a, a)) atBot (atBot ×ˢ atBot)
state_after: no goals
Theorem: Polynomial.Monic.ne_zero_of_ne
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: nontriviality R
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p✝¹ p✝ q : R[X]
ι : Type u_1
h : 0 ≠ 1
p : R[X]
hp : p.Monic
⊢ p ≠ 0
state_after: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝¹ : Semiring R
p✝¹ p✝ q : R[X]
ι : Type u_1
h : 0 ≠ 1
p : R[X]
hp : p.Monic
inst✝ : Nontrivial R
⊢ p ≠ 0

tactic: exact hp.ne_zero
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝¹ : Semiring R
p✝¹ p✝ q : R[X]
ι : Type u_1
h : 0 ≠ 1
p : R[X]
hp : p.Monic
inst✝ : Nontrivial R
⊢ p ≠ 0
state_after: no goals
Theorem: contDiffOn_stereoToFun
File: Mathlib/Geometry/Manifold/Instances/Sphere.lean

tactic: refine ContDiffOn.smul ?_ (orthogonalProjection (ℝ ∙ v)ᗮ).contDiff.contDiffOn
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
v : E
⊢ ContDiffOn ℝ ⊤ (stereoToFun v) {x | ((innerSL ℝ) v) x ≠ 1}
state_after: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
v : E
⊢ ContDiffOn ℝ ⊤ (fun x => 2 / (1 - ((innerSL ℝ) v) x)) {x | ((innerSL ℝ) v) x ≠ 1}

tactic: refine contDiff_const.contDiffOn.div ?_ ?_
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
v : E
⊢ ContDiffOn ℝ ⊤ (fun x => 2 / (1 - ((innerSL ℝ) v) x)) {x | ((innerSL ℝ) v) x ≠ 1}
state_after: case refine_1
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
v : E
⊢ ContDiffOn ℝ ⊤ (fun x => 1 - ((innerSL ℝ) v) x) {x | ((innerSL ℝ) v) x ≠ 1}

case refine_2
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
v : E
⊢ ∀ x ∈ {x | ((innerSL ℝ) v) x ≠ 1}, 1 - ((innerSL ℝ) v) x ≠ 0

tactic: exact (contDiff_const.sub (innerSL ℝ v).contDiff).contDiffOn
state_before: case refine_1
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
v : E
⊢ ContDiffOn ℝ ⊤ (fun x => 1 - ((innerSL ℝ) v) x) {x | ((innerSL ℝ) v) x ≠ 1}
state_after: no goals

tactic: intro x h h'
state_before: case refine_2
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
v : E
⊢ ∀ x ∈ {x | ((innerSL ℝ) v) x ≠ 1}, 1 - ((innerSL ℝ) v) x ≠ 0
state_after: case refine_2
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
v x : E
h : x ∈ {x | ((innerSL ℝ) v) x ≠ 1}
h' : 1 - ((innerSL ℝ) v) x = 0
⊢ False

tactic: exact h (sub_eq_zero.mp h').symm
state_before: case refine_2
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
v x : E
h : x ∈ {x | ((innerSL ℝ) v) x ≠ 1}
h' : 1 - ((innerSL ℝ) v) x = 0
⊢ False
state_after: no goals
Theorem: Mathlib.Tactic.Ring.neg_mul
File: Mathlib/Tactic/Ring/Basic.lean

tactic: subst_vars
state_before: u : Lean.Level
R✝ : Type ?u.112320
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝¹ : CommSemiring R✝
R : Type u_1
inst✝ : Ring R
a₁ : R
a₂ : ℕ
a₃ b : R
x✝ : -a₃ = b
⊢ -(a₁ ^ a₂ * a₃) = a₁ ^ a₂ * b
state_after: u : Lean.Level
R✝ : Type ?u.112320
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝¹ : CommSemiring R✝
R : Type u_1
inst✝ : Ring R
a₁ : R
a₂ : ℕ
a₃ : R
⊢ -(a₁ ^ a₂ * a₃) = a₁ ^ a₂ * -a₃

tactic: simp
state_before: u : Lean.Level
R✝ : Type ?u.112320
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝¹ : CommSemiring R✝
R : Type u_1
inst✝ : Ring R
a₁ : R
a₂ : ℕ
a₃ : R
⊢ -(a₁ ^ a₂ * a₃) = a₁ ^ a₂ * -a₃
state_after: no goals
Theorem: ContinuousLinearMap.projKerOfRightInverse_apply_idem
File: Mathlib/Topology/Algebra/Module/Basic.lean

tactic: ext1
state_before: R : Type u_1
inst✝¹⁵ : Ring R
R₂ : Type u_2
inst✝¹⁴ : Ring R₂
R₃ : Type u_3
inst✝¹³ : Ring R₃
M : Type u_4
inst✝¹² : TopologicalSpace M
inst✝¹¹ : AddCommGroup M
M₂ : Type u_5
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommGroup M₄
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
σ₂₁ : R₂ →+* R
inst✝¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝ : TopologicalAddGroup M
f₁ : M →SL[σ₁₂] M₂
f₂ : M₂ →SL[σ₂₁] M
h : Function.RightInverse ⇑f₂ ⇑f₁
x : ↥(LinearMap.ker f₁)
⊢ (f₁.projKerOfRightInverse f₂ h) ↑x = x
state_after: case a
R : Type u_1
inst✝¹⁵ : Ring R
R₂ : Type u_2
inst✝¹⁴ : Ring R₂
R₃ : Type u_3
inst✝¹³ : Ring R₃
M : Type u_4
inst✝¹² : TopologicalSpace M
inst✝¹¹ : AddCommGroup M
M₂ : Type u_5
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommGroup M₄
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
σ₂₁ : R₂ →+* R
inst✝¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝ : TopologicalAddGroup M
f₁ : M →SL[σ₁₂] M₂
f₂ : M₂ →SL[σ₂₁] M
h : Function.RightInverse ⇑f₂ ⇑f₁
x : ↥(LinearMap.ker f₁)
⊢ ↑((f₁.projKerOfRightInverse f₂ h) ↑x) = ↑x

tactic: simp
state_before: case a
R : Type u_1
inst✝¹⁵ : Ring R
R₂ : Type u_2
inst✝¹⁴ : Ring R₂
R₃ : Type u_3
inst✝¹³ : Ring R₃
M : Type u_4
inst✝¹² : TopologicalSpace M
inst✝¹¹ : AddCommGroup M
M₂ : Type u_5
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommGroup M₄
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
σ₂₁ : R₂ →+* R
inst✝¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝ : TopologicalAddGroup M
f₁ : M →SL[σ₁₂] M₂
f₂ : M₂ →SL[σ₂₁] M
h : Function.RightInverse ⇑f₂ ⇑f₁
x : ↥(LinearMap.ker f₁)
⊢ ↑((f₁.projKerOfRightInverse f₂ h) ↑x) = ↑x
state_after: no goals
Theorem: MeasureTheory.mem_lpMeasSubgroup_iff_aeStronglyMeasurable'
File: Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean

tactic: rw [← AddSubgroup.mem_carrier, lpMeasSubgroup, Set.mem_setOf_eq]
state_before: α : Type u_1
E' : Type u_2
F : Type u_3
F' : Type u_4
𝕜 : Type u_5
p : ℝ≥0∞
inst✝¹⁰ : RCLike 𝕜
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : InnerProductSpace 𝕜 E'
inst✝⁷ : CompleteSpace E'
inst✝⁶ : NormedSpace ℝ E'
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
m m0 : MeasurableSpace α
μ : Measure α
f : ↥(Lp F p μ)
⊢ f ∈ lpMeasSubgroup F m p μ ↔ AEStronglyMeasurable' m (↑↑f) μ
state_after: no goals
Theorem: tprod_eq_finprod
File: Mathlib/Topology/Algebra/InfiniteSum/Basic.lean

tactic: simp [tprod_def, multipliable_of_finite_mulSupport hf, hf]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : CommMonoid α
inst✝ : TopologicalSpace α
f g : β → α
a a₁ a₂ : α
hf : (mulSupport f).Finite
⊢ ∏' (b : β), f b = ∏ᶠ (b : β), f b
state_after: no goals
Theorem: Real.rpow_le_rpow_left_iff
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: have x_pos : 0 < x := lt_trans zero_lt_one hx
state_before: x y z : ℝ
n : ℕ
hx : 1 < x
⊢ x ^ y ≤ x ^ z ↔ y ≤ z
state_after: x y z : ℝ
n : ℕ
hx : 1 < x
x_pos : 0 < x
⊢ x ^ y ≤ x ^ z ↔ y ≤ z

tactic: rw [← log_le_log_iff (rpow_pos_of_pos x_pos y) (rpow_pos_of_pos x_pos z), log_rpow x_pos,
  log_rpow x_pos, mul_le_mul_right (log_pos hx)]
state_before: x y z : ℝ
n : ℕ
hx : 1 < x
x_pos : 0 < x
⊢ x ^ y ≤ x ^ z ↔ y ≤ z
state_after: no goals
Theorem: Polynomial.isCoprime_of_is_root_of_eval_derivative_ne_zero
File: Mathlib/Algebra/Polynomial/FieldDivision.lean

tactic: classical
refine Or.resolve_left
    (EuclideanDomain.dvd_or_coprime (X - C a) (f /ₘ (X - C a))
      (irreducible_of_degree_eq_one (Polynomial.degree_X_sub_C a))) ?_
contrapose! hf' with h
have : X - C a ∣ derivative f := X_sub_C_dvd_derivative_of_X_sub_C_dvd_divByMonic f h
rw [← modByMonic_eq_zero_iff_dvd (monic_X_sub_C _), modByMonic_X_sub_C_eq_C_eval] at this
rwa [← C_inj, C_0]
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]
K : Type u_1
inst✝ : Field K
f : K[X]
a : K
hf' : eval a (derivative f) ≠ 0
⊢ IsCoprime (X - C a) (f /ₘ (X - C a))
state_after: no goals

tactic: refine Or.resolve_left
    (EuclideanDomain.dvd_or_coprime (X - C a) (f /ₘ (X - C a))
      (irreducible_of_degree_eq_one (Polynomial.degree_X_sub_C a))) ?_
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]
K : Type u_1
inst✝ : Field K
f : K[X]
a : K
hf' : eval a (derivative f) ≠ 0
⊢ IsCoprime (X - C a) (f /ₘ (X - C a))
state_after: R : Type u
S : Type v
k : Type y
A : Type z
a✝ b : R
n : ℕ
inst✝¹ : Field R
p q : R[X]
K : Type u_1
inst✝ : Field K
f : K[X]
a : K
hf' : eval a (derivative f) ≠ 0
⊢ ¬X - C a ∣ f /ₘ (X - C a)

tactic: contrapose! hf' with h
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]
K : Type u_1
inst✝ : Field K
f : K[X]
a : K
hf' : eval a (derivative f) ≠ 0
⊢ ¬X - C a ∣ f /ₘ (X - C a)
state_after: R : Type u
S : Type v
k : Type y
A : Type z
a✝ b : R
n : ℕ
inst✝¹ : Field R
p q : R[X]
K : Type u_1
inst✝ : Field K
f : K[X]
a : K
h : X - C a ∣ f /ₘ (X - C a)
⊢ eval a (derivative f) = 0

tactic: have : X - C a ∣ derivative f := X_sub_C_dvd_derivative_of_X_sub_C_dvd_divByMonic f h
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]
K : Type u_1
inst✝ : Field K
f : K[X]
a : K
h : X - C a ∣ f /ₘ (X - C a)
⊢ eval a (derivative f) = 0
state_after: R : Type u
S : Type v
k : Type y
A : Type z
a✝ b : R
n : ℕ
inst✝¹ : Field R
p q : R[X]
K : Type u_1
inst✝ : Field K
f : K[X]
a : K
h : X - C a ∣ f /ₘ (X - C a)
this : X - C a ∣ derivative f
⊢ eval a (derivative f) = 0

tactic: rw [← modByMonic_eq_zero_iff_dvd (monic_X_sub_C _), modByMonic_X_sub_C_eq_C_eval] at this
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]
K : Type u_1
inst✝ : Field K
f : K[X]
a : K
h : X - C a ∣ f /ₘ (X - C a)
this : X - C a ∣ derivative f
⊢ eval a (derivative f) = 0
state_after: R : Type u
S : Type v
k : Type y
A : Type z
a✝ b : R
n : ℕ
inst✝¹ : Field R
p q : R[X]
K : Type u_1
inst✝ : Field K
f : K[X]
a : K
h : X - C a ∣ f /ₘ (X - C a)
this : C (eval a (derivative f)) = 0
⊢ eval a (derivative f) = 0

tactic: rwa [← C_inj, C_0]
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]
K : Type u_1
inst✝ : Field K
f : K[X]
a : K
h : X - C a ∣ f /ₘ (X - C a)
this : C (eval a (derivative f)) = 0
⊢ eval a (derivative f) = 0
state_after: no goals
Theorem: FreeAbelianGroup.lift.map_hom
File: Mathlib/GroupTheory/FreeAbelianGroup.lean

tactic: show (g.comp (lift f)) a = lift (g ∘ f) a
state_before: α✝ : Type u
β✝ : Type v
inst✝² : AddCommGroup β✝
f✝ : α✝ → β✝
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : AddCommGroup β
inst✝ : AddCommGroup γ
a : FreeAbelianGroup α
f : α → β
g : β →+ γ
⊢ g ((lift f) a) = (lift (⇑g ∘ f)) a
state_after: α✝ : Type u
β✝ : Type v
inst✝² : AddCommGroup β✝
f✝ : α✝ → β✝
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : AddCommGroup β
inst✝ : AddCommGroup γ
a : FreeAbelianGroup α
f : α → β
g : β →+ γ
⊢ (g.comp (lift f)) a = (lift (⇑g ∘ f)) a

tactic: apply lift.unique
state_before: α✝ : Type u
β✝ : Type v
inst✝² : AddCommGroup β✝
f✝ : α✝ → β✝
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : AddCommGroup β
inst✝ : AddCommGroup γ
a : FreeAbelianGroup α
f : α → β
g : β →+ γ
⊢ (g.comp (lift f)) a = (lift (⇑g ∘ f)) a
state_after: case hg
α✝ : Type u
β✝ : Type v
inst✝² : AddCommGroup β✝
f✝ : α✝ → β✝
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : AddCommGroup β
inst✝ : AddCommGroup γ
a : FreeAbelianGroup α
f : α → β
g : β →+ γ
⊢ ∀ (x : α), (g.comp (lift f)) (of x) = (⇑g ∘ f) x

tactic: intro a
state_before: case hg
α✝ : Type u
β✝ : Type v
inst✝² : AddCommGroup β✝
f✝ : α✝ → β✝
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : AddCommGroup β
inst✝ : AddCommGroup γ
a : FreeAbelianGroup α
f : α → β
g : β →+ γ
⊢ ∀ (x : α), (g.comp (lift f)) (of x) = (⇑g ∘ f) x
state_after: case hg
α✝ : Type u
β✝ : Type v
inst✝² : AddCommGroup β✝
f✝ : α✝ → β✝
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : AddCommGroup β
inst✝ : AddCommGroup γ
a✝ : FreeAbelianGroup α
f : α → β
g : β →+ γ
a : α
⊢ (g.comp (lift f)) (of a) = (⇑g ∘ f) a

tactic: show g ((lift f) (of a)) = g (f a)
state_before: case hg
α✝ : Type u
β✝ : Type v
inst✝² : AddCommGroup β✝
f✝ : α✝ → β✝
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : AddCommGroup β
inst✝ : AddCommGroup γ
a✝ : FreeAbelianGroup α
f : α → β
g : β →+ γ
a : α
⊢ (g.comp (lift f)) (of a) = (⇑g ∘ f) a
state_after: case hg
α✝ : Type u
β✝ : Type v
inst✝² : AddCommGroup β✝
f✝ : α✝ → β✝
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : AddCommGroup β
inst✝ : AddCommGroup γ
a✝ : FreeAbelianGroup α
f : α → β
g : β →+ γ
a : α
⊢ g ((lift f) (of a)) = g (f a)
Theorem: AddChar.zmod_char_primitive_of_eq_one_only_at_zero
File: Mathlib/NumberTheory/LegendreSymbol/AddCharacter.lean

tactic: refine fun a ha hf => ?_
state_before: R : Type u
inst✝² : CommRing R
R' : Type v
inst✝¹ : CommMonoid R'
C : Type v
inst✝ : CommMonoid C
n : ℕ
ψ : AddChar (ZMod n) C
hψ : ∀ (a : ZMod n), ψ a = 1 → a = 0
⊢ ψ.IsPrimitive
state_after: R : Type u
inst✝² : CommRing R
R' : Type v
inst✝¹ : CommMonoid R'
C : Type v
inst✝ : CommMonoid C
n : ℕ
ψ : AddChar (ZMod n) C
hψ : ∀ (a : ZMod n), ψ a = 1 → a = 0
a : ZMod n
ha : a ≠ 0
hf : ψ.mulShift a = 1
⊢ False

tactic: have h : mulShift ψ a 1 = (1 : AddChar (ZMod n) C) (1 : ZMod n) :=
  congr_fun (congr_arg (↑) hf) 1
state_before: R : Type u
inst✝² : CommRing R
R' : Type v
inst✝¹ : CommMonoid R'
C : Type v
inst✝ : CommMonoid C
n : ℕ
ψ : AddChar (ZMod n) C
hψ : ∀ (a : ZMod n), ψ a = 1 → a = 0
a : ZMod n
ha : a ≠ 0
hf : ψ.mulShift a = 1
⊢ False
state_after: R : Type u
inst✝² : CommRing R
R' : Type v
inst✝¹ : CommMonoid R'
C : Type v
inst✝ : CommMonoid C
n : ℕ
ψ : AddChar (ZMod n) C
hψ : ∀ (a : ZMod n), ψ a = 1 → a = 0
a : ZMod n
ha : a ≠ 0
hf : ψ.mulShift a = 1
h : (ψ.mulShift a) 1 = 1 1
⊢ False

tactic: rw [mulShift_apply, mul_one] at h
state_before: R : Type u
inst✝² : CommRing R
R' : Type v
inst✝¹ : CommMonoid R'
C : Type v
inst✝ : CommMonoid C
n : ℕ
ψ : AddChar (ZMod n) C
hψ : ∀ (a : ZMod n), ψ a = 1 → a = 0
a : ZMod n
ha : a ≠ 0
hf : ψ.mulShift a = 1
h : (ψ.mulShift a) 1 = 1 1
⊢ False
state_after: R : Type u
inst✝² : CommRing R
R' : Type v
inst✝¹ : CommMonoid R'
C : Type v
inst✝ : CommMonoid C
n : ℕ
ψ : AddChar (ZMod n) C
hψ : ∀ (a : ZMod n), ψ a = 1 → a = 0
a : ZMod n
ha : a ≠ 0
hf : ψ.mulShift a = 1
h : ψ a = 1 1
⊢ False

tactic: exact ha (hψ a h)
state_before: R : Type u
inst✝² : CommRing R
R' : Type v
inst✝¹ : CommMonoid R'
C : Type v
inst✝ : CommMonoid C
n : ℕ
ψ : AddChar (ZMod n) C
hψ : ∀ (a : ZMod n), ψ a = 1 → a = 0
a : ZMod n
ha : a ≠ 0
hf : ψ.mulShift a = 1
h : ψ a = 1 1
⊢ False
state_after: no goals
Theorem: MeasureTheory.StronglyMeasurable.measurableSet_le
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

tactic: borelize (β × β)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁴ : Countable ι
f✝ g✝ : α → β
m : MeasurableSpace α
inst✝³ : TopologicalSpace β
inst✝² : Preorder β
inst✝¹ : OrderClosedTopology β
inst✝ : PseudoMetrizableSpace β
f g : α → β
hf : StronglyMeasurable f
hg : StronglyMeasurable g
⊢ MeasurableSet {a | f a ≤ g a}
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁴ : Countable ι
f✝ g✝ : α → β
m : MeasurableSpace α
inst✝³ : TopologicalSpace β
inst✝² : Preorder β
inst✝¹ : OrderClosedTopology β
inst✝ : PseudoMetrizableSpace β
f g : α → β
hf : StronglyMeasurable f
hg : StronglyMeasurable g
this✝¹ : MeasurableSpace (β × β) := borel (β × β)
this✝ : BorelSpace (β × β)
⊢ MeasurableSet {a | f a ≤ g a}

tactic: exact (hf.prod_mk hg).measurable isClosed_le_prod.measurableSet
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁴ : Countable ι
f✝ g✝ : α → β
m : MeasurableSpace α
inst✝³ : TopologicalSpace β
inst✝² : Preorder β
inst✝¹ : OrderClosedTopology β
inst✝ : PseudoMetrizableSpace β
f g : α → β
hf : StronglyMeasurable f
hg : StronglyMeasurable g
this✝¹ : MeasurableSpace (β × β) := borel (β × β)
this✝ : BorelSpace (β × β)
⊢ MeasurableSet {a | f a ≤ g a}
state_after: no goals