1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: RatFunc.intDegree_add_le
File: Mathlib/FieldTheory/RatFunc/Degree.lean

tactic: by_cases hx : x = 0
state_before: K : Type u
inst✝ : Field K
x y : RatFunc K
hy : y ≠ 0
hxy : x + y ≠ 0
⊢ (x + y).intDegree ≤ max x.intDegree y.intDegree
state_after: case pos
K : Type u
inst✝ : Field K
x y : RatFunc K
hy : y ≠ 0
hxy : x + y ≠ 0
hx : x = 0
⊢ (x + y).intDegree ≤ max x.intDegree y.intDegree

case neg
K : Type u
inst✝ : Field K
x y : RatFunc K
hy : y ≠ 0
hxy : x + y ≠ 0
hx : ¬x = 0
⊢ (x + y).intDegree ≤ max x.intDegree y.intDegree

tactic: rw [intDegree_add hxy, ←
  natDegree_num_mul_right_sub_natDegree_denom_mul_left_eq_intDegree hx y.denom_ne_zero,
  mul_comm y.denom, ←
  natDegree_num_mul_right_sub_natDegree_denom_mul_left_eq_intDegree hy x.denom_ne_zero,
  le_max_iff, sub_le_sub_iff_right, Int.ofNat_le, sub_le_sub_iff_right, Int.ofNat_le, ←
  le_max_iff, mul_comm y.num]
state_before: case neg
K : Type u
inst✝ : Field K
x y : RatFunc K
hy : y ≠ 0
hxy : x + y ≠ 0
hx : ¬x = 0
⊢ (x + y).intDegree ≤ max x.intDegree y.intDegree
state_after: case neg
K : Type u
inst✝ : Field K
x y : RatFunc K
hy : y ≠ 0
hxy : x + y ≠ 0
hx : ¬x = 0
⊢ (x.num * y.denom + x.denom * y.num).natDegree ≤ max (x.num * y.denom).natDegree (x.denom * y.num).natDegree

tactic: exact natDegree_add_le _ _
state_before: case neg
K : Type u
inst✝ : Field K
x y : RatFunc K
hy : y ≠ 0
hxy : x + y ≠ 0
hx : ¬x = 0
⊢ (x.num * y.denom + x.denom * y.num).natDegree ≤ max (x.num * y.denom).natDegree (x.denom * y.num).natDegree
state_after: no goals

tactic: simp only [hx, zero_add, ne_eq] at hxy
state_before: case pos
K : Type u
inst✝ : Field K
x y : RatFunc K
hy : y ≠ 0
hxy : x + y ≠ 0
hx : x = 0
⊢ (x + y).intDegree ≤ max x.intDegree y.intDegree
state_after: case pos
K : Type u
inst✝ : Field K
x y : RatFunc K
hy : y ≠ 0
hx : x = 0
hxy : ¬y = 0
⊢ (x + y).intDegree ≤ max x.intDegree y.intDegree

tactic: simp [hx, hxy]
state_before: case pos
K : Type u
inst✝ : Field K
x y : RatFunc K
hy : y ≠ 0
hx : x = 0
hxy : ¬y = 0
⊢ (x + y).intDegree ≤ max x.intDegree y.intDegree
state_after: no goals
Theorem: Set.image_inf_prod
File: Mathlib/Data/Set/Sups.lean

tactic: rw [← this]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝³ : SemilatticeInf α
inst✝² : SemilatticeInf β
inst✝¹ : FunLike F α β
inst✝ : InfHomClass F α β
s✝ s₁ s₂ t✝ t₁ t₂ u v : Set α
a b c : α
s t : Set α
this : (uncurry fun x x_1 => x ⊓ x_1) '' s ×ˢ t = image2 (fun x x_1 => x ⊓ x_1) s t
⊢ image2 (fun x x_1 => x ⊓ x_1) s t = s ⊼ t
state_after: F : Type u_1
α : Type u_2
β : Type u_3
inst✝³ : SemilatticeInf α
inst✝² : SemilatticeInf β
inst✝¹ : FunLike F α β
inst✝ : InfHomClass F α β
s✝ s₁ s₂ t✝ t₁ t₂ u v : Set α
a b c : α
s t : Set α
this : (uncurry fun x x_1 => x ⊓ x_1) '' s ×ˢ t = image2 (fun x x_1 => x ⊓ x_1) s t
⊢ (uncurry fun x x_1 => x ⊓ x_1) '' s ×ˢ t = s ⊼ t

