1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MeasureTheory.Measure.map_sum
File: Mathlib/MeasureTheory/Measure/AEMeasurable.lean

tactic: ext s hs
state_before: ι✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
R : Type u_6
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
f✝ g : α → β
μ ν : Measure α
ι : Type u_7
m : ι → Measure α
f : α → β
hf : AEMeasurable f (sum m)
⊢ map f (sum m) = sum fun i => map f (m i)
state_after: case h
ι✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
R : Type u_6
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
f✝ g : α → β
μ ν : Measure α
ι : Type u_7
m : ι → Measure α
f : α → β
hf : AEMeasurable f (sum m)
s : Set β
hs : MeasurableSet s
⊢ (map f (sum m)) s = (sum fun i => map f (m i)) s

tactic: rw [map_apply_of_aemeasurable hf hs, sum_apply₀ _ (hf.nullMeasurable hs), sum_apply _ hs]
state_before: case h
ι✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
R : Type u_6
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
f✝ g : α → β
μ ν : Measure α
ι : Type u_7
m : ι → Measure α
f : α → β
hf : AEMeasurable f (sum m)
s : Set β
hs : MeasurableSet s
⊢ (map f (sum m)) s = (sum fun i => map f (m i)) s
state_after: case h
ι✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
R : Type u_6
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
f✝ g : α → β
μ ν : Measure α
ι : Type u_7
m : ι → Measure α
f : α → β
hf : AEMeasurable f (sum m)
s : Set β
hs : MeasurableSet s
⊢ ∑' (i : ι), (m i) (f ⁻¹' s) = ∑' (i : ι), (map f (m i)) s

tactic: have M i : AEMeasurable f (m i) := hf.mono_measure (le_sum m i)
state_before: case h
ι✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
R : Type u_6
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
f✝ g : α → β
μ ν : Measure α
ι : Type u_7
m : ι → Measure α
f : α → β
hf : AEMeasurable f (sum m)
s : Set β
hs : MeasurableSet s
⊢ ∑' (i : ι), (m i) (f ⁻¹' s) = ∑' (i : ι), (map f (m i)) s
state_after: case h
ι✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
R : Type u_6
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
f✝ g : α → β
μ ν : Measure α
ι : Type u_7
m : ι → Measure α
f : α → β
hf : AEMeasurable f (sum m)
s : Set β
hs : MeasurableSet s
M : ∀ (i : ι), AEMeasurable f (m i)
⊢ ∑' (i : ι), (m i) (f ⁻¹' s) = ∑' (i : ι), (map f (m i)) s

tactic: simp_rw [map_apply_of_aemeasurable (M _) hs]
state_before: case h
ι✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
R : Type u_6
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
inst✝ : MeasurableSpace δ
f✝ g : α → β
μ ν : Measure α
ι : Type u_7
m : ι → Measure α
f : α → β
hf : AEMeasurable f (sum m)
s : Set β
hs : MeasurableSet s
M : ∀ (i : ι), AEMeasurable f (m i)
⊢ ∑' (i : ι), (m i) (f ⁻¹' s) = ∑' (i : ι), (map f (m i)) s
state_after: no goals
Theorem: Set.Finite.infsep_of_nontrivial
File: Mathlib/Topology/MetricSpace/Infsep.lean

tactic: simpa
state_before: α : Type u_1
β : Type u_2
inst✝ : PseudoMetricSpace α
x y z : α
s t : Set α
hsf : s.Finite
hs : s.Nontrivial
⊢ ⋯.toFinset.Nonempty
state_after: no goals

tactic: classical simp_rw [hsf.infsep, dif_pos hs]
state_before: α : Type u_1
β : Type u_2
inst✝ : PseudoMetricSpace α
x y z : α
s t : Set α
hsf : s.Finite
hs : s.Nontrivial
⊢ s.infsep = ⋯.toFinset.inf' ⋯ (uncurry dist)
state_after: no goals

tactic: simp_rw [hsf.infsep, dif_pos hs]
state_before: α : Type u_1
β : Type u_2
inst✝ : PseudoMetricSpace α
x y z : α
s t : Set α
hsf : s.Finite
hs : s.Nontrivial
⊢ s.infsep = ⋯.toFinset.inf' ⋯ (uncurry dist)
state_after: no goals
Theorem: Polynomial.natDegree_mul_le
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: apply natDegree_le_of_degree_le
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
p q : R[X]
⊢ (p * q).natDegree ≤ p.natDegree + q.natDegree
state_after: case a
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p✝¹ p✝ q✝ : R[X]
ι : Type u_1
p q : R[X]
⊢ (p * q).degree ≤ ↑(p.natDegree + q.natDegree)

