1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: ProbabilityTheory.IdentDistrib.lintegral_eq
File: Mathlib/Probability/IdentDistrib.lean

tactic: change ∫⁻ x, id (f x) ∂μ = ∫⁻ x, id (g x) ∂ν
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
μ : Measure α
ν : Measure β
f✝ : α → γ
g✝ : β → γ
f : α → ℝ≥0∞
g : β → ℝ≥0∞
h : IdentDistrib f g μ ν
⊢ ∫⁻ (x : α), f x ∂μ = ∫⁻ (x : β), g x ∂ν
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
μ : Measure α
ν : Measure β
f✝ : α → γ
g✝ : β → γ
f : α → ℝ≥0∞
g : β → ℝ≥0∞
h : IdentDistrib f g μ ν
⊢ ∫⁻ (x : α), id (f x) ∂μ = ∫⁻ (x : β), id (g x) ∂ν

tactic: rw [← lintegral_map' aemeasurable_id h.aemeasurable_fst, ←
  lintegral_map' aemeasurable_id h.aemeasurable_snd, h.map_eq]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
μ : Measure α
ν : Measure β
f✝ : α → γ
g✝ : β → γ
f : α → ℝ≥0∞
g : β → ℝ≥0∞
h : IdentDistrib f g μ ν
⊢ ∫⁻ (x : α), id (f x) ∂μ = ∫⁻ (x : β), id (g x) ∂ν
state_after: no goals
Theorem: FixedPoints.minpoly.monic
File: Mathlib/FieldTheory/Fixed.lean

tactic: simp only [minpoly, Polynomial.monic_toSubring]
state_before: M : Type u
inst✝⁵ : Monoid M
G : Type u
inst✝⁴ : Group G
F : Type v
inst✝³ : Field F
inst✝² : MulSemiringAction M F
inst✝¹ : MulSemiringAction G F
m : M
inst✝ : Fintype G
x : F
⊢ (minpoly G F x).Monic
state_after: M : Type u
inst✝⁵ : Monoid M
G : Type u
inst✝⁴ : Group G
F : Type v
inst✝³ : Field F
inst✝² : MulSemiringAction M F
inst✝¹ : MulSemiringAction G F
m : M
inst✝ : Fintype G
x : F
⊢ (prodXSubSMul G F x).Monic

tactic: exact prodXSubSMul.monic G F x
state_before: M : Type u
inst✝⁵ : Monoid M
G : Type u
inst✝⁴ : Group G
F : Type v
inst✝³ : Field F
inst✝² : MulSemiringAction M F
inst✝¹ : MulSemiringAction G F
m : M
inst✝ : Fintype G
x : F
⊢ (prodXSubSMul G F x).Monic
state_after: no goals
Theorem: LieAlgebra.IsKilling.root_apply_coroot
File: Mathlib/Algebra/Lie/Weights/Killing.lean

tactic: rw [← Weight.coe_coe]
state_before: R : Type u_1
K : Type u_2
L : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : Field K
inst✝⁵ : LieAlgebra K L
inst✝⁴ : FiniteDimensional K L
H : LieSubalgebra K L
inst✝³ : H.IsCartanSubalgebra
inst✝² : IsTriangularizable K (↥H) L
inst✝¹ : IsKilling K L
inst✝ : CharZero K
α : Weight K (↥H) L
hα : α.IsNonZero
⊢ α (coroot α) = 2
state_after: R : Type u_1
K : Type u_2
L : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : Field K
inst✝⁵ : LieAlgebra K L
inst✝⁴ : FiniteDimensional K L
H : LieSubalgebra K L
inst✝³ : H.IsCartanSubalgebra
inst✝² : IsTriangularizable K (↥H) L
inst✝¹ : IsKilling K L
inst✝ : CharZero K
α : Weight K (↥H) L
hα : α.IsNonZero
⊢ (Weight.toLinear K (↥H) L α) (coroot α) = 2

tactic: simpa [coroot] using inv_mul_cancel (root_apply_cartanEquivDual_symm_ne_zero hα)
state_before: R : Type u_1
K : Type u_2
L : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : Field K
inst✝⁵ : LieAlgebra K L
inst✝⁴ : FiniteDimensional K L
H : LieSubalgebra K L
inst✝³ : H.IsCartanSubalgebra
inst✝² : IsTriangularizable K (↥H) L
inst✝¹ : IsKilling K L
inst✝ : CharZero K
α : Weight K (↥H) L
hα : α.IsNonZero
⊢ (Weight.toLinear K (↥H) L α) (coroot α) = 2
state_after: no goals
Theorem: deriv_div_const
File: Mathlib/Analysis/Calculus/Deriv/Mul.lean

tactic: simp only [div_eq_mul_inv, deriv_mul_const_field]
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
G : Type u_1
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type u_2
inst✝¹ : NontriviallyNormedField 𝕜'
inst✝ : NormedAlgebra 𝕜 𝕜'
c d✝ : 𝕜 → 𝕜'
c' d' d : 𝕜'
⊢ deriv (fun x => c x / d) x = deriv c x / d
state_after: no goals
Theorem: LieModule.weightSpace_chainTopCoeff_add_one_zsmul_add
File: Mathlib/Algebra/Lie/Weights/Chain.lean

tactic: rw [← weightSpace_chainTopCoeff_add_one_nsmul_add α β hα, nsmul_eq_smul_cast ℤ,
  Nat.cast_add, Nat.cast_one]
state_before: R : Type u_1
L : Type u_2
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
M : Type u_3
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : LieAlgebra.IsNilpotent R L
inst✝² : NoZeroSMulDivisors ℤ R
inst✝¹ : NoZeroSMulDivisors R M
inst✝ : IsNoetherian R M
α : L → R
β : Weight R L M
hα : α ≠ 0
⊢ weightSpace M ((↑(chainTopCoeff α β) + 1) • α + ⇑β) = ⊥
state_after: no goals
Theorem: Complex.inv_Gammaℝ_one_sub
File: Mathlib/Analysis/SpecialFunctions/Gamma/Deligne.lean

tactic: have h1 : Gammaℝ s ≠ 0 := by
  rw [Ne, Gammaℝ_eq_zero_iff, not_exists]
  intro n h
  specialize hs (2 * n)
  simp_all
state_before: s : ℂ
hs : ∀ (n : ℕ), s ≠ -↑n
⊢ (1 - s).Gammaℝ⁻¹ = s.Gammaℂ * cos (↑π * s / 2) * s.Gammaℝ⁻¹
state_after: s : ℂ
hs : ∀ (n : ℕ), s ≠ -↑n
h1 : s.Gammaℝ ≠ 0
⊢ (1 - s).Gammaℝ⁻¹ = s.Gammaℂ * cos (↑π * s / 2) * s.Gammaℝ⁻¹

tactic: have h2 : ∀ (n : ℕ), s ≠ -(2 * ↑n + 1) := by
  intro n h
  specialize hs (2 * n + 1)
  simp_all
state_before: s : ℂ
hs : ∀ (n : ℕ), s ≠ -↑n
h1 : s.Gammaℝ ≠ 0
⊢ (1 - s).Gammaℝ⁻¹ = s.Gammaℂ * cos (↑π * s / 2) * s.Gammaℝ⁻¹
state_after: s : ℂ
hs : ∀ (n : ℕ), s ≠ -↑n
h1 : s.Gammaℝ ≠ 0
h2 : ∀ (n : ℕ), s ≠ -(2 * ↑n + 1)
⊢ (1 - s).Gammaℝ⁻¹ = s.Gammaℂ * cos (↑π * s / 2) * s.Gammaℝ⁻¹

tactic: rw [← Gammaℝ_div_Gammaℝ_one_sub h2, ← div_eq_mul_inv, div_right_comm, div_self h1, one_div]
state_before: s : ℂ
hs : ∀ (n : ℕ), s ≠ -↑n
h1 : s.Gammaℝ ≠ 0
h2 : ∀ (n : ℕ), s ≠ -(2 * ↑n + 1)
⊢ (1 - s).Gammaℝ⁻¹ = s.Gammaℂ * cos (↑π * s / 2) * s.Gammaℝ⁻¹
state_after: no goals

tactic: rw [Ne, Gammaℝ_eq_zero_iff, not_exists]
state_before: s : ℂ
hs : ∀ (n : ℕ), s ≠ -↑n
⊢ s.Gammaℝ ≠ 0
state_after: s : ℂ
hs : ∀ (n : ℕ), s ≠ -↑n
⊢ ∀ (x : ℕ), ¬s = -(2 * ↑x)

tactic: intro n h
state_before: s : ℂ
hs : ∀ (n : ℕ), s ≠ -↑n
⊢ ∀ (x : ℕ), ¬s = -(2 * ↑x)
state_after: s : ℂ
hs : ∀ (n : ℕ), s ≠ -↑n
n : ℕ
h : s = -(2 * ↑n)
⊢ False

tactic: specialize hs (2 * n)
state_before: s : ℂ
hs : ∀ (n : ℕ), s ≠ -↑n
n : ℕ
h : s = -(2 * ↑n)
⊢ False
state_after: s : ℂ
n : ℕ
h : s = -(2 * ↑n)
hs : s ≠ -↑(2 * n)
⊢ False

tactic: simp_all
state_before: s : ℂ
n : ℕ
h : s = -(2 * ↑n)
hs : s ≠ -↑(2 * n)
⊢ False
state_after: no goals

tactic: intro n h
state_before: s : ℂ
hs : ∀ (n : ℕ), s ≠ -↑n
h1 : s.Gammaℝ ≠ 0
⊢ ∀ (n : ℕ), s ≠ -(2 * ↑n + 1)
state_after: s : ℂ
hs : ∀ (n : ℕ), s ≠ -↑n
h1 : s.Gammaℝ ≠ 0
n : ℕ
h : s = -(2 * ↑n + 1)
⊢ False

tactic: specialize hs (2 * n + 1)
state_before: s : ℂ
hs : ∀ (n : ℕ), s ≠ -↑n
h1 : s.Gammaℝ ≠ 0
n : ℕ
h : s = -(2 * ↑n + 1)
⊢ False
state_after: s : ℂ
h1 : s.Gammaℝ ≠ 0
n : ℕ
h : s = -(2 * ↑n + 1)
hs : s ≠ -↑(2 * n + 1)
⊢ False

tactic: simp_all
state_before: s : ℂ
h1 : s.Gammaℝ ≠ 0
n : ℕ
h : s = -(2 * ↑n + 1)
hs : s ≠ -↑(2 * n + 1)
⊢ False
state_after: no goals
Theorem: Set.InjOn.prodMap
File: Mathlib/Data/Set/Function.lean

tactic: simp_rw [Prod.ext_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
α₁ : Type u_6
α₂ : Type u_7
β₁ : Type u_8
β₂ : Type u_9
s₁ : Set α₁
s₂ : Set α₂
t₁ : Set β₁
t₂ : Set β₂
f₁ : α₁ → β₁
f₂ : α₂ → β₂
g₁ : β₁ → α₁
g₂ : β₂ → α₂
h₁ : InjOn f₁ s₁
h₂ : InjOn f₂ s₂
x : α₁ × α₂
hx : x ∈ s₁ ×ˢ s₂
y : α₁ × α₂
hy : y ∈ s₁ ×ˢ s₂
⊢ (fun x => (f₁ x.1, f₂ x.2)) x = (fun x => (f₁ x.1, f₂ x.2)) y → x = y
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
α₁ : Type u_6
α₂ : Type u_7
β₁ : Type u_8
β₂ : Type u_9
s₁ : Set α₁
s₂ : Set α₂
t₁ : Set β₁
t₂ : Set β₂
f₁ : α₁ → β₁
f₂ : α₂ → β₂
g₁ : β₁ → α₁
g₂ : β₂ → α₂
h₁ : InjOn f₁ s₁
h₂ : InjOn f₂ s₂
x : α₁ × α₂
hx : x ∈ s₁ ×ˢ s₂
y : α₁ × α₂
hy : y ∈ s₁ ×ˢ s₂
⊢ f₁ x.1 = f₁ y.1 ∧ f₂ x.2 = f₂ y.2 → x.1 = y.1 ∧ x.2 = y.2

tactic: exact And.imp (h₁ hx.1 hy.1) (h₂ hx.2 hy.2)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
α₁ : Type u_6
α₂ : Type u_7
β₁ : Type u_8
β₂ : Type u_9
s₁ : Set α₁
s₂ : Set α₂
t₁ : Set β₁
t₂ : Set β₂
f₁ : α₁ → β₁
f₂ : α₂ → β₂
g₁ : β₁ → α₁
g₂ : β₂ → α₂
h₁ : InjOn f₁ s₁
h₂ : InjOn f₂ s₂
x : α₁ × α₂
hx : x ∈ s₁ ×ˢ s₂
y : α₁ × α₂
hy : y ∈ s₁ ×ˢ s₂
⊢ f₁ x.1 = f₁ y.1 ∧ f₂ x.2 = f₂ y.2 → x.1 = y.1 ∧ x.2 = y.2
state_after: no goals
Theorem: NNReal.inv_lt_one_iff
File: Mathlib/Data/NNReal/Basic.lean

tactic: rw [← one_div, div_lt_iff hx, one_mul]
state_before: x : ℝ≥0
hx : x ≠ 0
⊢ x⁻¹ < 1 ↔ 1 < x
state_after: no goals
Theorem: Semigroup.mem_center_iff
File: Mathlib/Algebra/Group/Center.lean

tactic: rw [IsMulCentral.comm a g]
state_before: M : Type u_1
inst✝ : Semigroup M
z : M
a : z ∈ center M
g : M
⊢ g * z = z * g
state_after: no goals
Theorem: ENNReal.toNNReal_sInf
File: Mathlib/Data/ENNReal/Real.lean

tactic: have hf : ∀ i, ((↑) : s → ℝ≥0∞) i ≠ ∞ := fun ⟨r, rs⟩ => hs r rs
state_before: ι : Sort u_1
f g : ι → ℝ≥0∞
a b c d : ℝ≥0∞
r p q : ℝ≥0
s : Set ℝ≥0∞
hs : ∀ r ∈ s, r ≠ ⊤
⊢ (sInf s).toNNReal = sInf (ENNReal.toNNReal '' s)
state_after: ι : Sort u_1
f g : ι → ℝ≥0∞
a b c d : ℝ≥0∞
r p q : ℝ≥0
s : Set ℝ≥0∞
hs : ∀ r ∈ s, r ≠ ⊤
hf : ∀ (i : { x // x ∈ s }), ↑i ≠ ⊤
⊢ (sInf s).toNNReal = sInf (ENNReal.toNNReal '' s)

tactic: simpa only [← sInf_range, ← image_eq_range, Subtype.range_coe_subtype] using (toNNReal_iInf hf)
state_before: ι : Sort u_1
f g : ι → ℝ≥0∞
a b c d : ℝ≥0∞
r p q : ℝ≥0
s : Set ℝ≥0∞
hs : ∀ r ∈ s, r ≠ ⊤
hf : ∀ (i : { x // x ∈ s }), ↑i ≠ ⊤
⊢ (sInf s).toNNReal = sInf (ENNReal.toNNReal '' s)
state_after: no goals
Theorem: Metric.isBounded_range_iff
File: Mathlib/Topology/MetricSpace/Bounded.lean

tactic: simp only [forall_mem_range]
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
x : α
s t : Set α
r : ℝ
f : β → α
⊢ (∃ C, ∀ ⦃x : α⦄, x ∈ range f → ∀ ⦃y : α⦄, y ∈ range f → dist x y ≤ C) ↔ ∃ C, ∀ (x y : β), dist (f x) (f y) ≤ C
state_after: no goals
Theorem: NeZero.nat_of_neZero
File: Mathlib/Data/Nat/Cast/Basic.lean

tactic: simp only [map_natCast, hn]
state_before: α : Type u_1
β : Type u_2
R✝ : Type u_3
S✝ : Type u_4
F✝ : Type u_5
inst✝⁵ : NonAssocSemiring R✝
inst✝⁴ : NonAssocSemiring S✝
R : Type u_6
S : Type u_7
inst✝³ : Semiring R
inst✝² : Semiring S
F : Type u_8
inst✝¹ : FunLike F R S
inst✝ : RingHomClass F R S
f : F
n : ℕ
hn : NeZero ↑n
⊢ NeZero (f ↑n)
state_after: no goals
Theorem: MeasureTheory.IsFundamentalDomain.measure_zero_of_invariant
File: Mathlib/MeasureTheory/Group/FundamentalDomain.lean

tactic: rw [measure_eq_tsum h]
state_before: G : Type u_1
H : Type u_2
α : Type u_3
β : Type u_4
E : Type u_5
inst✝¹⁰ : Group G
inst✝⁹ : Group H
inst✝⁸ : MulAction G α
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MulAction H β
inst✝⁵ : MeasurableSpace β
inst✝⁴ : NormedAddCommGroup E
s t✝ : Set α
μ : Measure α
inst✝³ : MeasurableSpace G
inst✝² : MeasurableSMul G α
inst✝¹ : SMulInvariantMeasure G α μ
inst✝ : Countable G
ν : Measure α
h : IsFundamentalDomain G s μ
t : Set α
ht : ∀ (g : G), g • t = t
hts : μ (t ∩ s) = 0
⊢ μ t = 0
state_after: G : Type u_1
H : Type u_2
α : Type u_3
β : Type u_4
E : Type u_5
inst✝¹⁰ : Group G
inst✝⁹ : Group H
inst✝⁸ : MulAction G α
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MulAction H β
inst✝⁵ : MeasurableSpace β
inst✝⁴ : NormedAddCommGroup E
s t✝ : Set α
μ : Measure α
inst✝³ : MeasurableSpace G
inst✝² : MeasurableSMul G α
inst✝¹ : SMulInvariantMeasure G α μ
inst✝ : Countable G
ν : Measure α
h : IsFundamentalDomain G s μ
t : Set α
ht : ∀ (g : G), g • t = t
hts : μ (t ∩ s) = 0
⊢ ∑' (g : G), μ (g • t ∩ s) = 0

tactic: simp [ht, hts]
state_before: G : Type u_1
H : Type u_2
α : Type u_3
β : Type u_4
E : Type u_5
inst✝¹⁰ : Group G
inst✝⁹ : Group H
inst✝⁸ : MulAction G α
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MulAction H β
inst✝⁵ : MeasurableSpace β
inst✝⁴ : NormedAddCommGroup E
s t✝ : Set α
μ : Measure α
inst✝³ : MeasurableSpace G
inst✝² : MeasurableSMul G α
inst✝¹ : SMulInvariantMeasure G α μ
inst✝ : Countable G
ν : Measure α
h : IsFundamentalDomain G s μ
t : Set α
ht : ∀ (g : G), g • t = t
hts : μ (t ∩ s) = 0
⊢ ∑' (g : G), μ (g • t ∩ s) = 0
state_after: no goals
Theorem: NonarchimedeanGroup.prod_self_subset
File: Mathlib/Topology/Algebra/Nonarchimedean/Basic.lean

tactic: refine Set.Subset.trans (Set.prod_mono ?_ ?_) ‹_› <;> simp
state_before: G : Type u_1
inst✝⁸ : Group G
inst✝⁷ : TopologicalSpace G
inst✝⁶ : NonarchimedeanGroup G
H : Type u_2
inst✝⁵ : Group H
inst✝⁴ : TopologicalSpace H
inst✝³ : TopologicalGroup H
K : Type u_3
inst✝² : Group K
inst✝¹ : TopologicalSpace K
inst✝ : NonarchimedeanGroup K
U : Set (G × G)
hU : U ∈ 𝓝 1
V W : OpenSubgroup G
h : ↑V ×ˢ ↑W ⊆ U
⊢ ↑(V ⊓ W) ×ˢ ↑(V ⊓ W) ⊆ U
state_after: no goals
Theorem: ContinuousLinearMap.coe_toContinuousLinearEquivOfDetNeZero
File: Mathlib/Topology/Algebra/Module/FiniteDimension.lean

tactic: ext x
state_before: 𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁷ : AddCommGroup E
inst✝¹⁶ : Module 𝕜 E
inst✝¹⁵ : TopologicalSpace E
inst✝¹⁴ : TopologicalAddGroup E
inst✝¹³ : ContinuousSMul 𝕜 E
F : Type w
inst✝¹² : AddCommGroup F
inst✝¹¹ : Module 𝕜 F
inst✝¹⁰ : TopologicalSpace F
inst✝⁹ : TopologicalAddGroup F
inst✝⁸ : ContinuousSMul 𝕜 F
F' : Type x
inst✝⁷ : AddCommGroup F'
inst✝⁶ : Module 𝕜 F'
inst✝⁵ : TopologicalSpace F'
inst✝⁴ : TopologicalAddGroup F'
inst✝³ : ContinuousSMul 𝕜 F'
inst✝² : CompleteSpace 𝕜
inst✝¹ : T2Space E
inst✝ : FiniteDimensional 𝕜 E
f : E →L[𝕜] E
hf : f.det ≠ 0
⊢ ↑(f.toContinuousLinearEquivOfDetNeZero hf) = f
state_after: case h
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁷ : AddCommGroup E
inst✝¹⁶ : Module 𝕜 E
inst✝¹⁵ : TopologicalSpace E
inst✝¹⁴ : TopologicalAddGroup E
inst✝¹³ : ContinuousSMul 𝕜 E
F : Type w
inst✝¹² : AddCommGroup F
inst✝¹¹ : Module 𝕜 F
inst✝¹⁰ : TopologicalSpace F
inst✝⁹ : TopologicalAddGroup F
inst✝⁸ : ContinuousSMul 𝕜 F
F' : Type x
inst✝⁷ : AddCommGroup F'
inst✝⁶ : Module 𝕜 F'
inst✝⁵ : TopologicalSpace F'
inst✝⁴ : TopologicalAddGroup F'
inst✝³ : ContinuousSMul 𝕜 F'
inst✝² : CompleteSpace 𝕜
inst✝¹ : T2Space E
inst✝ : FiniteDimensional 𝕜 E
f : E →L[𝕜] E
hf : f.det ≠ 0
x : E
⊢ ↑(f.toContinuousLinearEquivOfDetNeZero hf) x = f x

tactic: rfl
state_before: case h
𝕜 : Type u
hnorm : NontriviallyNormedField 𝕜
E : Type v
inst✝¹⁷ : AddCommGroup E
inst✝¹⁶ : Module 𝕜 E
inst✝¹⁵ : TopologicalSpace E
inst✝¹⁴ : TopologicalAddGroup E
inst✝¹³ : ContinuousSMul 𝕜 E
F : Type w
inst✝¹² : AddCommGroup F
inst✝¹¹ : Module 𝕜 F
inst✝¹⁰ : TopologicalSpace F
inst✝⁹ : TopologicalAddGroup F
inst✝⁸ : ContinuousSMul 𝕜 F
F' : Type x
inst✝⁷ : AddCommGroup F'
inst✝⁶ : Module 𝕜 F'
inst✝⁵ : TopologicalSpace F'
inst✝⁴ : TopologicalAddGroup F'
inst✝³ : ContinuousSMul 𝕜 F'
inst✝² : CompleteSpace 𝕜
inst✝¹ : T2Space E
inst✝ : FiniteDimensional 𝕜 E
f : E →L[𝕜] E
hf : f.det ≠ 0
x : E
⊢ ↑(f.toContinuousLinearEquivOfDetNeZero hf) x = f x
state_after: no goals
Theorem: AddCircle.liftIco_zero_coe_apply
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 𝕜
f : 𝕜 → B
x : 𝕜
hx : x ∈ Ico 0 p
⊢ x ∈ Ico 0 (0 + p)
state_after: no goals
Theorem: nhds_bot_order
File: Mathlib/Topology/Order/Basic.lean

tactic: simp [nhds_eq_order (⊥ : α)]
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : Preorder α
inst✝¹ : OrderBot α
inst✝ : OrderTopology α
⊢ 𝓝 ⊥ = ⨅ l, ⨅ (_ : ⊥ < l), 𝓟 (Iio l)
state_after: no goals
Theorem: DistribMulActionHom.toAddMonoidHom_injective
File: Mathlib/GroupTheory/GroupAction/Hom.lean

tactic: ext a
state_before: M : Type u_1
inst✝¹⁵ : Monoid M
N : Type u_2
inst✝¹⁴ : Monoid N
P : Type u_3
inst✝¹³ : Monoid P
φ : M →* N
φ' : N →* M
ψ : N →* P
χ : M →* P
A : Type u_4
inst✝¹² : AddMonoid A
inst✝¹¹ : DistribMulAction M A
B : Type u_5
inst✝¹⁰ : AddMonoid B
inst✝⁹ : DistribMulAction N B
B₁ : Type u_6
inst✝⁸ : AddMonoid B₁
inst✝⁷ : DistribMulAction M B₁
C : Type u_7
inst✝⁶ : AddMonoid C
inst✝⁵ : DistribMulAction P C
A' : Type u_8
inst✝⁴ : AddGroup A'
inst✝³ : DistribMulAction M A'
B' : Type u_9
inst✝² : AddGroup B'
inst✝¹ : DistribMulAction N B'
F : Type u_10
inst✝ : FunLike F A B
f g : A →ₑ+[φ] B
h : ↑f = ↑g
⊢ f = g
state_after: case a
M : Type u_1
inst✝¹⁵ : Monoid M
N : Type u_2
inst✝¹⁴ : Monoid N
P : Type u_3
inst✝¹³ : Monoid P
φ : M →* N
φ' : N →* M
ψ : N →* P
χ : M →* P
A : Type u_4
inst✝¹² : AddMonoid A
inst✝¹¹ : DistribMulAction M A
B : Type u_5
inst✝¹⁰ : AddMonoid B
inst✝⁹ : DistribMulAction N B
B₁ : Type u_6
inst✝⁸ : AddMonoid B₁
inst✝⁷ : DistribMulAction M B₁
C : Type u_7
inst✝⁶ : AddMonoid C
inst✝⁵ : DistribMulAction P C
A' : Type u_8
inst✝⁴ : AddGroup A'
inst✝³ : DistribMulAction M A'
B' : Type u_9
inst✝² : AddGroup B'
inst✝¹ : DistribMulAction N B'
F : Type u_10
inst✝ : FunLike F A B
f g : A →ₑ+[φ] B
h : ↑f = ↑g
a : A
⊢ f a = g a

tactic: exact DFunLike.congr_fun h a
state_before: case a
M : Type u_1
inst✝¹⁵ : Monoid M
N : Type u_2
inst✝¹⁴ : Monoid N
P : Type u_3
inst✝¹³ : Monoid P
φ : M →* N
φ' : N →* M
ψ : N →* P
χ : M →* P
A : Type u_4
inst✝¹² : AddMonoid A
inst✝¹¹ : DistribMulAction M A
B : Type u_5
inst✝¹⁰ : AddMonoid B
inst✝⁹ : DistribMulAction N B
B₁ : Type u_6
inst✝⁸ : AddMonoid B₁
inst✝⁷ : DistribMulAction M B₁
C : Type u_7
inst✝⁶ : AddMonoid C
inst✝⁵ : DistribMulAction P C
A' : Type u_8
inst✝⁴ : AddGroup A'
inst✝³ : DistribMulAction M A'
B' : Type u_9
inst✝² : AddGroup B'
inst✝¹ : DistribMulAction N B'
F : Type u_10
inst✝ : FunLike F A B
f g : A →ₑ+[φ] B
h : ↑f = ↑g
a : A
⊢ f a = g a
state_after: no goals
Theorem: EuclideanGeometry.dist_reflection
File: Mathlib/Geometry/Euclidean/Basic.lean

tactic: conv_lhs => rw [← reflection_reflection s p₁]
state_before: V : Type u_1
P : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : MetricSpace P
inst✝² : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝¹ : Nonempty ↥s
inst✝ : HasOrthogonalProjection s.direction
p₁ p₂ : P
⊢ dist p₁ ((reflection s) p₂) = dist ((reflection s) p₁) p₂
state_after: V : Type u_1
P : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : MetricSpace P
inst✝² : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝¹ : Nonempty ↥s
inst✝ : HasOrthogonalProjection s.direction
p₁ p₂ : P
⊢ dist ((reflection s) ((reflection s) p₁)) ((reflection s) p₂) = dist ((reflection s) p₁) p₂

tactic: exact (reflection s).dist_map _ _
state_before: V : Type u_1
P : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : MetricSpace P
inst✝² : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝¹ : Nonempty ↥s
inst✝ : HasOrthogonalProjection s.direction
p₁ p₂ : P
⊢ dist ((reflection s) ((reflection s) p₁)) ((reflection s) p₂) = dist ((reflection s) p₁) p₂
state_after: no goals
Theorem: Equiv.Perm.card_compl_support_modEq
File: Mathlib/GroupTheory/Perm/Cycle/Type.lean

tactic: rw [Nat.modEq_iff_dvd', ← Finset.card_compl, compl_compl, ← sum_cycleType]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
⊢ σ.supportᶜ.card ≡ Fintype.card α [MOD p]
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
⊢ p ∣ σ.cycleType.sum

α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
⊢ σ.supportᶜ.card ≤ Fintype.card α

tactic: refine Multiset.dvd_sum fun k hk => ?_
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
⊢ p ∣ σ.cycleType.sum
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
k : ℕ
hk : k ∈ σ.cycleType
⊢ p ∣ k

tactic: obtain ⟨m, -, hm⟩ := (Nat.dvd_prime_pow hp.out).mp (orderOf_dvd_of_pow_eq_one hσ)
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
k : ℕ
hk : k ∈ σ.cycleType
⊢ p ∣ k
state_after: case intro.intro
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
k : ℕ
hk : k ∈ σ.cycleType
m : ℕ
hm : orderOf σ = p ^ m
⊢ p ∣ k

tactic: obtain ⟨l, -, rfl⟩ := (Nat.dvd_prime_pow hp.out).mp
  ((congr_arg _ hm).mp (dvd_of_mem_cycleType hk))
state_before: case intro.intro
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
k : ℕ
hk : k ∈ σ.cycleType
m : ℕ
hm : orderOf σ = p ^ m
⊢ p ∣ k
state_after: case intro.intro.intro.intro
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
m : ℕ
hm : orderOf σ = p ^ m
l : ℕ
hk : p ^ l ∈ σ.cycleType
⊢ p ∣ p ^ l

tactic: exact dvd_pow_self _ fun h => (one_lt_of_mem_cycleType hk).ne <| by rw [h, pow_zero]
state_before: case intro.intro.intro.intro
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
m : ℕ
hm : orderOf σ = p ^ m
l : ℕ
hk : p ^ l ∈ σ.cycleType
⊢ p ∣ p ^ l
state_after: no goals

tactic: rw [h, pow_zero]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
m : ℕ
hm : orderOf σ = p ^ m
l : ℕ
hk : p ^ l ∈ σ.cycleType
h : l = 0
⊢ 1 = p ^ l
state_after: no goals

tactic: exact Finset.card_le_univ _
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
⊢ σ.supportᶜ.card ≤ Fintype.card α
state_after: no goals
Theorem: Polynomial.eval₂_natCast
File: Mathlib/Algebra/Polynomial/Eval.lean

tactic: induction' n with n ih
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n✝ : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
f : R →+* S
x : S
n : ℕ
⊢ eval₂ f x ↑n = ↑n
state_after: case zero
R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
f : R →+* S
x : S
⊢ eval₂ f x ↑0 = ↑0

case succ
R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n✝ : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
f : R →+* S
x : S
n : ℕ
ih : eval₂ f x ↑n = ↑n
⊢ eval₂ f x ↑(n + 1) = ↑(n + 1)

tactic: simp only [eval₂_zero, Nat.cast_zero, Nat.zero_eq]
state_before: case zero
R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
f : R →+* S
x : S
⊢ eval₂ f x ↑0 = ↑0
state_after: no goals

tactic: rw [n.cast_succ, eval₂_add, ih, eval₂_one, n.cast_succ]
state_before: case succ
R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n✝ : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
f : R →+* S
x : S
n : ℕ
ih : eval₂ f x ↑n = ↑n
⊢ eval₂ f x ↑(n + 1) = ↑(n + 1)
state_after: no goals