1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Real.tan_periodic
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: simpa only [Function.Periodic, tan_eq_sin_div_cos] using sin_antiperiodic.div cos_antiperiodic
state_before: ⊢ Function.Periodic tan π
state_after: no goals
Theorem: ENNReal.coe_div_le
File: Mathlib/Data/ENNReal/Inv.lean

tactic: simpa only [div_eq_mul_inv, coe_mul] using mul_le_mul_left' coe_inv_le _
state_before: a b c d : ℝ≥0∞
r p q : ℝ≥0
⊢ ↑(p / r) ≤ ↑p / ↑r
state_after: no goals
Theorem: AddConstMapClass.map_int_add'
File: Mathlib/Algebra/AddConstMap/Basic.lean

tactic: rw [← map_zsmul_add, zsmul_one]
state_before: F : Type u_1
G : Type u_2
H : Type u_3
inst✝³ : FunLike F G H
a : G
b : H
inst✝² : AddCommGroupWithOne G
inst✝¹ : AddGroup H
inst✝ : AddConstMapClass F G H 1 b
f : F
n : ℤ
x : G
⊢ f (↑n + x) = f x + n • b
state_after: no goals
Theorem: Matrix.rank_le_card_width
File: Mathlib/Data/Matrix/Rank.lean

tactic: haveI : Module.Finite R (n → R) := Module.Finite.pi
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
inst✝³ : Fintype n
inst✝² : Fintype o
inst✝¹ : CommRing R
inst✝ : StrongRankCondition R
A : Matrix m n R
⊢ A.rank ≤ Fintype.card n
state_after: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
inst✝³ : Fintype n
inst✝² : Fintype o
inst✝¹ : CommRing R
inst✝ : StrongRankCondition R
A : Matrix m n R
this : Module.Finite R (n → R)
⊢ A.rank ≤ Fintype.card n

tactic: haveI : Module.Free R (n → R) := Module.Free.pi _ _
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
inst✝³ : Fintype n
inst✝² : Fintype o
inst✝¹ : CommRing R
inst✝ : StrongRankCondition R
A : Matrix m n R
this : Module.Finite R (n → R)
⊢ A.rank ≤ Fintype.card n
state_after: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
inst✝³ : Fintype n
inst✝² : Fintype o
inst✝¹ : CommRing R
inst✝ : StrongRankCondition R
A : Matrix m n R
this✝ : Module.Finite R (n → R)
this : Module.Free R (n → R)
⊢ A.rank ≤ Fintype.card n

tactic: exact A.mulVecLin.finrank_range_le.trans_eq (finrank_pi _)
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
inst✝³ : Fintype n
inst✝² : Fintype o
inst✝¹ : CommRing R
inst✝ : StrongRankCondition R
A : Matrix m n R
this✝ : Module.Finite R (n → R)
this : Module.Free R (n → R)
⊢ A.rank ≤ Fintype.card n
state_after: no goals
Theorem: Set.card_singleton_prod
File: Mathlib/SetTheory/Cardinal/Finite.lean

tactic: rw [singleton_prod, Nat.card_image_of_injective (Prod.mk.inj_left a)]
state_before: α : Type u_1
β : Type u_2
a : α
t : Set β
⊢ Nat.card ↑({a} ×ˢ t) = Nat.card ↑t
state_after: no goals
Theorem: Sigma.ext_iff
File: Mathlib/Data/Sigma/Basic.lean

tactic: cases x₀
state_before: α : Type u_1
α₁ : Type u_2
α₂ : Type u_3
β : α → Type u_4
β₁ : α₁ → Type u_5
β₂ : α₂ → Type u_6
x₀ x₁ : Sigma β
⊢ x₀ = x₁ ↔ x₀.fst = x₁.fst ∧ HEq x₀.snd x₁.snd
state_after: case mk
α : Type u_1
α₁ : Type u_2
α₂ : Type u_3
β : α → Type u_4
β₁ : α₁ → Type u_5
β₂ : α₂ → Type u_6
x₁ : Sigma β
fst✝ : α
snd✝ : β fst✝
⊢ ⟨fst✝, snd✝⟩ = x₁ ↔ ⟨fst✝, snd✝⟩.fst = x₁.fst ∧ HEq ⟨fst✝, snd✝⟩.snd x₁.snd