tactic: apply le_trans (degree_mul_le p q)
state_before: case a
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p✝¹ p✝ q✝ : R[X]
ι : Type u_1
p q : R[X]
⊢ (p * q).degree ≤ ↑(p.natDegree + q.natDegree)
state_after: case a
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p✝¹ p✝ q✝ : R[X]
ι : Type u_1
p q : R[X]
⊢ p.degree + q.degree ≤ ↑(p.natDegree + q.natDegree)

tactic: rw [Nat.cast_add]
state_before: case a
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p✝¹ p✝ q✝ : R[X]
ι : Type u_1
p q : R[X]
⊢ p.degree + q.degree ≤ ↑(p.natDegree + q.natDegree)
state_after: case a
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p✝¹ p✝ q✝ : R[X]
ι : Type u_1
p q : R[X]
⊢ p.degree + q.degree ≤ ↑p.natDegree + ↑q.natDegree

tactic: apply add_le_add <;> apply degree_le_natDegree
state_before: case a
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p✝¹ p✝ q✝ : R[X]
ι : Type u_1
p q : R[X]
⊢ p.degree + q.degree ≤ ↑p.natDegree + ↑q.natDegree
state_after: no goals
Theorem: IsAdjoinRoot.lift_aequiv
File: Mathlib/RingTheory/IsAdjoinRoot.lean

tactic: rw [← h.map_repr z, aequiv_map, lift_map, lift_map]
state_before: R : Type u
S : Type v
inst✝⁵ : CommRing R
inst✝⁴ : CommRing S
inst✝³ : Algebra R S
f : R[X]
T : Type u_1
inst✝² : CommRing T
inst✝¹ : Algebra R T
U : Type u_2
inst✝ : CommRing U
h : IsAdjoinRoot S f
h' : IsAdjoinRoot T f
i : R →+* U
x : U
hx : eval₂ i x f = 0
z : S
⊢ (lift i x hx h') ((h.aequiv h') z) = (lift i x hx h) z
state_after: no goals
Theorem: StrongFEPair.hf_top'
File: Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean

tactic: simpa only [P.hf₀, sub_zero] using P.hf_top r
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
P : StrongFEPair E
r : ℝ
⊢ P.f =O[atTop] fun x => x ^ r
state_after: no goals
Theorem: UpperHalfPlane.linear_ne_zero
File: Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean

tactic: contrapose! h
state_before: cd : Fin 2 → ℝ
z : ℍ
h : cd ≠ 0
⊢ ↑(cd 0) * ↑z + ↑(cd 1) ≠ 0
state_after: cd : Fin 2 → ℝ
z : ℍ
h : ↑(cd 0) * ↑z + ↑(cd 1) = 0
⊢ cd = 0

tactic: have : cd 0 = 0 := by
  apply_fun Complex.im at h
  simpa only [z.im_ne_zero, Complex.add_im, add_zero, coe_im, zero_mul, or_false_iff,
    Complex.ofReal_im, Complex.zero_im, Complex.mul_im, mul_eq_zero] using h
state_before: cd : Fin 2 → ℝ
z : ℍ
h : ↑(cd 0) * ↑z + ↑(cd 1) = 0
⊢ cd = 0
state_after: cd : Fin 2 → ℝ
z : ℍ
h : ↑(cd 0) * ↑z + ↑(cd 1) = 0
this : cd 0 = 0
⊢ cd = 0

tactic: simp only [this, zero_mul, Complex.ofReal_zero, zero_add, Complex.ofReal_eq_zero]
  at h
state_before: cd : Fin 2 → ℝ
z : ℍ
h : ↑(cd 0) * ↑z + ↑(cd 1) = 0
this : cd 0 = 0
⊢ cd = 0
state_after: cd : Fin 2 → ℝ
z : ℍ
this : cd 0 = 0
h : cd 1 = 0
⊢ cd = 0

tactic: ext i
state_before: cd : Fin 2 → ℝ
z : ℍ
this : cd 0 = 0
h : cd 1 = 0
⊢ cd = 0
state_after: case h
cd : Fin 2 → ℝ
z : ℍ
this : cd 0 = 0
h : cd 1 = 0
i : Fin 2
⊢ cd i = 0 i

