1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: WeierstrassCurve.b_relation
File: Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean

tactic: simp only [b₂, b₄, b₆, b₈]
state_before: R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
⊢ 4 * W.b₈ = W.b₂ * W.b₆ - W.b₄ ^ 2
state_after: R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
⊢ 4 * (W.a₁ ^ 2 * W.a₆ + 4 * W.a₂ * W.a₆ - W.a₁ * W.a₃ * W.a₄ + W.a₂ * W.a₃ ^ 2 - W.a₄ ^ 2) =
    (W.a₁ ^ 2 + 4 * W.a₂) * (W.a₃ ^ 2 + 4 * W.a₆) - (2 * W.a₄ + W.a₁ * W.a₃) ^ 2

tactic: ring1
state_before: R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
⊢ 4 * (W.a₁ ^ 2 * W.a₆ + 4 * W.a₂ * W.a₆ - W.a₁ * W.a₃ * W.a₄ + W.a₂ * W.a₃ ^ 2 - W.a₄ ^ 2) =
    (W.a₁ ^ 2 + 4 * W.a₂) * (W.a₃ ^ 2 + 4 * W.a₆) - (2 * W.a₄ + W.a₁ * W.a₃) ^ 2
state_after: no goals
Theorem: Fintype.coe_image_univ
File: Mathlib/Data/Fintype/Basic.lean

tactic: ext x
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : Fintype α
inst✝ : DecidableEq β
f : α → β
⊢ ↑(image f univ) = Set.range f
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : Fintype α
inst✝ : DecidableEq β
f : α → β
x : β
⊢ x ∈ ↑(image f univ) ↔ x ∈ Set.range f

tactic: simp
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : Fintype α
inst✝ : DecidableEq β
f : α → β
x : β
⊢ x ∈ ↑(image f univ) ↔ x ∈ Set.range f
state_after: no goals
Theorem: Set.Ici_diff_Ioi
File: Mathlib/Order/Interval/Set/Basic.lean

tactic: rw [diff_eq, compl_Ioi, Ici_inter_Iic]
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
⊢ Ici a \ Ioi b = Icc a b
state_after: no goals
Theorem: Basis.coe_toOrthonormalBasis
File: Mathlib/Analysis/InnerProductSpace/PiL2.lean

tactic: classical rw [OrthonormalBasis.coe_toBasis]
state_before: ι : Type u_1
ι' : Type u_2
𝕜 : Type u_3
inst✝⁹ : _root_.RCLike 𝕜
E : Type u_4
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace 𝕜 E
E' : Type u_5
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : InnerProductSpace 𝕜 E'
F : Type u_6
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
F' : Type u_7
inst✝² : NormedAddCommGroup F'
inst✝¹ : InnerProductSpace ℝ F'
inst✝ : Fintype ι
v : Basis ι 𝕜 E
hv : Orthonormal 𝕜 ⇑v
⊢ ⇑(v.toOrthonormalBasis hv) = ⇑(v.toOrthonormalBasis hv).toBasis
state_after: no goals

tactic: rw [OrthonormalBasis.coe_toBasis]
state_before: ι : Type u_1
ι' : Type u_2
𝕜 : Type u_3
inst✝⁹ : _root_.RCLike 𝕜
E : Type u_4
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace 𝕜 E
E' : Type u_5
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : InnerProductSpace 𝕜 E'
F : Type u_6
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
F' : Type u_7
inst✝² : NormedAddCommGroup F'
inst✝¹ : InnerProductSpace ℝ F'
inst✝ : Fintype ι
v : Basis ι 𝕜 E
hv : Orthonormal 𝕜 ⇑v
⊢ ⇑(v.toOrthonormalBasis hv) = ⇑(v.toOrthonormalBasis hv).toBasis
state_after: no goals

tactic: simp
state_before: ι : Type u_1
ι' : Type u_2
𝕜 : Type u_3
inst✝⁹ : _root_.RCLike 𝕜
E : Type u_4
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace 𝕜 E
E' : Type u_5
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : InnerProductSpace 𝕜 E'
F : Type u_6
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
F' : Type u_7
inst✝² : NormedAddCommGroup F'
inst✝¹ : InnerProductSpace ℝ F'
inst✝ : Fintype ι
v : Basis ι 𝕜 E
hv : Orthonormal 𝕜 ⇑v
⊢ ⇑(v.toOrthonormalBasis hv).toBasis = ⇑v
state_after: no goals
Theorem: CategoryTheory.NatTrans.app_homology
File: Mathlib/Algebra/Homology/ShortComplex/PreservesHomology.lean