tactic: cases x₁
state_before: case mk
α : Type u_1
α₁ : Type u_2
α₂ : Type u_3
β : α → Type u_4
β₁ : α₁ → Type u_5
β₂ : α₂ → Type u_6
x₁ : Sigma β
fst✝ : α
snd✝ : β fst✝
⊢ ⟨fst✝, snd✝⟩ = x₁ ↔ ⟨fst✝, snd✝⟩.fst = x₁.fst ∧ HEq ⟨fst✝, snd✝⟩.snd x₁.snd
state_after: case mk.mk
α : Type u_1
α₁ : Type u_2
α₂ : Type u_3
β : α → Type u_4
β₁ : α₁ → Type u_5
β₂ : α₂ → Type u_6
fst✝¹ : α
snd✝¹ : β fst✝¹
fst✝ : α
snd✝ : β fst✝
⊢ ⟨fst✝¹, snd✝¹⟩ = ⟨fst✝, snd✝⟩ ↔ ⟨fst✝¹, snd✝¹⟩.fst = ⟨fst✝, snd✝⟩.fst ∧ HEq ⟨fst✝¹, snd✝¹⟩.snd ⟨fst✝, snd✝⟩.snd

tactic: exact Sigma.mk.inj_iff
state_before: case mk.mk
α : Type u_1
α₁ : Type u_2
α₂ : Type u_3
β : α → Type u_4
β₁ : α₁ → Type u_5
β₂ : α₂ → Type u_6
fst✝¹ : α
snd✝¹ : β fst✝¹
fst✝ : α
snd✝ : β fst✝
⊢ ⟨fst✝¹, snd✝¹⟩ = ⟨fst✝, snd✝⟩ ↔ ⟨fst✝¹, snd✝¹⟩.fst = ⟨fst✝, snd✝⟩.fst ∧ HEq ⟨fst✝¹, snd✝¹⟩.snd ⟨fst✝, snd✝⟩.snd
state_after: no goals
Theorem: Real.inner_le_weight_mul_Lp_of_nonneg
File: Mathlib/Analysis/MeanInequalities.lean

tactic: lift w to ι → ℝ≥0 using hw
state_before: ι : Type u
s✝ : Finset ι
f✝ g : ι → ℝ
p✝ q : ℝ
s : Finset ι
p : ℝ
hp : 1 ≤ p
w f : ι → ℝ
hw : ∀ (i : ι), 0 ≤ w i
hf : ∀ (i : ι), 0 ≤ f i
⊢ ∑ i ∈ s, w i * f i ≤ (∑ i ∈ s, w i) ^ (1 - p⁻¹) * (∑ i ∈ s, w i * f i ^ p) ^ p⁻¹
state_after: case intro
ι : Type u
s✝ : Finset ι
f✝ g : ι → ℝ
p✝ q : ℝ
s : Finset ι
p : ℝ
hp : 1 ≤ p
f : ι → ℝ
hf : ∀ (i : ι), 0 ≤ f i
w : ι → ℝ≥0
⊢ ∑ i ∈ s, (fun i => ↑(w i)) i * f i ≤
    (∑ i ∈ s, (fun i => ↑(w i)) i) ^ (1 - p⁻¹) * (∑ i ∈ s, (fun i => ↑(w i)) i * f i ^ p) ^ p⁻¹

tactic: lift f to ι → ℝ≥0 using hf
state_before: case intro
ι : Type u
s✝ : Finset ι
f✝ g : ι → ℝ
p✝ q : ℝ
s : Finset ι
p : ℝ
hp : 1 ≤ p
f : ι → ℝ
hf : ∀ (i : ι), 0 ≤ f i
w : ι → ℝ≥0
⊢ ∑ i ∈ s, (fun i => ↑(w i)) i * f i ≤
    (∑ i ∈ s, (fun i => ↑(w i)) i) ^ (1 - p⁻¹) * (∑ i ∈ s, (fun i => ↑(w i)) i * f i ^ p) ^ p⁻¹