tactic: fin_cases i <;> assumption
state_before: case h
cd : Fin 2 → ℝ
z : ℍ
this : cd 0 = 0
h : cd 1 = 0
i : Fin 2
⊢ cd i = 0 i
state_after: no goals

tactic: apply_fun Complex.im at h
state_before: cd : Fin 2 → ℝ
z : ℍ
h : ↑(cd 0) * ↑z + ↑(cd 1) = 0
⊢ cd 0 = 0
state_after: cd : Fin 2 → ℝ
z : ℍ
h : (↑(cd 0) * ↑z + ↑(cd 1)).im = Complex.im 0
⊢ cd 0 = 0

tactic: simpa only [z.im_ne_zero, Complex.add_im, add_zero, coe_im, zero_mul, or_false_iff,
  Complex.ofReal_im, Complex.zero_im, Complex.mul_im, mul_eq_zero] using h
state_before: cd : Fin 2 → ℝ
z : ℍ
h : (↑(cd 0) * ↑z + ↑(cd 1)).im = Complex.im 0
⊢ cd 0 = 0
state_after: no goals
Theorem: AddCommGroup.modEq_iff_toIcoMod_eq_left
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: rintro ⟨n, rfl⟩
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a b c : α
n : ℤ
⊢ (∃ z, b = a + z • p) → toIcoMod hp a b = a
state_after: case intro
α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a c : α
n✝ n : ℤ
⊢ toIcoMod hp a (a + n • p) = a

tactic: rw [toIcoMod_add_zsmul, toIcoMod_apply_left]
state_before: case intro
α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a c : α
n✝ n : ℤ
⊢ toIcoMod hp a (a + n • p) = a
state_after: no goals
Theorem: integrableOn_rpow_mul_exp_neg_mul_sq
File: Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean

tactic: exact integrableOn_rpow_mul_exp_neg_mul_rpow hs one_le_two hb
state_before: b : ℝ
hb : 0 < b
s : ℝ
hs : -1 < s
⊢ IntegrableOn (fun x => x ^ s * rexp (-b * x ^ 2)) (Ioi 0) volume
state_after: no goals
Theorem: CliffordAlgebraComplex.reverse_apply
File: Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean

tactic: induction x using CliffordAlgebra.induction with
| algebraMap r => exact reverse.commutes _
| ι x => rw [reverse_ι]
| mul x₁ x₂ hx₁ hx₂ => rw [reverse.map_mul, mul_comm, hx₁, hx₂]
| add x₁ x₂ hx₁ hx₂ => rw [reverse.map_add, hx₁, hx₂]
state_before: x : CliffordAlgebra Q
⊢ reverse x = x
state_after: no goals

tactic: exact reverse.commutes _
state_before: case algebraMap
r : ℝ
⊢ reverse ((algebraMap ℝ (CliffordAlgebra Q)) r) = (algebraMap ℝ (CliffordAlgebra Q)) r
state_after: no goals

tactic: rw [reverse_ι]
state_before: case ι
x : ℝ
⊢ reverse ((ι Q) x) = (ι Q) x
state_after: no goals

tactic: rw [reverse.map_mul, mul_comm, hx₁, hx₂]
state_before: case mul
x₁ x₂ : CliffordAlgebra Q
hx₁ : reverse x₁ = x₁
hx₂ : reverse x₂ = x₂
⊢ reverse (x₁ * x₂) = x₁ * x₂
state_after: no goals

tactic: rw [reverse.map_add, hx₁, hx₂]
state_before: case add
x₁ x₂ : CliffordAlgebra Q
hx₁ : reverse x₁ = x₁
hx₂ : reverse x₂ = x₂
⊢ reverse (x₁ + x₂) = x₁ + x₂
state_after: no goals
Theorem: MeasurableSpace.generateFrom_singleton_empty
File: Mathlib/MeasureTheory/MeasurableSpace/Defs.lean

tactic: simp [@MeasurableSet.empty α ⊥]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort u_6
s t u : Set α
⊢ ∀ t ∈ {∅}, MeasurableSet t
state_after: no goals
Theorem: Nat.fib_lt_fib
File: Mathlib/Data/Nat/Fib/Basic.lean

tactic: simp [hm]
state_before: m : ℕ
hm : 2 ≤ m
⊢ fib m < fib 0 ↔ m < 0
state_after: no goals

tactic: simp [hm]
state_before: m : ℕ
hm : 2 ≤ m
⊢ fib m < fib 1 ↔ m < 1
state_after: no goals