tactic: rw [ShortComplex.homologyMap_mapNatTrans, assoc, assoc, Iso.inv_hom_id,
  comp_id, Iso.inv_hom_id_assoc]
state_before: C : Type u_1
D : Type u_2
inst✝¹⁰ : Category.{u_3, u_1} C
inst✝⁹ : Category.{u_4, u_2} D
inst✝⁸ : HasZeroMorphisms C
inst✝⁷ : HasZeroMorphisms D
F G : C ⥤ D
τ : F ⟶ G
S : ShortComplex C
inst✝⁶ : S.HasHomology
inst✝⁵ : F.PreservesZeroMorphisms
inst✝⁴ : G.PreservesZeroMorphisms
inst✝³ : F.PreservesLeftHomologyOf S
inst✝² : G.PreservesLeftHomologyOf S
inst✝¹ : F.PreservesRightHomologyOf S
inst✝ : G.PreservesRightHomologyOf S
⊢ τ.app S.homology = (S.mapHomologyIso F).inv ≫ ShortComplex.homologyMap (S.mapNatTrans τ) ≫ (S.mapHomologyIso G).hom
state_after: no goals
Theorem: CategoryTheory.ShortComplex.cyclesMap'_sub
File: Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean

tactic: simp only [sub_eq_add_neg, cyclesMap'_add, cyclesMap'_neg]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ φ' : S₁ ⟶ S₂
h₁ : S₁.LeftHomologyData
h₂ : S₂.LeftHomologyData
⊢ cyclesMap' (φ - φ') h₁ h₂ = cyclesMap' φ h₁ h₂ - cyclesMap' φ' h₁ h₂
state_after: no goals
Theorem: MeasureTheory.OuterMeasure.IsMetric.le_caratheodory
File: Mathlib/MeasureTheory/Measure/Hausdorff.lean

tactic: rw [BorelSpace.measurable_eq (α := X)]
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝³ : EMetricSpace X
inst✝² : EMetricSpace Y
μ : OuterMeasure X
inst✝¹ : MeasurableSpace X
inst✝ : BorelSpace X
hm : μ.IsMetric
⊢ inst✝¹ ≤ μ.caratheodory
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝³ : EMetricSpace X
inst✝² : EMetricSpace Y
μ : OuterMeasure X
inst✝¹ : MeasurableSpace X
inst✝ : BorelSpace X
hm : μ.IsMetric
⊢ borel X ≤ μ.caratheodory

tactic: exact hm.borel_le_caratheodory
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝³ : EMetricSpace X
inst✝² : EMetricSpace Y
μ : OuterMeasure X
inst✝¹ : MeasurableSpace X
inst✝ : BorelSpace X
hm : μ.IsMetric
⊢ borel X ≤ μ.caratheodory
state_after: no goals
Theorem: Profinite.IndexFunctor.eq_of_forall_π_app_eq
File: Mathlib/Topology/Category/Profinite/Product.lean

tactic: ext i
state_before: ι : Type u
X : ι → Type
inst✝ : (i : ι) → TopologicalSpace (X i)
C : Set ((i : ι) → X i)
J K : ι → Prop
a b : ↑C
h : ∀ (J : Finset ι), (π_app C fun x => x ∈ J) a = (π_app C fun x => x ∈ J) b
⊢ a = b
state_after: case a.h
ι : Type u
X : ι → Type
inst✝ : (i : ι) → TopologicalSpace (X i)
C : Set ((i : ι) → X i)
J K : ι → Prop
a b : ↑C
h : ∀ (J : Finset ι), (π_app C fun x => x ∈ J) a = (π_app C fun x => x ∈ J) b
i : ι
⊢ ↑a i = ↑b i

tactic: specialize h ({i} : Finset ι)
state_before: case a.h
ι : Type u
X : ι → Type
inst✝ : (i : ι) → TopologicalSpace (X i)
C : Set ((i : ι) → X i)
J K : ι → Prop
a b : ↑C
h : ∀ (J : Finset ι), (π_app C fun x => x ∈ J) a = (π_app C fun x => x ∈ J) b
i : ι
⊢ ↑a i = ↑b i
state_after: case a.h
ι : Type u
X : ι → Type
inst✝ : (i : ι) → TopologicalSpace (X i)
C : Set ((i : ι) → X i)
J K : ι → Prop
a b : ↑C
i : ι
h : (π_app C fun x => x ∈ {i}) a = (π_app C fun x => x ∈ {i}) b
⊢ ↑a i = ↑b i