state_after: case intro.intro
ι : Type u
s✝ : Finset ι
f✝ g : ι → ℝ
p✝ q : ℝ
s : Finset ι
p : ℝ
hp : 1 ≤ p
w f : ι → ℝ≥0
⊢ ∑ i ∈ s, (fun i => ↑(w i)) i * (fun i => ↑(f i)) i ≤
    (∑ i ∈ s, (fun i => ↑(w i)) i) ^ (1 - p⁻¹) * (∑ i ∈ s, (fun i => ↑(w i)) i * (fun i => ↑(f i)) i ^ p) ^ p⁻¹

tactic: beta_reduce at *
state_before: case intro.intro
ι : Type u
s✝ : Finset ι
f✝ g : ι → ℝ
p✝ q : ℝ
s : Finset ι
p : ℝ
hp : 1 ≤ p
w f : ι → ℝ≥0
⊢ ∑ i ∈ s, (fun i => ↑(w i)) i * (fun i => ↑(f i)) i ≤
    (∑ i ∈ s, (fun i => ↑(w i)) i) ^ (1 - p⁻¹) * (∑ i ∈ s, (fun i => ↑(w i)) i * (fun i => ↑(f i)) i ^ p) ^ p⁻¹
state_after: case intro.intro
ι : Type u
s✝ : Finset ι
f✝ g : ι → ℝ
p✝ q : ℝ
s : Finset ι
p : ℝ
hp : 1 ≤ p
w f : ι → ℝ≥0
⊢ ∑ i ∈ s, ↑(w i) * ↑(f i) ≤ (∑ i ∈ s, ↑(w i)) ^ (1 - p⁻¹) * (∑ i ∈ s, ↑(w i) * ↑(f i) ^ p) ^ p⁻¹

tactic: norm_cast at *
state_before: case intro.intro
ι : Type u
s✝ : Finset ι
f✝ g : ι → ℝ
p✝ q : ℝ
s : Finset ι
p : ℝ
hp : 1 ≤ p
w f : ι → ℝ≥0
⊢ ∑ i ∈ s, ↑(w i) * ↑(f i) ≤ (∑ i ∈ s, ↑(w i)) ^ (1 - p⁻¹) * (∑ i ∈ s, ↑(w i) * ↑(f i) ^ p) ^ p⁻¹
state_after: case intro.intro
ι : Type u
s✝ : Finset ι
f✝ g : ι → ℝ
p✝ q : ℝ
s : Finset ι
p : ℝ
w f : ι → ℝ≥0
hp : 1 ≤ p
⊢ ∑ a ∈ s, w a * f a ≤ (∑ a ∈ s, w a) ^ (1 - p⁻¹) * (∑ a ∈ s, w a * f a ^ p) ^ p⁻¹

tactic: exact NNReal.inner_le_weight_mul_Lp _ hp _ _
state_before: case intro.intro
ι : Type u
s✝ : Finset ι
f✝ g : ι → ℝ
p✝ q : ℝ
s : Finset ι
p : ℝ
w f : ι → ℝ≥0
hp : 1 ≤ p
⊢ ∑ a ∈ s, w a * f a ≤ (∑ a ∈ s, w a) ^ (1 - p⁻¹) * (∑ a ∈ s, w a * f a ^ p) ^ p⁻¹
state_after: no goals
Theorem: CompositionSeries.ext
File: Mathlib/Order/JordanHolder.lean

tactic: classical
exact List.perm_of_nodup_nodup_toFinset_eq s₁.toList_nodup s₂.toList_nodup
  (Finset.ext <| by simpa only [List.mem_toFinset, RelSeries.mem_toList])
state_before: X : Type u
inst✝¹ : Lattice X
inst✝ : JordanHolderLattice X
s₁ s₂ : CompositionSeries X
h : ∀ (x : X), x ∈ s₁ ↔ x ∈ s₂
⊢ (toList s₁).Perm (toList s₂)
state_after: no goals

tactic: exact List.perm_of_nodup_nodup_toFinset_eq s₁.toList_nodup s₂.toList_nodup
  (Finset.ext <| by simpa only [List.mem_toFinset, RelSeries.mem_toList])