tactic: simp
state_before: m : ℕ
hm : 2 ≤ m
n : ℕ
⊢ n + 2 ∈ Set.Ici 2
state_after: no goals
Theorem: Equiv.Perm.Disjoint.cycleOf_mul_distrib
File: Mathlib/GroupTheory/Perm/Cycle/Factors.lean

tactic: cases' (disjoint_iff_eq_or_eq.mp h) x with hfx hgx
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
f g : Perm α
x✝ y : α
inst✝³ : DecidableRel f.SameCycle
inst✝² : DecidableRel g.SameCycle
inst✝¹ : DecidableRel (f * g).SameCycle
inst✝ : DecidableRel (g * f).SameCycle
h : f.Disjoint g
x : α
⊢ (f * g).cycleOf x = f.cycleOf x * g.cycleOf x
state_after: case inl
ι : Type u_1
α : Type u_2
β : Type u_3
f g : Perm α
x✝ y : α
inst✝³ : DecidableRel f.SameCycle
inst✝² : DecidableRel g.SameCycle
inst✝¹ : DecidableRel (f * g).SameCycle
inst✝ : DecidableRel (g * f).SameCycle
h : f.Disjoint g
x : α
hfx : f x = x
⊢ (f * g).cycleOf x = f.cycleOf x * g.cycleOf x

case inr
ι : Type u_1
α : Type u_2
β : Type u_3
f g : Perm α
x✝ y : α
inst✝³ : DecidableRel f.SameCycle
inst✝² : DecidableRel g.SameCycle
inst✝¹ : DecidableRel (f * g).SameCycle
inst✝ : DecidableRel (g * f).SameCycle
h : f.Disjoint g
x : α
hgx : g x = x
⊢ (f * g).cycleOf x = f.cycleOf x * g.cycleOf x

tactic: simp [h.commute.eq, cycleOf_mul_of_apply_right_eq_self h.symm.commute, hfx]
state_before: case inl
ι : Type u_1
α : Type u_2
β : Type u_3
f g : Perm α
x✝ y : α
inst✝³ : DecidableRel f.SameCycle
inst✝² : DecidableRel g.SameCycle
inst✝¹ : DecidableRel (f * g).SameCycle
inst✝ : DecidableRel (g * f).SameCycle
h : f.Disjoint g
x : α
hfx : f x = x
⊢ (f * g).cycleOf x = f.cycleOf x * g.cycleOf x
state_after: no goals

tactic: simp [cycleOf_mul_of_apply_right_eq_self h.commute, hgx]
state_before: case inr
ι : Type u_1
α : Type u_2
β : Type u_3
f g : Perm α
x✝ y : α
inst✝³ : DecidableRel f.SameCycle
inst✝² : DecidableRel g.SameCycle
inst✝¹ : DecidableRel (f * g).SameCycle
inst✝ : DecidableRel (g * f).SameCycle
h : f.Disjoint g
x : α
hgx : g x = x
⊢ (f * g).cycleOf x = f.cycleOf x * g.cycleOf x
state_after: no goals
Theorem: Finset.Ioo_subset_Iio_self
File: Mathlib/Order/Interval/Finset/Basic.lean

tactic: simpa [← coe_subset] using Set.Ioo_subset_Iio_self
state_before: ι : Type u_1
α : Type u_2
inst✝² : Preorder α
inst✝¹ : LocallyFiniteOrder α
a a₁ a₂ b b₁ b₂ c x : α
inst✝ : LocallyFiniteOrderBot α
⊢ Ioo a b ⊆ Iio b
state_after: no goals
Theorem: Matrix.vandermonde_cons
File: Mathlib/LinearAlgebra/Vandermonde.lean

tactic: ext i j
state_before: R : Type u_1
inst✝ : CommRing R
n : ℕ
v0 : R
v : Fin n → R
⊢ vandermonde (Fin.cons v0 v) = Fin.cons (fun j => v0 ^ ↑j) fun i => Fin.cons 1 fun j => v i * vandermonde v i j
state_after: case a
R : Type u_1
inst✝ : CommRing R
n : ℕ
v0 : R
v : Fin n → R
i j : Fin (n + 1)
⊢ vandermonde (Fin.cons v0 v) i j =
    Fin.cons (fun j => v0 ^ ↑j) (fun i => Fin.cons 1 fun j => v i * vandermonde v i j) i j