tactic: exact image_uncurry_prod _ _ _
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝³ : SemilatticeInf α
inst✝² : SemilatticeInf β
inst✝¹ : FunLike F α β
inst✝ : InfHomClass F α β
s✝ s₁ s₂ t✝ t₁ t₂ u v : Set α
a b c : α
s t : Set α
this : (uncurry fun x x_1 => x ⊓ x_1) '' s ×ˢ t = image2 (fun x x_1 => x ⊓ x_1) s t
⊢ (uncurry fun x x_1 => x ⊓ x_1) '' s ×ˢ t = s ⊼ t
state_after: no goals

tactic: simp only [@ge_iff_le, @Set.image_uncurry_prod]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝³ : SemilatticeInf α
inst✝² : SemilatticeInf β
inst✝¹ : FunLike F α β
inst✝ : InfHomClass F α β
s✝ s₁ s₂ t✝ t₁ t₂ u v : Set α
a b c : α
s t : Set α
⊢ (uncurry fun x x_1 => x ⊓ x_1) '' s ×ˢ t = image2 (fun x x_1 => x ⊓ x_1) s t
state_after: no goals
Theorem: NumberField.Units.regulator_eq_det
File: Mathlib/NumberTheory/NumberField/Units/Regulator.lean

tactic: let e' : {w : InfinitePlace K // w ≠ w₀} ≃ Fin (rank K) := Fintype.equivOfCardEq (by
  rw [Fintype.card_subtype_compl, Fintype.card_ofSubsingleton, Fintype.card_fin, rank])
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
w' : InfinitePlace K
e : { w // w ≠ w' } ≃ Fin (rank K)
⊢ regulator K = |(Matrix.of fun i w => ↑(↑w).mult * Real.log (↑w ((algebraMap (𝓞 K) K) ↑(fundSystem K (e i))))).det|
state_after: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
w' : InfinitePlace K
e : { w // w ≠ w' } ≃ Fin (rank K)
e' : { w // w ≠ w₀ } ≃ Fin (rank K) := Fintype.equivOfCardEq ⋯
⊢ regulator K = |(Matrix.of fun i w => ↑(↑w).mult * Real.log (↑w ((algebraMap (𝓞 K) K) ↑(fundSystem K (e i))))).det|

tactic: simp_rw [regulator_eq_det' K e', logEmbedding, AddMonoidHom.coe_mk, ZeroHom.coe_mk]
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
w' : InfinitePlace K
e : { w // w ≠ w' } ≃ Fin (rank K)
e' : { w // w ≠ w₀ } ≃ Fin (rank K) := Fintype.equivOfCardEq ⋯
⊢ regulator K = |(Matrix.of fun i w => ↑(↑w).mult * Real.log (↑w ((algebraMap (𝓞 K) K) ↑(fundSystem K (e i))))).det|
state_after: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
w' : InfinitePlace K
e : { w // w ≠ w' } ≃ Fin (rank K)
e' : { w // w ≠ w₀ } ≃ Fin (rank K) := Fintype.equivOfCardEq ⋯
⊢ |(Matrix.of fun i w =>
          ↑(↑w).mult * Real.log (↑w ((algebraMap (𝓞 K) K) ↑(Additive.toMul (fundSystem K (e' i)))))).det| =
    |(Matrix.of fun i w => ↑(↑w).mult * Real.log (↑w ((algebraMap (𝓞 K) K) ↑(fundSystem K (e i))))).det|

tactic: exact abs_det_eq_abs_det K (fun i ↦ fundSystem K i) e' e
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
w' : InfinitePlace K
e : { w // w ≠ w' } ≃ Fin (rank K)
e' : { w // w ≠ w₀ } ≃ Fin (rank K) := Fintype.equivOfCardEq ⋯
⊢ |(Matrix.of fun i w =>
          ↑(↑w).mult * Real.log (↑w ((algebraMap (𝓞 K) K) ↑(Additive.toMul (fundSystem K (e' i)))))).det| =
    |(Matrix.of fun i w => ↑(↑w).mult * Real.log (↑w ((algebraMap (𝓞 K) K) ↑(fundSystem K (e i))))).det|
state_after: no goals

tactic: rw [Fintype.card_subtype_compl, Fintype.card_ofSubsingleton, Fintype.card_fin, rank]
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
w' : InfinitePlace K
e : { w // w ≠ w' } ≃ Fin (rank K)
⊢ Fintype.card { w // w ≠ w₀ } = Fintype.card (Fin (rank K))
state_after: no goals
Theorem: Nat.sub_eq_psub
File: Mathlib/Data/Nat/PSub.lean

tactic: rw [sub_eq_psub m n, psub]
state_before: m n : ℕ
⊢ (m - n).ppred.getD 0 = (m.psub (n + 1)).getD 0
state_after: m n : ℕ
⊢ ((m.psub n).getD 0).ppred.getD 0 = (m.psub n >>= ppred).getD 0

tactic: cases psub m n <;> rfl
state_before: m n : ℕ
⊢ ((m.psub n).getD 0).ppred.getD 0 = (m.psub n >>= ppred).getD 0
state_after: no goals
Theorem: Real.arcsin_eq_iff_eq_sin
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean

tactic: simp only [le_antisymm_iff, arcsin_le_iff_le_sin' (mem_Ico_of_Ioo hy),
  le_arcsin_iff_sin_le' (mem_Ioc_of_Ioo hy)]
state_before: x✝ y✝ x y : ℝ
hy : y ∈ Ioo (-(π / 2)) (π / 2)
⊢ arcsin x = y ↔ x = sin y
state_after: no goals
Theorem: Orientation.inner_rightAngleRotationAux₁_right
File: Mathlib/Analysis/InnerProductSpace/TwoDim.lean

tactic: rw [real_inner_comm]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
⊢ ⟪x, o.rightAngleRotationAux₁ y⟫_ℝ = -(o.areaForm x) y
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
⊢ ⟪o.rightAngleRotationAux₁ y, x⟫_ℝ = -(o.areaForm x) y

tactic: simp [o.areaForm_swap y x]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
⊢ ⟪o.rightAngleRotationAux₁ y, x⟫_ℝ = -(o.areaForm x) y
state_after: no goals
Theorem: MeasureTheory.AEEqFun.compMeasurable_eq_mk
File: Mathlib/MeasureTheory/Function/AEEqFun.lean

tactic: rw [← compMeasurable_mk g hg f f.aestronglyMeasurable, mk_coeFn]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹⁰ : MeasurableSpace α
μ ν : Measure α
inst✝⁹ : TopologicalSpace β
inst✝⁸ : TopologicalSpace γ
inst✝⁷ : TopologicalSpace δ
inst✝⁶ : MeasurableSpace β
inst✝⁵ : PseudoMetrizableSpace β
inst✝⁴ : BorelSpace β
inst✝³ : MeasurableSpace γ
inst✝² : PseudoMetrizableSpace γ
inst✝¹ : OpensMeasurableSpace γ
inst✝ : SecondCountableTopology γ
g : β → γ
hg : Measurable g
f : α →ₘ[μ] β
⊢ compMeasurable g hg f = mk (g ∘ ↑f) ⋯
state_after: no goals
Theorem: Rat.divInt_self
File: .lake/packages/batteries/Batteries/Data/Rat/Lemmas.lean

tactic: rw [divInt_ofNat, mkRat_self]
state_before: a : Rat
⊢ a.num /. ↑a.den = a
state_after: no goals
Theorem: preNormEDS'_four
File: Mathlib/NumberTheory/EllipticDivisibilitySequence.lean

tactic: rw [preNormEDS']
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
W : ℤ → R
f : R →+* S
b c d : R
⊢ preNormEDS' b c d 4 = d
state_after: no goals
Theorem: CompleteSublattice.disjoint_iff
File: Mathlib/Order/CompleteSublattice.lean

tactic: rw [disjoint_iff, disjoint_iff, ← Sublattice.coe_inf, ← coe_bot (L := L),
  Subtype.coe_injective.eq_iff]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : CompleteLattice α
inst✝ : CompleteLattice β
f : CompleteLatticeHom α β
L : CompleteSublattice α
a b : ↥L
⊢ Disjoint a b ↔ Disjoint ↑a ↑b
state_after: no goals
Theorem: Int.Prime.dvd_mul
File: Mathlib/RingTheory/Int/Basic.lean

tactic: rwa [← hp.dvd_mul, ← Int.natAbs_mul, ← Int.natCast_dvd]
state_before: m n : ℤ
p : ℕ
hp : Nat.Prime p
h : ↑p ∣ m * n
⊢ p ∣ m.natAbs ∨ p ∣ n.natAbs
state_after: no goals
Theorem: Polynomial.Monic.sub_of_right
File: Mathlib/Algebra/Polynomial/Monic.lean

tactic: have : (-q).coeff (-q).natDegree = 1 := by
  rw [natDegree_neg, coeff_neg, show q.coeff q.natDegree = -1 from hq, neg_neg]
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Ring R
p✝ p q : R[X]
hq : q.leadingCoeff = -1
hpq : p.degree < q.degree
⊢ (p - q).Monic
state_after: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Ring R
p✝ p q : R[X]
hq : q.leadingCoeff = -1
hpq : p.degree < q.degree
this : (-q).coeff (-q).natDegree = 1
⊢ (p - q).Monic

tactic: rw [sub_eq_add_neg]
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Ring R
p✝ p q : R[X]
hq : q.leadingCoeff = -1
hpq : p.degree < q.degree
this : (-q).coeff (-q).natDegree = 1
⊢ (p - q).Monic
state_after: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Ring R
p✝ p q : R[X]
hq : q.leadingCoeff = -1
hpq : p.degree < q.degree
this : (-q).coeff (-q).natDegree = 1
⊢ (p + -q).Monic

tactic: apply Monic.add_of_right this
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Ring R
p✝ p q : R[X]
hq : q.leadingCoeff = -1
hpq : p.degree < q.degree
this : (-q).coeff (-q).natDegree = 1
⊢ (p + -q).Monic
state_after: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Ring R
p✝ p q : R[X]
hq : q.leadingCoeff = -1
hpq : p.degree < q.degree
this : (-q).coeff (-q).natDegree = 1
⊢ p.degree < (-q).degree

tactic: rwa [degree_neg]
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Ring R
p✝ p q : R[X]
hq : q.leadingCoeff = -1
hpq : p.degree < q.degree
this : (-q).coeff (-q).natDegree = 1
⊢ p.degree < (-q).degree
state_after: no goals

tactic: rw [natDegree_neg, coeff_neg, show q.coeff q.natDegree = -1 from hq, neg_neg]
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Ring R
p✝ p q : R[X]
hq : q.leadingCoeff = -1
hpq : p.degree < q.degree
⊢ (-q).coeff (-q).natDegree = 1
state_after: no goals
Theorem: MeasureTheory.mem_map_restrict_ae_iff
File: Mathlib/MeasureTheory/Measure/Restrict.lean

tactic: rw [mem_map, mem_ae_iff, Measure.restrict_apply' hs]
state_before: R : Type u_1
α : Type u_2
β✝ : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β✝
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ : Set α
β : Type u_7
s : Set α
t : Set β
f : α → β
hs : MeasurableSet s
⊢ t ∈ Filter.map f (ae (μ.restrict s)) ↔ μ ((f ⁻¹' t)ᶜ ∩ s) = 0
state_after: no goals
Theorem: Unitization.splitMul_apply
File: Mathlib/Analysis/NormedSpace/Unitization.lean

tactic: rw [add_zero]
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NonUnitalNormedRing A
inst✝² : NormedSpace 𝕜 A
inst✝¹ : IsScalarTower 𝕜 A A
inst✝ : SMulCommClass 𝕜 A A
x : Unitization 𝕜 A
⊢ (x.fst + 0, (lift (NonUnitalAlgHom.Lmul 𝕜 A)).toRingHom x) =
    (x.fst, (algebraMap 𝕜 (A →L[𝕜] A)) x.fst + (mul 𝕜 A) x.snd)
state_after: 𝕜 : Type u_1
A : Type u_2
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NonUnitalNormedRing A
inst✝² : NormedSpace 𝕜 A
inst✝¹ : IsScalarTower 𝕜 A A
inst✝ : SMulCommClass 𝕜 A A
x : Unitization 𝕜 A
⊢ (x.fst, (lift (NonUnitalAlgHom.Lmul 𝕜 A)).toRingHom x) = (x.fst, (algebraMap 𝕜 (A →L[𝕜] A)) x.fst + (mul 𝕜 A) x.snd)

tactic: rfl
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NonUnitalNormedRing A
inst✝² : NormedSpace 𝕜 A
inst✝¹ : IsScalarTower 𝕜 A A
inst✝ : SMulCommClass 𝕜 A A
x : Unitization 𝕜 A
⊢ (x.fst, (lift (NonUnitalAlgHom.Lmul 𝕜 A)).toRingHom x) = (x.fst, (algebraMap 𝕜 (A →L[𝕜] A)) x.fst + (mul 𝕜 A) x.snd)
state_after: no goals
Theorem: Complex.stolzSet_empty
File: Mathlib/Analysis/Complex/AbelLimit.lean

tactic: ext z
state_before: M : ℝ
hM : M ≤ 1
⊢ stolzSet M = ∅
state_after: case h
M : ℝ
hM : M ≤ 1
z : ℂ
⊢ z ∈ stolzSet M ↔ z ∈ ∅

tactic: rw [stolzSet, Set.mem_setOf, Set.mem_empty_iff_false, iff_false, not_and, not_lt, ← sub_pos]
state_before: case h
M : ℝ
hM : M ≤ 1
z : ℂ
⊢ z ∈ stolzSet M ↔ z ∈ ∅
state_after: case h
M : ℝ
hM : M ≤ 1
z : ℂ
⊢ 0 < 1 - ‖z‖ → M * (1 - ‖z‖) ≤ ‖1 - z‖

tactic: intro zn
state_before: case h
M : ℝ
hM : M ≤ 1
z : ℂ
⊢ 0 < 1 - ‖z‖ → M * (1 - ‖z‖) ≤ ‖1 - z‖
state_after: case h
M : ℝ
hM : M ≤ 1
z : ℂ
zn : 0 < 1 - ‖z‖
⊢ M * (1 - ‖z‖) ≤ ‖1 - z‖

tactic: calc
  _ ≤ 1 * (1 - ‖z‖) := mul_le_mul_of_nonneg_right hM zn.le
  _ = ‖(1 : ℂ)‖ - ‖z‖ := by rw [one_mul, norm_one]
  _ ≤ _ := norm_sub_norm_le _ _
state_before: case h
M : ℝ
hM : M ≤ 1
z : ℂ
zn : 0 < 1 - ‖z‖
⊢ M * (1 - ‖z‖) ≤ ‖1 - z‖
state_after: no goals

tactic: rw [one_mul, norm_one]
state_before: M : ℝ
hM : M ≤ 1
z : ℂ
zn : 0 < 1 - ‖z‖
⊢ 1 * (1 - ‖z‖) = ‖1‖ - ‖z‖
state_after: no goals
Theorem: IntermediateField.adjoin_algebraic_toSubalgebra
File: Mathlib/FieldTheory/Adjoin.lean

tactic: simp only [isAlgebraic_iff_isIntegral] at hS
state_before: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S✝ : Set E
α : E
S : Set E
hS : ∀ x ∈ S, IsAlgebraic F x
⊢ (adjoin F S).toSubalgebra = Algebra.adjoin F S
state_after: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S✝ : Set E
α : E
S : Set E
hS : ∀ x ∈ S, IsIntegral F x
⊢ (adjoin F S).toSubalgebra = Algebra.adjoin F S

tactic: have : Algebra.IsIntegral F (Algebra.adjoin F S) := by
  rwa [← le_integralClosure_iff_isIntegral, Algebra.adjoin_le_iff]
state_before: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S✝ : Set E
α : E
S : Set E
hS : ∀ x ∈ S, IsIntegral F x
⊢ (adjoin F S).toSubalgebra = Algebra.adjoin F S
state_after: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S✝ : Set E
α : E
S : Set E
hS : ∀ x ∈ S, IsIntegral F x
this : Algebra.IsIntegral F ↥(Algebra.adjoin F S)
⊢ (adjoin F S).toSubalgebra = Algebra.adjoin F S

tactic: have : IsField (Algebra.adjoin F S) := isField_of_isIntegral_of_isField' (Field.toIsField F)
state_before: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S✝ : Set E
α : E
S : Set E
hS : ∀ x ∈ S, IsIntegral F x
this : Algebra.IsIntegral F ↥(Algebra.adjoin F S)
⊢ (adjoin F S).toSubalgebra = Algebra.adjoin F S
state_after: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S✝ : Set E
α : E
S : Set E
hS : ∀ x ∈ S, IsIntegral F x
this✝ : Algebra.IsIntegral F ↥(Algebra.adjoin F S)
this : IsField ↥(Algebra.adjoin F S)
⊢ (adjoin F S).toSubalgebra = Algebra.adjoin F S

tactic: rw [← ((Algebra.adjoin F S).toIntermediateField' this).eq_adjoin_of_eq_algebra_adjoin F S] <;> rfl
state_before: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S✝ : Set E
α : E
S : Set E
hS : ∀ x ∈ S, IsIntegral F x
this✝ : Algebra.IsIntegral F ↥(Algebra.adjoin F S)
this : IsField ↥(Algebra.adjoin F S)
⊢ (adjoin F S).toSubalgebra = Algebra.adjoin F S
state_after: no goals

tactic: rwa [← le_integralClosure_iff_isIntegral, Algebra.adjoin_le_iff]
state_before: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S✝ : Set E
α : E
S : Set E
hS : ∀ x ∈ S, IsIntegral F x
⊢ Algebra.IsIntegral F ↥(Algebra.adjoin F S)
state_after: no goals
Theorem: Real.Angle.coe_two_pi
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: rw [sub_zero, Int.cast_one, mul_one]
state_before: ⊢ 2 * π - 0 = 2 * π * ↑1
state_after: no goals
Theorem: Complex.arg_exp_mul_I
File: Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean

tactic: convert arg_cos_add_sin_mul_I (θ := toIocMod (mul_pos two_pos Real.pi_pos) (-π) θ) _ using 2
state_before: a x z : ℂ
θ : ℝ
⊢ (cexp (↑θ * I)).arg = toIocMod ⋯ (-π) θ
state_after: case h.e'_2.h.e'_1
a x z : ℂ
θ : ℝ
⊢ cexp (↑θ * I) = cos ↑(toIocMod ⋯ (-π) θ) + sin ↑(toIocMod ⋯ (-π) θ) * I

a x z : ℂ
θ : ℝ
⊢ toIocMod ⋯ (-π) θ ∈ Ioc (-π) π

tactic: rw [← exp_mul_I, eq_sub_of_add_eq $ toIocMod_add_toIocDiv_zsmul _ _ θ, ofReal_sub,
  ofReal_zsmul, ofReal_mul, ofReal_ofNat, exp_mul_I_periodic.sub_zsmul_eq]
state_before: case h.e'_2.h.e'_1
a x z : ℂ
θ : ℝ
⊢ cexp (↑θ * I) = cos ↑(toIocMod ⋯ (-π) θ) + sin ↑(toIocMod ⋯ (-π) θ) * I
state_after: no goals

tactic: convert toIocMod_mem_Ioc _ _ _
state_before: a x z : ℂ
θ : ℝ
⊢ toIocMod ⋯ (-π) θ ∈ Ioc (-π) π
state_after: case h.e'_5.h.e'_4
a x z : ℂ
θ : ℝ
⊢ π = -π + 2 * π

tactic: ring
state_before: case h.e'_5.h.e'_4
a x z : ℂ
θ : ℝ
⊢ π = -π + 2 * π
state_after: no goals
Theorem: YoungDiagram.colLen_eq_card
File: Mathlib/Combinatorics/Young/YoungDiagram.lean

tactic: simp [col_eq_prod]
state_before: μ : YoungDiagram
j : ℕ
⊢ μ.colLen j = (μ.col j).card
state_after: no goals
Theorem: Subgroup.closure_induction'
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: refine Exists.elim ?_ fun (hx : x ∈ closure k) (hc : p x hx) => hc
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : Group G''
A : Type u_4
inst✝ : AddGroup A
H K : Subgroup G
k : Set G
p : (x : G) → x ∈ closure k → Prop
mem : ∀ (x : G) (h : x ∈ k), p x ⋯
one : p 1 ⋯
mul : ∀ (x : G) (hx : x ∈ closure k) (y : G) (hy : y ∈ closure k), p x hx → p y hy → p (x * y) ⋯
inv : ∀ (x : G) (hx : x ∈ closure k), p x hx → p x⁻¹ ⋯
x : G
hx : x ∈ closure k
⊢ p x hx
state_after: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : Group G''
A : Type u_4
inst✝ : AddGroup A
H K : Subgroup G
k : Set G
p : (x : G) → x ∈ closure k → Prop
mem : ∀ (x : G) (h : x ∈ k), p x ⋯
one : p 1 ⋯
mul : ∀ (x : G) (hx : x ∈ closure k) (y : G) (hy : y ∈ closure k), p x hx → p y hy → p (x * y) ⋯
inv : ∀ (x : G) (hx : x ∈ closure k), p x hx → p x⁻¹ ⋯
x : G
hx : x ∈ closure k
⊢ ∃ (x_1 : x ∈ closure k), p x x_1

tactic: exact
  closure_induction hx (fun x hx => ⟨_, mem x hx⟩) ⟨_, one⟩
    (fun x y ⟨hx', hx⟩ ⟨hy', hy⟩ => ⟨_, mul _ _ _ _ hx hy⟩) fun x ⟨hx', hx⟩ => ⟨_, inv _ _ hx⟩
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : Group G''
A : Type u_4
inst✝ : AddGroup A
H K : Subgroup G
k : Set G
p : (x : G) → x ∈ closure k → Prop
mem : ∀ (x : G) (h : x ∈ k), p x ⋯
one : p 1 ⋯
mul : ∀ (x : G) (hx : x ∈ closure k) (y : G) (hy : y ∈ closure k), p x hx → p y hy → p (x * y) ⋯
inv : ∀ (x : G) (hx : x ∈ closure k), p x hx → p x⁻¹ ⋯
x : G
hx : x ∈ closure k
⊢ ∃ (x_1 : x ∈ closure k), p x x_1
state_after: no goals
Theorem: MeasureTheory.hasFiniteIntegral_zero
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: simp [HasFiniteIntegral]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
⊢ HasFiniteIntegral (fun x => 0) μ
state_after: no goals
Theorem: QuadraticForm.polar_comm
File: Mathlib/LinearAlgebra/QuadraticForm/Basic.lean

tactic: rw [polar, polar, add_comm, sub_sub, sub_sub, add_comm (f x) (f y)]
state_before: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
inst✝¹ : CommRing R
inst✝ : AddCommGroup M
f : M → R
x y : M
⊢ polar f x y = polar f y x
state_after: no goals
Theorem: HasCompactSupport.convolution_integrand_bound_left
File: Mathlib/Analysis/Convolution.lean

tactic: convert hcf.convolution_integrand_bound_right L.flip hf hx using 1
state_before: 𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : NormedAddCommGroup E''
inst✝⁷ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x✝ x' : G
y y' : E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : NormedSpace 𝕜 E''
inst✝² : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝¹ : AddGroup G
inst✝ : TopologicalSpace G
hcf : HasCompactSupport f
hf : Continuous f
x t : G
s : Set G
hx : x ∈ s
⊢ ‖(L (f (x - t))) (g t)‖ ≤ (-tsupport f + s).indicator (fun t => (‖L‖ * ⨆ i, ‖f i‖) * ‖g t‖) t
state_after: case h.e'_4
𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : NormedAddCommGroup E''
inst✝⁷ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x✝ x' : G
y y' : E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : NormedSpace 𝕜 E''
inst✝² : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝¹ : AddGroup G
inst✝ : TopologicalSpace G
hcf : HasCompactSupport f
hf : Continuous f
x t : G
s : Set G
hx : x ∈ s
⊢ (-tsupport f + s).indicator (fun t => (‖L‖ * ⨆ i, ‖f i‖) * ‖g t‖) t =
    (-tsupport f + s).indicator (fun t => ‖L.flip‖ * ‖g t‖ * ⨆ i, ‖f i‖) t

tactic: simp_rw [L.opNorm_flip, mul_right_comm]
state_before: case h.e'_4
𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : NormedAddCommGroup E''
inst✝⁷ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x✝ x' : G
y y' : E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : NormedSpace 𝕜 E''
inst✝² : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝¹ : AddGroup G
inst✝ : TopologicalSpace G
hcf : HasCompactSupport f
hf : Continuous f
x t : G
s : Set G
hx : x ∈ s
⊢ (-tsupport f + s).indicator (fun t => (‖L‖ * ⨆ i, ‖f i‖) * ‖g t‖) t =
    (-tsupport f + s).indicator (fun t => ‖L.flip‖ * ‖g t‖ * ⨆ i, ‖f i‖) t
state_after: no goals
Theorem: Set.image_update_Ioo_left
File: Mathlib/Order/Interval/Set/Pi.lean

tactic: simpa using image_update_Ioo f i a (f i)
state_before: ι : Type u_1
α : ι → Type u_2
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → PartialOrder (α i)
f : (i : ι) → α i
i : ι
a : α i
⊢ update f i '' Ioo a (f i) = Ioo (update f i a) f
state_after: no goals
Theorem: Vector.toList_cons
File: Mathlib/Data/Vector/Defs.lean

tactic: cases v
state_before: α : Type u
β : Type v
φ : Type w
n : ℕ
a : α
v : Vector α n
⊢ (cons a v).toList = a :: v.toList
state_after: case mk
α : Type u
β : Type v
φ : Type w
n : ℕ
a : α
val✝ : List α
property✝ : val✝.length = n
⊢ (cons a ⟨val✝, property✝⟩).toList = a :: toList ⟨val✝, property✝⟩

tactic: rfl
state_before: case mk
α : Type u
β : Type v
φ : Type w
n : ℕ
a : α
val✝ : List α
property✝ : val✝.length = n
⊢ (cons a ⟨val✝, property✝⟩).toList = a :: toList ⟨val✝, property✝⟩
state_after: no goals