state_before: X : Type u
inst✝¹ : Lattice X
inst✝ : JordanHolderLattice X
s₁ s₂ : CompositionSeries X
h : ∀ (x : X), x ∈ s₁ ↔ x ∈ s₂
⊢ (toList s₁).Perm (toList s₂)
state_after: no goals

tactic: simpa only [List.mem_toFinset, RelSeries.mem_toList]
state_before: X : Type u
inst✝¹ : Lattice X
inst✝ : JordanHolderLattice X
s₁ s₂ : CompositionSeries X
h : ∀ (x : X), x ∈ s₁ ↔ x ∈ s₂
⊢ ∀ (a : X), a ∈ (toList s₁).toFinset ↔ a ∈ (toList s₂).toFinset
state_after: no goals
Theorem: Ideal.finite_mulSupport
File: Mathlib/RingTheory/DedekindDomain/Factorization.lean

tactic: intro v hv h_zero
state_before: R : Type u_1
inst✝⁴ : CommRing R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : IsDedekindDomain R
v : HeightOneSpectrum R
I : Ideal R
hI : I ≠ 0
⊢ {v | v.maxPowDividing I ≠ 1} ⊆ {v | ↑((Associates.mk v.asIdeal).count (Associates.mk I).factors) ≠ 0}
state_after: R : Type u_1
inst✝⁴ : CommRing R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : IsDedekindDomain R
v✝ : HeightOneSpectrum R
I : Ideal R
hI : I ≠ 0
v : HeightOneSpectrum R
hv : v ∈ {v | v.maxPowDividing I ≠ 1}
h_zero : ↑((Associates.mk v.asIdeal).count (Associates.mk I).factors) = 0
⊢ False

tactic: have hv' : v.maxPowDividing I = 1 := by
  rw [IsDedekindDomain.HeightOneSpectrum.maxPowDividing, Int.natCast_eq_zero.mp h_zero,
    pow_zero _]
state_before: R : Type u_1
inst✝⁴ : CommRing R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : IsDedekindDomain R
v✝ : HeightOneSpectrum R
I : Ideal R
hI : I ≠ 0
v : HeightOneSpectrum R
hv : v ∈ {v | v.maxPowDividing I ≠ 1}
h_zero : ↑((Associates.mk v.asIdeal).count (Associates.mk I).factors) = 0
⊢ False
state_after: R : Type u_1
inst✝⁴ : CommRing R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : IsDedekindDomain R
v✝ : HeightOneSpectrum R
I : Ideal R
hI : I ≠ 0
v : HeightOneSpectrum R
hv : v ∈ {v | v.maxPowDividing I ≠ 1}
h_zero : ↑((Associates.mk v.asIdeal).count (Associates.mk I).factors) = 0
hv' : v.maxPowDividing I = 1
⊢ False

tactic: exact hv hv'
state_before: R : Type u_1
inst✝⁴ : CommRing R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : IsDedekindDomain R
v✝ : HeightOneSpectrum R
I : Ideal R
hI : I ≠ 0
v : HeightOneSpectrum R
hv : v ∈ {v | v.maxPowDividing I ≠ 1}
h_zero : ↑((Associates.mk v.asIdeal).count (Associates.mk I).factors) = 0
hv' : v.maxPowDividing I = 1
⊢ False
state_after: no goals

tactic: rw [IsDedekindDomain.HeightOneSpectrum.maxPowDividing, Int.natCast_eq_zero.mp h_zero,
  pow_zero _]
state_before: R : Type u_1
inst✝⁴ : CommRing R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : IsDedekindDomain R
v✝ : HeightOneSpectrum R
I : Ideal R
hI : I ≠ 0
v : HeightOneSpectrum R
hv : v ∈ {v | v.maxPowDividing I ≠ 1}
h_zero : ↑((Associates.mk v.asIdeal).count (Associates.mk I).factors) = 0
⊢ v.maxPowDividing I = 1
state_after: no goals
Theorem: DirectSum.ofPow
File: Mathlib/Algebra/DirectSum/Ring.lean