tactic: refine Fin.cases (by simp) (fun i => ?_) i
state_before: case a
R : Type u_1
inst✝ : CommRing R
n : ℕ
v0 : R
v : Fin n → R
i j : Fin (n + 1)
⊢ vandermonde (Fin.cons v0 v) i j =
    Fin.cons (fun j => v0 ^ ↑j) (fun i => Fin.cons 1 fun j => v i * vandermonde v i j) i j
state_after: case a
R : Type u_1
inst✝ : CommRing R
n : ℕ
v0 : R
v : Fin n → R
i✝ j : Fin (n + 1)
i : Fin n
⊢ vandermonde (Fin.cons v0 v) i.succ j =
    Fin.cons (fun j => v0 ^ ↑j) (fun i => Fin.cons 1 fun j => v i * vandermonde v i j) i.succ j

tactic: refine Fin.cases (by simp) (fun j => ?_) j
state_before: case a
R : Type u_1
inst✝ : CommRing R
n : ℕ
v0 : R
v : Fin n → R
i✝ j : Fin (n + 1)
i : Fin n
⊢ vandermonde (Fin.cons v0 v) i.succ j =
    Fin.cons (fun j => v0 ^ ↑j) (fun i => Fin.cons 1 fun j => v i * vandermonde v i j) i.succ j
state_after: case a
R : Type u_1
inst✝ : CommRing R
n : ℕ
v0 : R
v : Fin n → R
i✝ j✝ : Fin (n + 1)
i j : Fin n
⊢ vandermonde (Fin.cons v0 v) i.succ j.succ =
    Fin.cons (fun j => v0 ^ ↑j) (fun i => Fin.cons 1 fun j => v i * vandermonde v i j) i.succ j.succ