tactic: rw [Subtype.ext_iff] at h
state_before: case a.h
ι : Type u
X : ι → Type
inst✝ : (i : ι) → TopologicalSpace (X i)
C : Set ((i : ι) → X i)
J K : ι → Prop
a b : ↑C
i : ι
h : (π_app C fun x => x ∈ {i}) a = (π_app C fun x => x ∈ {i}) b
⊢ ↑a i = ↑b i
state_after: case a.h
ι : Type u
X : ι → Type
inst✝ : (i : ι) → TopologicalSpace (X i)
C : Set ((i : ι) → X i)
J K : ι → Prop
a b : ↑C
i : ι
h : ↑((π_app C fun x => x ∈ {i}) a) = ↑((π_app C fun x => x ∈ {i}) b)
⊢ ↑a i = ↑b i

tactic: simp only [π_app, ContinuousMap.precomp, ContinuousMap.coe_mk,
  Set.MapsTo.val_restrict_apply] at h
state_before: case a.h
ι : Type u
X : ι → Type
inst✝ : (i : ι) → TopologicalSpace (X i)
C : Set ((i : ι) → X i)
J K : ι → Prop
a b : ↑C
i : ι
h : ↑((π_app C fun x => x ∈ {i}) a) = ↑((π_app C fun x => x ∈ {i}) b)
⊢ ↑a i = ↑b i
state_after: case a.h
ι : Type u
X : ι → Type
inst✝ : (i : ι) → TopologicalSpace (X i)
C : Set ((i : ι) → X i)
J K : ι → Prop
a b : ↑C
i : ι
h : (fun j => ↑a ↑j) = fun j => ↑b ↑j
⊢ ↑a i = ↑b i

tactic: exact congr_fun h ⟨i, Finset.mem_singleton.mpr rfl⟩
state_before: case a.h
ι : Type u
X : ι → Type
inst✝ : (i : ι) → TopologicalSpace (X i)
C : Set ((i : ι) → X i)
J K : ι → Prop
a b : ↑C
i : ι
h : (fun j => ↑a ↑j) = fun j => ↑b ↑j
⊢ ↑a i = ↑b i
state_after: no goals
Theorem: Filter.BoundedAtFilter.mul
File: Mathlib/Order/Filter/ZeroAndBoundedAtFilter.lean

tactic: refine (hf.mul hg).trans ?_
state_before: 𝕜 : Type u_1
α : Type u_2
β : Type u_3
inst✝ : SeminormedRing β
l : Filter α
f g : α → β
hf : l.BoundedAtFilter f
hg : l.BoundedAtFilter g
⊢ l.BoundedAtFilter (f * g)
state_after: 𝕜 : Type u_1
α : Type u_2
β : Type u_3
inst✝ : SeminormedRing β
l : Filter α
f g : α → β
hf : l.BoundedAtFilter f
hg : l.BoundedAtFilter g
⊢ (fun x => 1 x * 1 x) =O[l] 1

tactic: convert Asymptotics.isBigO_refl (E := ℝ) _ l
state_before: 𝕜 : Type u_1
α : Type u_2
β : Type u_3
inst✝ : SeminormedRing β
l : Filter α
f g : α → β
hf : l.BoundedAtFilter f
hg : l.BoundedAtFilter g
⊢ (fun x => 1 x * 1 x) =O[l] 1
state_after: case h.e'_8.h
𝕜 : Type u_1
α : Type u_2
β : Type u_3
inst✝ : SeminormedRing β
l : Filter α
f g : α → β
hf : l.BoundedAtFilter f
hg : l.BoundedAtFilter g
x✝ : α
⊢ 1 x✝ = 1 x✝ * 1 x✝

tactic: simp
state_before: case h.e'_8.h
𝕜 : Type u_1
α : Type u_2
β : Type u_3
inst✝ : SeminormedRing β
l : Filter α
f g : α → β
hf : l.BoundedAtFilter f
hg : l.BoundedAtFilter g
x✝ : α
⊢ 1 x✝ = 1 x✝ * 1 x✝
state_after: no goals
Theorem: MeasureTheory.Measure.IicSnd_le_fst
File: Mathlib/Probability/Kernel/Disintegration/CondCdf.lean