tactic: induction' n with n n_ih
state_before: ι : Type u_1
inst✝³ : DecidableEq ι
A : ι → Type u_2
inst✝² : (i : ι) → AddCommMonoid (A i)
inst✝¹ : AddMonoid ι
inst✝ : GSemiring A
i : ι
a : A i
n : ℕ
⊢ (of A i) a ^ n = (of A (n • i)) (GradedMonoid.GMonoid.gnpow n a)
state_after: case zero
ι : Type u_1
inst✝³ : DecidableEq ι
A : ι → Type u_2
inst✝² : (i : ι) → AddCommMonoid (A i)
inst✝¹ : AddMonoid ι
inst✝ : GSemiring A
i : ι
a : A i
⊢ (of A i) a ^ 0 = (of A (0 • i)) (GradedMonoid.GMonoid.gnpow 0 a)

case succ
ι : Type u_1
inst✝³ : DecidableEq ι
A : ι → Type u_2
inst✝² : (i : ι) → AddCommMonoid (A i)
inst✝¹ : AddMonoid ι
inst✝ : GSemiring A
i : ι
a : A i
n : ℕ
n_ih : (of A i) a ^ n = (of A (n • i)) (GradedMonoid.GMonoid.gnpow n a)
⊢ (of A i) a ^ (n + 1) = (of A ((n + 1) • i)) (GradedMonoid.GMonoid.gnpow (n + 1) a)

tactic: exact of_eq_of_gradedMonoid_eq (pow_zero <| GradedMonoid.mk _ a).symm
state_before: case zero
ι : Type u_1
inst✝³ : DecidableEq ι
A : ι → Type u_2
inst✝² : (i : ι) → AddCommMonoid (A i)
inst✝¹ : AddMonoid ι
inst✝ : GSemiring A
i : ι
a : A i
⊢ (of A i) a ^ 0 = (of A (0 • i)) (GradedMonoid.GMonoid.gnpow 0 a)
state_after: no goals

tactic: rw [pow_succ, n_ih, of_mul_of]
state_before: case succ
ι : Type u_1
inst✝³ : DecidableEq ι
A : ι → Type u_2
inst✝² : (i : ι) → AddCommMonoid (A i)
inst✝¹ : AddMonoid ι
inst✝ : GSemiring A
i : ι
a : A i
n : ℕ
n_ih : (of A i) a ^ n = (of A (n • i)) (GradedMonoid.GMonoid.gnpow n a)
⊢ (of A i) a ^ (n + 1) = (of A ((n + 1) • i)) (GradedMonoid.GMonoid.gnpow (n + 1) a)
state_after: case succ
ι : Type u_1
inst✝³ : DecidableEq ι
A : ι → Type u_2
inst✝² : (i : ι) → AddCommMonoid (A i)
inst✝¹ : AddMonoid ι
inst✝ : GSemiring A
i : ι
a : A i
n : ℕ
n_ih : (of A i) a ^ n = (of A (n • i)) (GradedMonoid.GMonoid.gnpow n a)
⊢ (of A (n • i + i)) (GradedMonoid.GMul.mul (GradedMonoid.GMonoid.gnpow n a) a) =
    (of A ((n + 1) • i)) (GradedMonoid.GMonoid.gnpow (n + 1) a)

tactic: exact of_eq_of_gradedMonoid_eq (pow_succ (GradedMonoid.mk _ a) n).symm
state_before: case succ
ι : Type u_1
inst✝³ : DecidableEq ι
A : ι → Type u_2
inst✝² : (i : ι) → AddCommMonoid (A i)
inst✝¹ : AddMonoid ι
inst✝ : GSemiring A
i : ι
a : A i
n : ℕ
n_ih : (of A i) a ^ n = (of A (n • i)) (GradedMonoid.GMonoid.gnpow n a)
⊢ (of A (n • i + i)) (GradedMonoid.GMul.mul (GradedMonoid.GMonoid.gnpow n a) a) =
    (of A ((n + 1) • i)) (GradedMonoid.GMonoid.gnpow (n + 1) a)