tactic: simp [pow_succ']
state_before: case a
R : Type u_1
inst✝ : CommRing R
n : ℕ
v0 : R
v : Fin n → R
i✝ j✝ : Fin (n + 1)
i j : Fin n
⊢ vandermonde (Fin.cons v0 v) i.succ j.succ =
    Fin.cons (fun j => v0 ^ ↑j) (fun i => Fin.cons 1 fun j => v i * vandermonde v i j) i.succ j.succ
state_after: no goals

tactic: simp
state_before: R : Type u_1
inst✝ : CommRing R
n : ℕ
v0 : R
v : Fin n → R
i j : Fin (n + 1)
⊢ vandermonde (Fin.cons v0 v) 0 j =
    Fin.cons (fun j => v0 ^ ↑j) (fun i => Fin.cons 1 fun j => v i * vandermonde v i j) 0 j
state_after: no goals

tactic: simp
state_before: R : Type u_1
inst✝ : CommRing R
n : ℕ
v0 : R
v : Fin n → R
i✝ j : Fin (n + 1)
i : Fin n
⊢ vandermonde (Fin.cons v0 v) i.succ 0 =
    Fin.cons (fun j => v0 ^ ↑j) (fun i => Fin.cons 1 fun j => v i * vandermonde v i j) i.succ 0
state_after: no goals
Theorem: Set.inv_subset
File: Mathlib/Data/Set/Pointwise/Basic.lean

tactic: rw [← inv_subset_inv, inv_inv]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝ : InvolutiveInv α
s t : Set α
a : α
⊢ s⁻¹ ⊆ t ↔ s ⊆ t⁻¹
state_after: no goals
Theorem: BoundedContinuousFunction.norm_sub_nonneg
File: Mathlib/Topology/ContinuousFunction/Bounded.lean

tactic: intro x
state_before: F : Type u_1
α✝ : Type u
β : Type v
γ : Type w
α : Type u_2
inst✝ : TopologicalSpace α
f : α →ᵇ ℝ
⊢ 0 ≤ const α ‖f‖ - f
state_after: F : Type u_1
α✝ : Type u
β : Type v
γ : Type w
α : Type u_2
inst✝ : TopologicalSpace α
f : α →ᵇ ℝ
x : α
⊢ (fun f => f.toFun) 0 x ≤ (fun f => f.toFun) (const α ‖f‖ - f) x

tactic: simp only [ContinuousMap.toFun_eq_coe, coe_to_continuous_fun, coe_zero, Pi.zero_apply, coe_sub,
  const_toFun, Pi.sub_apply, sub_nonneg]
state_before: F : Type u_1
α✝ : Type u
β : Type v
γ : Type w
α : Type u_2
inst✝ : TopologicalSpace α
f : α →ᵇ ℝ
x : α
⊢ (fun f => f.toFun) 0 x ≤ (fun f => f.toFun) (const α ‖f‖ - f) x
state_after: F : Type u_1
α✝ : Type u
β : Type v
γ : Type w
α : Type u_2
inst✝ : TopologicalSpace α
f : α →ᵇ ℝ
x : α
⊢ f x ≤ ‖f‖

tactic: linarith [(abs_le.mp (norm_coe_le_norm f x)).2]
state_before: F : Type u_1
α✝ : Type u
β : Type v
γ : Type w
α : Type u_2
inst✝ : TopologicalSpace α
f : α →ᵇ ℝ
x : α
⊢ f x ≤ ‖f‖
state_after: no goals
Theorem: MulChar.IsQuadratic.pow_odd
File: Mathlib/NumberTheory/MulChar/Basic.lean

tactic: obtain ⟨n, rfl⟩ := hn
state_before: R : Type u_1
inst✝² : CommMonoid R
R' : Type u_2
inst✝¹ : CommRing R'
R'' : Type u_3
inst✝ : CommRing R''
χ : MulChar R R'
hχ : χ.IsQuadratic
n : ℕ
hn : Odd n
⊢ χ ^ n = χ
state_after: case intro
R : Type u_1
inst✝² : CommMonoid R
R' : Type u_2
inst✝¹ : CommRing R'
R'' : Type u_3
inst✝ : CommRing R''
χ : MulChar R R'
hχ : χ.IsQuadratic
n : ℕ
⊢ χ ^ (2 * n + 1) = χ

tactic: rw [pow_add, pow_one, hχ.pow_even (even_two_mul _), one_mul]
state_before: case intro
R : Type u_1
inst✝² : CommMonoid R
R' : Type u_2
inst✝¹ : CommRing R'
R'' : Type u_3
inst✝ : CommRing R''
χ : MulChar R R'
hχ : χ.IsQuadratic
n : ℕ
⊢ χ ^ (2 * n + 1) = χ
state_after: no goals
Theorem: CompositionSeries.length_pos_of_head_eq_head_of_last_eq_last_of_length_pos
File: Mathlib/Order/JordanHolder.lean

tactic: simpa only [pos_iff_ne_zero, ne_eq, Decidable.not_not] using
  length_eq_zero_of_head_eq_head_of_last_eq_last_of_length_eq_zero hb.symm ht.symm
state_before: X : Type u
inst✝¹ : Lattice X
inst✝ : JordanHolderLattice X
s₁ s₂ : CompositionSeries X
hb : head s₁ = head s₂
ht : last s₁ = last s₂
⊢ ¬0 < s₂.length → ¬0 < s₁.length
state_after: no goals
Theorem: ModularGroup.g_eq_of_c_eq_one
File: Mathlib/NumberTheory/Modular.lean

tactic: have hg := g.det_coe.symm
state_before: g : SL(2, ℤ)
z : ℍ
hc : ↑g 1 0 = 1
⊢ g = T ^ ↑g 0 0 * S * T ^ ↑g 1 1
state_after: g : SL(2, ℤ)
z : ℍ
hc : ↑g 1 0 = 1
hg : 1 = (↑g).det
⊢ g = T ^ ↑g 0 0 * S * T ^ ↑g 1 1

tactic: replace hg : (↑ₘg) 0 1 = (↑ₘg) 0 0 * (↑ₘg) 1 1 - 1 := by rw [det_fin_two, hc] at hg; linarith
state_before: g : SL(2, ℤ)
z : ℍ
hc : ↑g 1 0 = 1
hg : 1 = (↑g).det
⊢ g = T ^ ↑g 0 0 * S * T ^ ↑g 1 1
state_after: g : SL(2, ℤ)
z : ℍ
hc : ↑g 1 0 = 1
hg : ↑g 0 1 = ↑g 0 0 * ↑g 1 1 - 1
⊢ g = T ^ ↑g 0 0 * S * T ^ ↑g 1 1

tactic: refine Subtype.ext ?_
state_before: g : SL(2, ℤ)
z : ℍ
hc : ↑g 1 0 = 1
hg : ↑g 0 1 = ↑g 0 0 * ↑g 1 1 - 1
⊢ g = T ^ ↑g 0 0 * S * T ^ ↑g 1 1
state_after: g : SL(2, ℤ)
z : ℍ
hc : ↑g 1 0 = 1
hg : ↑g 0 1 = ↑g 0 0 * ↑g 1 1 - 1
⊢ ↑g = ↑(T ^ ↑g 0 0 * S * T ^ ↑g 1 1)

tactic: conv_lhs => rw [Matrix.eta_fin_two (↑ₘg)]
state_before: g : SL(2, ℤ)
z : ℍ
hc : ↑g 1 0 = 1
hg : ↑g 0 1 = ↑g 0 0 * ↑g 1 1 - 1
⊢ ↑g = ↑(T ^ ↑g 0 0 * S * T ^ ↑g 1 1)
state_after: g : SL(2, ℤ)
z : ℍ
hc : ↑g 1 0 = 1
hg : ↑g 0 1 = ↑g 0 0 * ↑g 1 1 - 1
⊢ of ![![↑g 0 0, ↑g 0 1], ![↑g 1 0, ↑g 1 1]] = ↑(T ^ ↑g 0 0 * S * T ^ ↑g 1 1)

tactic: rw [hc, hg]
state_before: g : SL(2, ℤ)
z : ℍ
hc : ↑g 1 0 = 1
hg : ↑g 0 1 = ↑g 0 0 * ↑g 1 1 - 1
⊢ of ![![↑g 0 0, ↑g 0 1], ![↑g 1 0, ↑g 1 1]] = ↑(T ^ ↑g 0 0 * S * T ^ ↑g 1 1)
state_after: g : SL(2, ℤ)
z : ℍ
hc : ↑g 1 0 = 1
hg : ↑g 0 1 = ↑g 0 0 * ↑g 1 1 - 1
⊢ of ![![↑g 0 0, ↑g 0 0 * ↑g 1 1 - 1], ![1, ↑g 1 1]] = ↑(T ^ ↑g 0 0 * S * T ^ ↑g 1 1)

tactic: simp only [coe_mul, coe_T_zpow, coe_S, mul_fin_two]
state_before: g : SL(2, ℤ)
z : ℍ
hc : ↑g 1 0 = 1
hg : ↑g 0 1 = ↑g 0 0 * ↑g 1 1 - 1
⊢ of ![![↑g 0 0, ↑g 0 0 * ↑g 1 1 - 1], ![1, ↑g 1 1]] = ↑(T ^ ↑g 0 0 * S * T ^ ↑g 1 1)
state_after: g : SL(2, ℤ)
z : ℍ
hc : ↑g 1 0 = 1
hg : ↑g 0 1 = ↑g 0 0 * ↑g 1 1 - 1
⊢ of ![![↑g 0 0, ↑g 0 0 * ↑g 1 1 - 1], ![1, ↑g 1 1]] =
    of
      ![![(1 * 0 + ↑g 0 0 * 1) * 1 + (1 * -1 + ↑g 0 0 * 0) * 0,
          (1 * 0 + ↑g 0 0 * 1) * ↑g 1 1 + (1 * -1 + ↑g 0 0 * 0) * 1],
        ![(0 * 0 + 1 * 1) * 1 + (0 * -1 + 1 * 0) * 0, (0 * 0 + 1 * 1) * ↑g 1 1 + (0 * -1 + 1 * 0) * 1]]

tactic: congrm !![?_, ?_; ?_, ?_] <;> ring
state_before: g : SL(2, ℤ)
z : ℍ
hc : ↑g 1 0 = 1
hg : ↑g 0 1 = ↑g 0 0 * ↑g 1 1 - 1
⊢ of ![![↑g 0 0, ↑g 0 0 * ↑g 1 1 - 1], ![1, ↑g 1 1]] =
    of
      ![![(1 * 0 + ↑g 0 0 * 1) * 1 + (1 * -1 + ↑g 0 0 * 0) * 0,
          (1 * 0 + ↑g 0 0 * 1) * ↑g 1 1 + (1 * -1 + ↑g 0 0 * 0) * 1],
        ![(0 * 0 + 1 * 1) * 1 + (0 * -1 + 1 * 0) * 0, (0 * 0 + 1 * 1) * ↑g 1 1 + (0 * -1 + 1 * 0) * 1]]
state_after: no goals

tactic: rw [det_fin_two, hc] at hg
state_before: g : SL(2, ℤ)
z : ℍ
hc : ↑g 1 0 = 1
hg : 1 = (↑g).det
⊢ ↑g 0 1 = ↑g 0 0 * ↑g 1 1 - 1
state_after: g : SL(2, ℤ)
z : ℍ
hc : ↑g 1 0 = 1
hg : 1 = ↑g 0 0 * ↑g 1 1 - ↑g 0 1 * 1
⊢ ↑g 0 1 = ↑g 0 0 * ↑g 1 1 - 1

tactic: linarith
state_before: g : SL(2, ℤ)
z : ℍ
hc : ↑g 1 0 = 1
hg : 1 = ↑g 0 0 * ↑g 1 1 - ↑g 0 1 * 1
⊢ ↑g 0 1 = ↑g 0 0 * ↑g 1 1 - 1
state_after: no goals
Theorem: Polynomial.card_support_eq_one
File: Mathlib/Algebra/Polynomial/EraseLead.lean

tactic: refine ⟨fun h => ?_, ?_⟩
state_before: R : Type u_1
inst✝ : Semiring R
f : R[X]
⊢ f.support.card = 1 ↔ ∃ k x, ∃ (_ : x ≠ 0), f = C x * X ^ k
state_after: case refine_1
R : Type u_1
inst✝ : Semiring R
f : R[X]
h : f.support.card = 1
⊢ ∃ k x, ∃ (_ : x ≠ 0), f = C x * X ^ k

case refine_2
R : Type u_1
inst✝ : Semiring R
f : R[X]
⊢ (∃ k x, ∃ (_ : x ≠ 0), f = C x * X ^ k) → f.support.card = 1

tactic: obtain ⟨k, x, _, hx, rfl⟩ := card_support_eq.mp h
state_before: case refine_1
R : Type u_1
inst✝ : Semiring R
f : R[X]
h : f.support.card = 1
⊢ ∃ k x, ∃ (_ : x ≠ 0), f = C x * X ^ k
state_after: case refine_1.intro.intro.intro.intro
R : Type u_1
inst✝ : Semiring R
k : Fin 1 → ℕ
x : Fin 1 → R
w✝ : StrictMono k
hx : ∀ (i : Fin 1), x i ≠ 0
h : (∑ i : Fin 1, C (x i) * X ^ k i).support.card = 1
⊢ ∃ k_1 x_1, ∃ (_ : x_1 ≠ 0), ∑ i : Fin 1, C (x i) * X ^ k i = C x_1 * X ^ k_1

tactic: exact ⟨k 0, x 0, hx 0, Fin.sum_univ_one _⟩
state_before: case refine_1.intro.intro.intro.intro
R : Type u_1
inst✝ : Semiring R
k : Fin 1 → ℕ
x : Fin 1 → R
w✝ : StrictMono k
hx : ∀ (i : Fin 1), x i ≠ 0
h : (∑ i : Fin 1, C (x i) * X ^ k i).support.card = 1
⊢ ∃ k_1 x_1, ∃ (_ : x_1 ≠ 0), ∑ i : Fin 1, C (x i) * X ^ k i = C x_1 * X ^ k_1
state_after: no goals

tactic: rintro ⟨k, x, hx, rfl⟩
state_before: case refine_2
R : Type u_1
inst✝ : Semiring R
f : R[X]
⊢ (∃ k x, ∃ (_ : x ≠ 0), f = C x * X ^ k) → f.support.card = 1
state_after: case refine_2.intro.intro.intro
R : Type u_1
inst✝ : Semiring R
k : ℕ
x : R
hx : x ≠ 0
⊢ (C x * X ^ k).support.card = 1

tactic: rw [support_C_mul_X_pow k hx, card_singleton]
state_before: case refine_2.intro.intro.intro
R : Type u_1
inst✝ : Semiring R
k : ℕ
x : R
hx : x ≠ 0
⊢ (C x * X ^ k).support.card = 1
state_after: no goals
Theorem: Topology.IsUpper.isOpen_iff_generate_Iic_compl
File: Mathlib/Topology/Order/LowerUpperTopology.lean

tactic: rfl
state_before: α : Type u_1
β : ?m.15575
inst✝² : Preorder α
inst✝¹ : TopologicalSpace α
inst✝ : IsUpper α
s : Set α
⊢ IsOpen s ↔ GenerateOpen {t | ∃ a, (Iic a)ᶜ = t} s
state_after: no goals
Theorem: ModularForm.zero_slash
File: Mathlib/NumberTheory/ModularForms/SlashActions.lean

tactic: simp only [slash, Pi.zero_apply, zero_mul]
state_before: Γ : Subgroup SL(2, ℤ)
k✝ : ℤ
f : ℍ → ℂ
α : Type u_1
inst✝¹ : SMul α ℂ
inst✝ : IsScalarTower α ℂ ℂ
k : ℤ
A : ↥GL(2, ℝ)⁺
x✝ : ℍ
⊢ (0 ∣[k]A) x✝ = 0 x✝
state_after: no goals