tactic: refine Measure.le_iff.2 fun s hs ↦ ?_
state_before: α : Type u_1
β : Type u_2
mα : MeasurableSpace α
ρ : Measure (α × ℝ)
r : ℝ
⊢ ρ.IicSnd r ≤ ρ.fst
state_after: α : Type u_1
β : Type u_2
mα : MeasurableSpace α
ρ : Measure (α × ℝ)
r : ℝ
s : Set α
hs : MeasurableSet s
⊢ (ρ.IicSnd r) s ≤ ρ.fst s

tactic: simp_rw [fst_apply hs, IicSnd_apply ρ r hs]
state_before: α : Type u_1
β : Type u_2
mα : MeasurableSpace α
ρ : Measure (α × ℝ)
r : ℝ
s : Set α
hs : MeasurableSet s
⊢ (ρ.IicSnd r) s ≤ ρ.fst s
state_after: α : Type u_1
β : Type u_2
mα : MeasurableSpace α
ρ : Measure (α × ℝ)
r : ℝ
s : Set α
hs : MeasurableSet s
⊢ ρ (s ×ˢ Iic r) ≤ ρ (Prod.fst ⁻¹' s)

tactic: exact measure_mono (prod_subset_preimage_fst _ _)
state_before: α : Type u_1
β : Type u_2
mα : MeasurableSpace α
ρ : Measure (α × ℝ)
r : ℝ
s : Set α
hs : MeasurableSet s
⊢ ρ (s ×ˢ Iic r) ≤ ρ (Prod.fst ⁻¹' s)
state_after: no goals
Theorem: circleMap_mem_sphere
File: Mathlib/MeasureTheory/Integral/CircleIntegral.lean

tactic: simpa only [_root_.abs_of_nonneg hR] using circleMap_mem_sphere' c R θ
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
c : ℂ
R : ℝ
hR : 0 ≤ R
θ : ℝ
⊢ circleMap c R θ ∈ sphere c R
state_after: no goals
Theorem: Stream'.nats_eq
File: Mathlib/Data/Stream/Init.lean

tactic: apply Stream'.ext
state_before: α : Type u
β : Type v
δ : Type w
⊢ nats = 0 :: map succ nats
state_after: case a
α : Type u
β : Type v
δ : Type w
⊢ ∀ (n : ℕ), nats.get n = (0 :: map succ nats).get n

tactic: intro n
state_before: case a
α : Type u
β : Type v
δ : Type w
⊢ ∀ (n : ℕ), nats.get n = (0 :: map succ nats).get n
state_after: case a
α : Type u
β : Type v
δ : Type w
n : ℕ
⊢ nats.get n = (0 :: map succ nats).get n

tactic: cases n
state_before: case a
α : Type u
β : Type v
δ : Type w
n : ℕ
⊢ nats.get n = (0 :: map succ nats).get n
state_after: case a.zero
α : Type u
β : Type v
δ : Type w
⊢ nats.get 0 = (0 :: map succ nats).get 0

case a.succ
α : Type u
β : Type v
δ : Type w
n✝ : ℕ
⊢ nats.get (n✝ + 1) = (0 :: map succ nats).get (n✝ + 1)

tactic: rw [get_succ]
state_before: case a.succ
α : Type u
β : Type v
δ : Type w
n✝ : ℕ
⊢ nats.get (n✝ + 1) = (0 :: map succ nats).get (n✝ + 1)
state_after: case a.succ
α : Type u
β : Type v
δ : Type w
n✝ : ℕ
⊢ nats.tail.get n✝ = (0 :: map succ nats).get (n✝ + 1)

tactic: rfl
state_before: case a.succ
α : Type u
β : Type v
δ : Type w
n✝ : ℕ
⊢ nats.tail.get n✝ = (0 :: map succ nats).get (n✝ + 1)
state_after: no goals

tactic: rfl
state_before: case a.zero
α : Type u
β : Type v
δ : Type w
⊢ nats.get 0 = (0 :: map succ nats).get 0
state_after: no goals
Theorem: LinearMap.trace_transpose'
File: Mathlib/LinearAlgebra/Trace.lean

tactic: rw [← comp_apply, trace_transpose]
state_before: R : Type u_1
inst✝¹² : CommRing R
M : Type u_2
inst✝¹¹ : AddCommGroup M
inst✝¹⁰ : Module R M
N : Type u_3
P : Type u_4
inst✝⁹ : AddCommGroup N
inst✝⁸ : Module R N
inst✝⁷ : AddCommGroup P
inst✝⁶ : Module R P
ι : Type u_5
inst✝⁵ : Module.Free R M
inst✝⁴ : Module.Finite R M
inst✝³ : Module.Free R N
inst✝² : Module.Finite R N
inst✝¹ : Module.Free R P
inst✝ : Module.Finite R P
f : M →ₗ[R] M
⊢ (trace R (Module.Dual R M)) (Module.Dual.transpose f) = (trace R M) f
state_after: no goals
Theorem: Matroid.Base.ncard_eq_ncard_of_base
File: Mathlib/Data/Matroid/Basic.lean

tactic: rw [ncard_def B₁, hB₁.card_eq_card_of_base hB₂, ← ncard_def]
state_before: α : Type u_1
M : Matroid α
B₁ B₂ : Set α
hB₁ : M.Base B₁
hB₂ : M.Base B₂
⊢ B₁.ncard = B₂.ncard
state_after: no goals
Theorem: Matrix.Commute.zpow_right
File: Mathlib/LinearAlgebra/Matrix/ZPow.lean

tactic: rcases nonsing_inv_cancel_or_zero B with (⟨hB, _⟩ | hB)
state_before: n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A B : M
h : Commute A B
m : ℤ
⊢ Commute A (B ^ m)
state_after: case inl.intro
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A B : M
h : Commute A B
m : ℤ
hB : B⁻¹ * B = 1
right✝ : B * B⁻¹ = 1
⊢ Commute A (B ^ m)

case inr
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A B : M
h : Commute A B
m : ℤ
hB : B⁻¹ = 0
⊢ Commute A (B ^ m)

tactic: refine SemiconjBy.zpow_right ?_ ?_ h _ <;> exact isUnit_det_of_left_inverse hB
state_before: case inl.intro
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A B : M
h : Commute A B
m : ℤ
hB : B⁻¹ * B = 1
right✝ : B * B⁻¹ = 1
⊢ Commute A (B ^ m)
state_after: no goals

tactic: cases m
state_before: case inr
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A B : M
h : Commute A B
m : ℤ
hB : B⁻¹ = 0
⊢ Commute A (B ^ m)
state_after: case inr.ofNat
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A B : M
h : Commute A B
hB : B⁻¹ = 0
a✝ : ℕ
⊢ Commute A (B ^ ofNat a✝)

case inr.negSucc
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A B : M
h : Commute A B
hB : B⁻¹ = 0
a✝ : ℕ
⊢ Commute A (B ^ -[a✝+1])

tactic: simpa using h.pow_right _
state_before: case inr.ofNat
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A B : M
h : Commute A B
hB : B⁻¹ = 0
a✝ : ℕ
⊢ Commute A (B ^ ofNat a✝)
state_after: no goals

tactic: simp [← inv_pow', hB]
state_before: case inr.negSucc
n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A B : M
h : Commute A B
hB : B⁻¹ = 0
a✝ : ℕ
⊢ Commute A (B ^ -[a✝+1])
state_after: no goals
Theorem: mulPosReflectLT_iff_contravariant_pos
File: Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean

tactic: obtain ha | ha := a.prop.eq_or_lt
state_before: α : Type u_1
a✝ b✝ c✝ d : α
inst✝¹ : MulZeroClass α
inst✝ : PartialOrder α
h✝ : ContravariantClass { x // 0 < x } α (fun x y => y * ↑x) fun x x_1 => x < x_1
a : { x // 0 ≤ x }
b c : α
h : b * ↑a < c * ↑a
⊢ b < c
state_after: case inl
α : Type u_1
a✝ b✝ c✝ d : α
inst✝¹ : MulZeroClass α
inst✝ : PartialOrder α
h✝ : ContravariantClass { x // 0 < x } α (fun x y => y * ↑x) fun x x_1 => x < x_1
a : { x // 0 ≤ x }
b c : α
h : b * ↑a < c * ↑a
ha : 0 = ↑a
⊢ b < c

case inr
α : Type u_1
a✝ b✝ c✝ d : α
inst✝¹ : MulZeroClass α
inst✝ : PartialOrder α
h✝ : ContravariantClass { x // 0 < x } α (fun x y => y * ↑x) fun x x_1 => x < x_1
a : { x // 0 ≤ x }
b c : α
h : b * ↑a < c * ↑a
ha : 0 < ↑a
⊢ b < c

tactic: simp [← ha] at h
state_before: case inl
α : Type u_1
a✝ b✝ c✝ d : α
inst✝¹ : MulZeroClass α
inst✝ : PartialOrder α
h✝ : ContravariantClass { x // 0 < x } α (fun x y => y * ↑x) fun x x_1 => x < x_1
a : { x // 0 ≤ x }
b c : α
h : b * ↑a < c * ↑a
ha : 0 = ↑a
⊢ b < c
state_after: no goals
Theorem: MeasureTheory.AEStronglyMeasurable.truncation
File: Mathlib/Probability/StrongLaw.lean

tactic: apply AEStronglyMeasurable.comp_aemeasurable _ hf.aemeasurable
state_before: α : Type u_1
m : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : AEStronglyMeasurable f μ
A : ℝ
⊢ AEStronglyMeasurable (ProbabilityTheory.truncation f A) μ
state_after: α : Type u_1
m : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : AEStronglyMeasurable f μ
A : ℝ
⊢ AEStronglyMeasurable ((Set.Ioc (-A) A).indicator id) (Measure.map f μ)

tactic: exact (stronglyMeasurable_id.indicator measurableSet_Ioc).aestronglyMeasurable
state_before: α : Type u_1
m : MeasurableSpace α
μ : Measure α
f : α → ℝ
hf : AEStronglyMeasurable f μ
A : ℝ
⊢ AEStronglyMeasurable ((Set.Ioc (-A) A).indicator id) (Measure.map f μ)
state_after: no goals
Theorem: Cubic.monic_of_b_eq_one
File: Mathlib/Algebra/CubicDiscriminant.lean

tactic: nontriviality R
state_before: R : Type u_1
S : Type u_2
F : Type u_3
K : Type u_4
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
ha : P.a = 0
hb : P.b = 1
⊢ P.toPoly.Monic
state_after: R : Type u_1
S : Type u_2
F : Type u_3
K : Type u_4
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
ha : P.a = 0
hb : P.b = 1
a✝ : Nontrivial R
⊢ P.toPoly.Monic

tactic: rw [Monic, leadingCoeff_of_b_ne_zero ha (hb ▸ one_ne_zero), hb]
state_before: R : Type u_1
S : Type u_2
F : Type u_3
K : Type u_4
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
ha : P.a = 0
hb : P.b = 1
a✝ : Nontrivial R
⊢ P.toPoly.Monic
state_after: no goals
Theorem: ContinuousLinearMap.comp_neg
File: Mathlib/Topology/Algebra/Module/Basic.lean

tactic: ext x
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₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : TopologicalAddGroup M₂
inst✝ : TopologicalAddGroup M₃
g : M₂ →SL[σ₂₃] M₃
f : M →SL[σ₁₂] M₂
⊢ g.comp (-f) = -g.comp f
state_after: case h
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₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : TopologicalAddGroup M₂
inst✝ : TopologicalAddGroup M₃
g : M₂ →SL[σ₂₃] M₃
f : M →SL[σ₁₂] M₂
x : M
⊢ (g.comp (-f)) x = (-g.comp f) x

tactic: simp
state_before: case h
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₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : TopologicalAddGroup M₂
inst✝ : TopologicalAddGroup M₃
g : M₂ →SL[σ₂₃] M₃
f : M →SL[σ₁₂] M₂
x : M
⊢ (g.comp (-f)) x = (-g.comp f) x
state_after: no goals
Theorem: ack_pos
File: Mathlib/Computability/Ackermann.lean

tactic: simp
state_before: n : ℕ
⊢ 0 < ack 0 n
state_after: no goals

tactic: rw [ack_succ_zero]
state_before: m : ℕ
⊢ 0 < ack (m + 1) 0
state_after: m : ℕ
⊢ 0 < ack m 1

tactic: apply ack_pos
state_before: m : ℕ
⊢ 0 < ack m 1
state_after: no goals

tactic: rw [ack_succ_succ]
state_before: m n : ℕ
⊢ 0 < ack (m + 1) (n + 1)
state_after: m n : ℕ
⊢ 0 < ack m (ack (m + 1) n)

tactic: apply ack_pos
state_before: m n : ℕ
⊢ 0 < ack m (ack (m + 1) n)
state_after: no goals
Theorem: EuclideanGeometry.dist_sq_mul_dist_add_dist_sq_mul_dist
File: Mathlib/Geometry/Euclidean/Triangle.lean

tactic: rw [pow_two, pow_two, law_cos a p b, law_cos a p c,
  eq_sub_of_add_eq (angle_add_angle_eq_pi_of_angle_eq_pi a h), Real.cos_pi_sub,
  dist_eq_add_dist_of_angle_eq_pi h]
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
a b c p : P
h : ∠ b p c = π
⊢ dist a b ^ 2 * dist c p + dist a c ^ 2 * dist b p = dist b c * (dist a p ^ 2 + dist b p * dist c p)
state_after: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
a b c p : P
h : ∠ b p c = π
⊢ (dist a p * dist a p + dist b p * dist b p - 2 * dist a p * dist b p * -Real.cos (∠ a p c)) * dist c p +
      (dist a p * dist a p + dist c p * dist c p - 2 * dist a p * dist c p * Real.cos (∠ a p c)) * dist b p =
    (dist b p + dist c p) * (dist a p ^ 2 + dist b p * dist c p)

tactic: ring
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
a b c p : P
h : ∠ b p c = π
⊢ (dist a p * dist a p + dist b p * dist b p - 2 * dist a p * dist b p * -Real.cos (∠ a p c)) * dist c p +
      (dist a p * dist a p + dist c p * dist c p - 2 * dist a p * dist c p * Real.cos (∠ a p c)) * dist b p =
    (dist b p + dist c p) * (dist a p ^ 2 + dist b p * dist c p)
state_after: no goals
Theorem: Int.natAbs_le_iff_sq_le
File: Mathlib/Data/Int/Lemmas.lean

tactic: rw [sq, sq]
state_before: a✝ b✝ : ℤ
n : ℕ
a b : ℤ
⊢ a.natAbs ≤ b.natAbs ↔ a ^ 2 ≤ b ^ 2
state_after: a✝ b✝ : ℤ
n : ℕ
a b : ℤ
⊢ a.natAbs ≤ b.natAbs ↔ a * a ≤ b * b

tactic: exact natAbs_le_iff_mul_self_le
state_before: a✝ b✝ : ℤ
n : ℕ
a b : ℤ
⊢ a.natAbs ≤ b.natAbs ↔ a * a ≤ b * b
state_after: no goals
Theorem: List.getElem_attach
File: Mathlib/Data/List/Basic.lean

tactic: simpa using h
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ L : List α
i : ℕ
h : i < L.attach.length
⊢ i < (map Subtype.val L.attach).length
state_after: no goals

tactic: rw [getElem_map]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ L : List α
i : ℕ
h : i < L.attach.length
⊢ ↑L.attach[i] = (map Subtype.val L.attach)[i]
state_after: no goals

tactic: congr 2
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ L : List α
i : ℕ
h : i < L.attach.length
⊢ (map Subtype.val L.attach)[i] = L[i]
state_after: case e_xs
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ L : List α
i : ℕ
h : i < L.attach.length
⊢ map Subtype.val L.attach = L

tactic: simp
state_before: case e_xs
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ L : List α
i : ℕ
h : i < L.attach.length
⊢ map Subtype.val L.attach = L
state_after: no goals
Theorem: Complex.normSq_eq_norm_sq
File: Mathlib/Analysis/Complex/Basic.lean

tactic: rw [normSq_eq_abs, norm_eq_abs]
state_before: z✝ : ℂ
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℂ E
z : ℂ
⊢ normSq z = ‖z‖ ^ 2
state_after: no goals
Theorem: rexp_neg_image_aux
File: Mathlib/Analysis/MellinInversion.lean

tactic: rw [Set.image_comp, Set.image_univ_of_surjective neg_surjective, Set.image_univ, Real.range_exp]
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
⊢ rexp ∘ Neg.neg '' univ = Ioi 0
state_after: no goals
Theorem: Submonoid.LocalizationMap.mul_mk'_one_eq_mk'
File: Mathlib/GroupTheory/MonoidLocalization.lean

tactic: rw [mul_mk'_eq_mk'_of_mul, mul_one]
state_before: M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type u_3
inst✝ : CommMonoid P
f : S.LocalizationMap N
x : M
y : ↥S
⊢ f.toMap x * f.mk' 1 y = f.mk' x y
state_after: no goals