state_after: no goals
Theorem: FirstOrder.Language.Equiv.toHom_range
File: Mathlib/ModelTheory/Substructures.lean

tactic: ext n
state_before: L : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
S : L.Substructure M
f : M ≃[L] N
⊢ f.toHom.range = ⊤
state_after: case h
L : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
S : L.Substructure M
f : M ≃[L] N
n : N
⊢ n ∈ f.toHom.range ↔ n ∈ ⊤

tactic: simp only [Hom.mem_range, coe_toHom, Substructure.mem_top, iff_true_iff]
state_before: case h
L : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
S : L.Substructure M
f : M ≃[L] N
n : N
⊢ n ∈ f.toHom.range ↔ n ∈ ⊤
state_after: case h
L : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
S : L.Substructure M
f : M ≃[L] N
n : N
⊢ ∃ y, f y = n

tactic: exact ⟨f.symm n, apply_symm_apply _ _⟩
state_before: case h
L : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
S : L.Substructure M
f : M ≃[L] N
n : N
⊢ ∃ y, f y = n
state_after: no goals
Theorem: Polynomial.leadingCoeff_opRingEquiv
File: Mathlib/RingTheory/Polynomial/Opposites.lean

tactic: rw [leadingCoeff, coeff_opRingEquiv, natDegree_opRingEquiv, leadingCoeff]
state_before: R : Type u_1
inst✝ : Semiring R
p : R[X]ᵐᵒᵖ
⊢ ((opRingEquiv R) p).leadingCoeff = op (unop p).leadingCoeff
state_after: no goals
Theorem: CategoryTheory.predicateShift_zero
File: Mathlib/CategoryTheory/Shift/Predicate.lean

tactic: ext X
state_before: C : Type u_1
inst✝³ : Category.{u_3, u_1} C
P : C → Prop
A : Type u_2
inst✝² : AddMonoid A
inst✝¹ : HasShift C A
inst✝ : ClosedUnderIsomorphisms P
⊢ PredicateShift P 0 = P
state_after: case h.a
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
P : C → Prop
A : Type u_2
inst✝² : AddMonoid A
inst✝¹ : HasShift C A
inst✝ : ClosedUnderIsomorphisms P
X : C
⊢ PredicateShift P 0 X ↔ P X

tactic: exact mem_iff_of_iso P ((shiftFunctorZero C A).app X)
state_before: case h.a
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
P : C → Prop
A : Type u_2
inst✝² : AddMonoid A
inst✝¹ : HasShift C A
inst✝ : ClosedUnderIsomorphisms P
X : C
⊢ PredicateShift P 0 X ↔ P X
state_after: no goals
Theorem: List.duplicate_iff_two_le_count
File: Mathlib/Data/List/Duplicate.lean

tactic: simp [duplicate_iff_sublist, le_count_iff_replicate_sublist]
state_before: α : Type u_1
l : List α
x : α
inst✝ : DecidableEq α
⊢ x ∈+ l ↔ 2 ≤ count x l
state_after: no goals
Theorem: Multipliable.tendsto_atTop_one
File: Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean

tactic: rw [← Nat.cofinite_eq_atTop]
state_before: M : Type u_1
inst✝⁴ : CommMonoid M
inst✝³ : TopologicalSpace M
m m' : M
G : Type u_2
inst✝² : CommGroup G
g g' : G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
f : ℕ → G
hf : Multipliable f
⊢ Tendsto f atTop (𝓝 1)
state_after: M : Type u_1
inst✝⁴ : CommMonoid M
inst✝³ : TopologicalSpace M
m m' : M
G : Type u_2
inst✝² : CommGroup G
g g' : G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
f : ℕ → G
hf : Multipliable f
⊢ Tendsto f cofinite (𝓝 1)

tactic: exact hf.tendsto_cofinite_one
state_before: M : Type u_1
inst✝⁴ : CommMonoid M
inst✝³ : TopologicalSpace M
m m' : M
G : Type u_2
inst✝² : CommGroup G
g g' : G
inst✝¹ : TopologicalSpace G
inst✝ : TopologicalGroup G
f : ℕ → G
hf : Multipliable f
⊢ Tendsto f cofinite (𝓝 1)
state_after: no goals
Theorem: Submodule.restrictScalars_eq_bot_iff
File: Mathlib/Algebra/Module/Submodule/RestrictScalars.lean

tactic: simp [SetLike.ext_iff]
state_before: S : Type u_1
R : Type u_2
M : Type u_3
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Semiring S
inst✝³ : Module S M
inst✝² : Module R M
inst✝¹ : SMul S R
inst✝ : IsScalarTower S R M
p : Submodule R M
⊢ restrictScalars S p = ⊥ ↔ p = ⊥
state_after: no goals
Theorem: BoundedContinuousFunction.norm_coe_le_norm
File: Mathlib/Topology/ContinuousFunction/Bounded.lean

tactic: simp [dist_zero_right]
state_before: F : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝¹ : TopologicalSpace α
inst✝ : SeminormedAddCommGroup β
f g : α →ᵇ β
x✝ : α
C : ℝ
x : α
⊢ ‖f x‖ = dist (f x) (0 x)
state_after: no goals
Theorem: LinearMap.baseChange_comp
File: Mathlib/RingTheory/TensorProduct/Basic.lean

tactic: ext
state_before: R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
inst✝¹⁰ : CommSemiring R
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : Semiring B
inst✝⁶ : Algebra R B
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid N
inst✝³ : AddCommMonoid P
inst✝² : Module R M
inst✝¹ : Module R N
inst✝ : Module R P
r : R
f g✝ : M →ₗ[R] N
g : N →ₗ[R] P
⊢ baseChange A (g ∘ₗ f) = baseChange A g ∘ₗ baseChange A f
state_after: case a.h.h
R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
inst✝¹⁰ : CommSemiring R
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : Semiring B
inst✝⁶ : Algebra R B
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid N
inst✝³ : AddCommMonoid P
inst✝² : Module R M
inst✝¹ : Module R N
inst✝ : Module R P
r : R
f g✝ : M →ₗ[R] N
g : N →ₗ[R] P
x✝ : M
⊢ ((AlgebraTensorModule.curry (baseChange A (g ∘ₗ f))) 1) x✝ =
    ((AlgebraTensorModule.curry (baseChange A g ∘ₗ baseChange A f)) 1) x✝

tactic: simp
state_before: case a.h.h
R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
inst✝¹⁰ : CommSemiring R
inst✝⁹ : Semiring A
inst✝⁸ : Algebra R A
inst✝⁷ : Semiring B
inst✝⁶ : Algebra R B
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid N
inst✝³ : AddCommMonoid P
inst✝² : Module R M
inst✝¹ : Module R N
inst✝ : Module R P
r : R
f g✝ : M →ₗ[R] N
g : N →ₗ[R] P
x✝ : M
⊢ ((AlgebraTensorModule.curry (baseChange A (g ∘ₗ f))) 1) x✝ =
    ((AlgebraTensorModule.curry (baseChange A g ∘ₗ baseChange A f)) 1) x✝
state_after: no goals
Theorem: Polynomial.natDegree_prod'
File: Mathlib/Algebra/Polynomial/BigOperators.lean

tactic: simpa using natDegree_multiset_prod' (s.1.map f) (by simpa using h)
state_before: R : Type u
ι : Type w
s : Finset ι
inst✝ : CommSemiring R
f : ι → R[X]
t : Multiset R[X]
h : ∏ i ∈ s, (f i).leadingCoeff ≠ 0
⊢ (∏ i ∈ s, f i).natDegree = ∑ i ∈ s, (f i).natDegree
state_after: no goals

tactic: simpa using h
state_before: R : Type u
ι : Type w
s : Finset ι
inst✝ : CommSemiring R
f : ι → R[X]
t : Multiset R[X]
h : ∏ i ∈ s, (f i).leadingCoeff ≠ 0
⊢ (Multiset.map (fun f => f.leadingCoeff) (Multiset.map f s.val)).prod ≠ 0
state_after: no goals
Theorem: ZMod.valMinAbs_natCast_of_half_lt
File: Mathlib/Data/ZMod/Basic.lean

tactic: cases n
state_before: n a : ℕ
ha : n / 2 < a
ha' : a < n
⊢ (↑a).valMinAbs = ↑a - ↑n
state_after: case zero
a : ℕ
ha : 0 / 2 < a
ha' : a < 0
⊢ (↑a).valMinAbs = ↑a - ↑0

case succ
a n✝ : ℕ
ha : (n✝ + 1) / 2 < a
ha' : a < n✝ + 1
⊢ (↑a).valMinAbs = ↑a - ↑(n✝ + 1)

tactic: cases not_lt_bot ha'
state_before: case zero
a : ℕ
ha : 0 / 2 < a
ha' : a < 0
⊢ (↑a).valMinAbs = ↑a - ↑0
state_after: no goals

tactic: simp [valMinAbs_def_pos, val_natCast, Nat.mod_eq_of_lt ha', ha.not_le]
state_before: case succ
a n✝ : ℕ
ha : (n✝ + 1) / 2 < a
ha' : a < n✝ + 1
⊢ (↑a).valMinAbs = ↑a - ↑(n✝ + 1)
state_after: no goals
Theorem: CochainComplex.HomComplex.Cochain.v_comp_XIsoOfEq_hom
File: Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean

tactic: rw [← hq', hpq]
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
F G K L : CochainComplex C ℤ
n m : ℤ
γ : Cochain F G n
p q q' : ℤ
hpq : p + n = q
hq' : q = q'
⊢ p + n = q'
state_after: no goals

tactic: subst hq'
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
F G K L : CochainComplex C ℤ
n m : ℤ
γ : Cochain F G n
p q q' : ℤ
hpq : p + n = q
hq' : q = q'
⊢ γ.v p q hpq ≫ (HomologicalComplex.XIsoOfEq G hq').hom = γ.v p q' ⋯
state_after: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
F G K L : CochainComplex C ℤ
n m : ℤ
γ : Cochain F G n
p q : ℤ
hpq : p + n = q
⊢ γ.v p q hpq ≫ (HomologicalComplex.XIsoOfEq G ⋯).hom = γ.v p q ⋯

tactic: simp only [HomologicalComplex.XIsoOfEq, eqToIso_refl, Iso.refl_hom, comp_id]
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
F G K L : CochainComplex C ℤ
n m : ℤ
γ : Cochain F G n
p q : ℤ
hpq : p + n = q
⊢ γ.v p q hpq ≫ (HomologicalComplex.XIsoOfEq G ⋯).hom = γ.v p q ⋯
state_after: no goals
Theorem: Con.lift_apply_mk'
File: Mathlib/GroupTheory/Congruence/Basic.lean

tactic: rw [c.eq.2 h]
state_before: M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
c : Con M
x✝ y✝ : M
f✝ : M →* P
f : c.Quotient →* P
x y : M
h : c x y
⊢ f ↑x = f ↑y
state_after: no goals

tactic: ext x
state_before: M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
c : Con M
x y : M
f✝ : M →* P
f : c.Quotient →* P
⊢ c.lift (f.comp c.mk') ⋯ = f
state_after: case h
M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
c : Con M
x✝ y : M
f✝ : M →* P
f : c.Quotient →* P
x : c.Quotient
⊢ (c.lift (f.comp c.mk') ⋯) x = f x

tactic: rcases x with ⟨⟩
state_before: case h
M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
c : Con M
x✝ y : M
f✝ : M →* P
f : c.Quotient →* P
x : c.Quotient
⊢ (c.lift (f.comp c.mk') ⋯) x = f x
state_after: case h.mk
M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
c : Con M
x✝ y : M
f✝ : M →* P
f : c.Quotient →* P
x : c.Quotient
a✝ : M
⊢ (c.lift (f.comp c.mk') ⋯) (Quot.mk r a✝) = f (Quot.mk r a✝)

tactic: rfl
state_before: case h.mk
M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
c : Con M
x✝ y : M
f✝ : M →* P
f : c.Quotient →* P
x : c.Quotient
a✝ : M
⊢ (c.lift (f.comp c.mk') ⋯) (Quot.mk r a✝) = f (Quot.mk r a✝)
state_after: no goals