1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: AffineIndependent.affineSpan_disjoint_of_disjoint
File: Mathlib/LinearAlgebra/AffineSpace/Independent.lean

tactic: refine Set.disjoint_left.2 fun p0 hp0s1 hp0s2 => ?_
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_4
inst✝ : Nontrivial k
p : ι → P
ha : AffineIndependent k p
s1 s2 : Set ι
hd : Disjoint s1 s2
⊢ Disjoint ↑(affineSpan k (p '' s1)) ↑(affineSpan k (p '' s2))
state_after: k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_4
inst✝ : Nontrivial k
p : ι → P
ha : AffineIndependent k p
s1 s2 : Set ι
hd : Disjoint s1 s2
p0 : P
hp0s1 : p0 ∈ ↑(affineSpan k (p '' s1))
hp0s2 : p0 ∈ ↑(affineSpan k (p '' s2))
⊢ False

tactic: cases' ha.exists_mem_inter_of_exists_mem_inter_affineSpan hp0s1 hp0s2 with i hi
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_4
inst✝ : Nontrivial k
p : ι → P
ha : AffineIndependent k p
s1 s2 : Set ι
hd : Disjoint s1 s2
p0 : P
hp0s1 : p0 ∈ ↑(affineSpan k (p '' s1))
hp0s2 : p0 ∈ ↑(affineSpan k (p '' s2))
⊢ False
state_after: case intro
k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_4
inst✝ : Nontrivial k
p : ι → P
ha : AffineIndependent k p
s1 s2 : Set ι
hd : Disjoint s1 s2
p0 : P
hp0s1 : p0 ∈ ↑(affineSpan k (p '' s1))
hp0s2 : p0 ∈ ↑(affineSpan k (p '' s2))
i : ι
hi : i ∈ s1 ∩ s2
⊢ False

tactic: exact Set.disjoint_iff.1 hd hi
state_before: case intro
k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
ι : Type u_4
inst✝ : Nontrivial k
p : ι → P
ha : AffineIndependent k p
s1 s2 : Set ι
hd : Disjoint s1 s2
p0 : P
hp0s1 : p0 ∈ ↑(affineSpan k (p '' s1))
hp0s2 : p0 ∈ ↑(affineSpan k (p '' s2))
i : ι
hi : i ∈ s1 ∩ s2
⊢ False
state_after: no goals
Theorem: Ideal.IsPrime.mem_pow_mul
File: Mathlib/RingTheory/DedekindDomain/Ideal.lean

tactic: rw [mul_comm] at h
state_before: R : Type u_1
A : Type u_2
K : Type u_3
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Field K
inst✝ : IsDedekindDomain R
I : Ideal R
hI : I.IsPrime
a b : R
n : ℕ
h : a * b ∈ I ^ n
⊢ a ∈ I ^ n ∨ b ∈ I
state_after: R : Type u_1
A : Type u_2
K : Type u_3
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Field K
inst✝ : IsDedekindDomain R
I : Ideal R
hI : I.IsPrime
a b : R
n : ℕ
h : b * a ∈ I ^ n
⊢ a ∈ I ^ n ∨ b ∈ I

tactic: rw [or_comm]
state_before: R : Type u_1
A : Type u_2
K : Type u_3
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Field K
inst✝ : IsDedekindDomain R
I : Ideal R
hI : I.IsPrime
a b : R
n : ℕ
h : b * a ∈ I ^ n
⊢ a ∈ I ^ n ∨ b ∈ I
state_after: R : Type u_1
A : Type u_2
K : Type u_3
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Field K
inst✝ : IsDedekindDomain R
I : Ideal R
hI : I.IsPrime
a b : R
n : ℕ
h : b * a ∈ I ^ n
⊢ b ∈ I ∨ a ∈ I ^ n

tactic: exact Ideal.IsPrime.mul_mem_pow _ h
state_before: R : Type u_1
A : Type u_2
K : Type u_3
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Field K
inst✝ : IsDedekindDomain R
I : Ideal R
hI : I.IsPrime
a b : R
n : ℕ
h : b * a ∈ I ^ n
⊢ b ∈ I ∨ a ∈ I ^ n
state_after: no goals
Theorem: SemiconjBy.zpow_right
File: Mathlib/Algebra/Group/Semiconj/Basic.lean

tactic: simp [zpow_natCast, h.pow_right n]
state_before: G : Type u_1
inst✝ : Group G
a x y : G
h : SemiconjBy a x y
n : ℕ
⊢ SemiconjBy a (x ^ ↑n) (y ^ ↑n)
state_after: no goals

tactic: simp only [zpow_negSucc, inv_right_iff]
state_before: G : Type u_1
inst✝ : Group G
a x y : G
h : SemiconjBy a x y
n : ℕ
⊢ SemiconjBy a (x ^ Int.negSucc n) (y ^ Int.negSucc n)
state_after: G : Type u_1
inst✝ : Group G
a x y : G
h : SemiconjBy a x y
n : ℕ
⊢ SemiconjBy a (x ^ (n + 1)) (y ^ (n + 1))

tactic: apply pow_right h
state_before: G : Type u_1
inst✝ : Group G
a x y : G
h : SemiconjBy a x y
n : ℕ
⊢ SemiconjBy a (x ^ (n + 1)) (y ^ (n + 1))
state_after: no goals
Theorem: Complex.frontier_setOf_le_re_and_le_im
File: Mathlib/Analysis/Complex/ReImTopology.lean

tactic: simpa only [closure_Ici, frontier_Ici] using frontier_reProdIm (Ici a) (Ici b)
state_before: a b : ℝ
⊢ frontier {z | a ≤ z.re ∧ b ≤ z.im} = {z | a ≤ z.re ∧ z.im = b ∨ z.re = a ∧ b ≤ z.im}
state_after: no goals
Theorem: LinearIndependent.restrict_scalars_algebras
File: Mathlib/LinearAlgebra/FreeModule/PID.lean

tactic: rwa [Algebra.algebraMap_eq_smul_one'] at hinj
state_before: R : Type u_1
S : Type u_2
M : Type u_3
ι : Type u_4
inst✝⁶ : CommSemiring R
inst✝⁵ : Semiring S
inst✝⁴ : AddCommMonoid M
inst✝³ : Algebra R S
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
hinj : Function.Injective ⇑(algebraMap R S)
v : ι → M
li : LinearIndependent S v
⊢ Function.Injective fun r => r • 1
state_after: no goals
Theorem: Matrix.charpoly_fromBlocks_zero₂₁
File: Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean

tactic: simp only [charpoly, charmatrix_fromBlocks, Matrix.map_zero _ (Polynomial.C_0), neg_zero,
  det_fromBlocks_zero₂₁]
state_before: R : Type u_1
S : Type u_2
inst✝⁵ : CommRing R
inst✝⁴ : CommRing S
m : Type u_3
n : Type u_4
inst✝³ : DecidableEq m
inst✝² : DecidableEq n
inst✝¹ : Fintype m
inst✝ : Fintype n
M₁₁ : Matrix m m R
M₁₂ : Matrix m n R
M₂₁ : Matrix n m R
M₂₂ M : Matrix n n R
i j : n
⊢ (fromBlocks M₁₁ M₁₂ 0 M₂₂).charpoly = M₁₁.charpoly * M₂₂.charpoly
state_after: no goals
Theorem: dvd_c_of_prime_of_dvd_a_of_dvd_b_of_FLT
File: Mathlib/NumberTheory/FLT/Basic.lean

tactic: rcases eq_or_ne n 0 with rfl | hn
state_before: α : Type u_1
inst✝¹ : Semiring α
inst✝ : NoZeroDivisors α
m n✝ n : ℕ
p : ℤ
hp : Prime p
a b c : ℤ
hpa : p ∣ a
hpb : p ∣ b
HF : a ^ n + b ^ n + c ^ n = 0
⊢ p ∣ c
state_after: case inl
α : Type u_1
inst✝¹ : Semiring α
inst✝ : NoZeroDivisors α
m n : ℕ
p : ℤ
hp : Prime p
a b c : ℤ
hpa : p ∣ a
hpb : p ∣ b
HF : a ^ 0 + b ^ 0 + c ^ 0 = 0
⊢ p ∣ c

case inr
α : Type u_1
inst✝¹ : Semiring α
inst✝ : NoZeroDivisors α
m n✝ n : ℕ
p : ℤ
hp : Prime p
a b c : ℤ
hpa : p ∣ a
hpb : p ∣ b
HF : a ^ n + b ^ n + c ^ n = 0
hn : n ≠ 0
⊢ p ∣ c

tactic: refine hp.dvd_of_dvd_pow (n := n) (dvd_neg.1 ?_)
state_before: case inr
α : Type u_1
inst✝¹ : Semiring α
inst✝ : NoZeroDivisors α
m n✝ n : ℕ
p : ℤ
hp : Prime p
a b c : ℤ
hpa : p ∣ a
hpb : p ∣ b
HF : a ^ n + b ^ n + c ^ n = 0
hn : n ≠ 0
⊢ p ∣ c
state_after: case inr
α : Type u_1
inst✝¹ : Semiring α
inst✝ : NoZeroDivisors α
m n✝ n : ℕ
p : ℤ
hp : Prime p
a b c : ℤ
hpa : p ∣ a
hpb : p ∣ b
HF : a ^ n + b ^ n + c ^ n = 0
hn : n ≠ 0
⊢ p ∣ -c ^ n

tactic: rw [add_eq_zero_iff_eq_neg] at HF
state_before: case inr
α : Type u_1
inst✝¹ : Semiring α
inst✝ : NoZeroDivisors α
m n✝ n : ℕ
p : ℤ
hp : Prime p
a b c : ℤ
hpa : p ∣ a
hpb : p ∣ b
HF : a ^ n + b ^ n + c ^ n = 0
hn : n ≠ 0
⊢ p ∣ -c ^ n
state_after: case inr
α : Type u_1
inst✝¹ : Semiring α
inst✝ : NoZeroDivisors α
m n✝ n : ℕ
p : ℤ
hp : Prime p
a b c : ℤ
hpa : p ∣ a
hpb : p ∣ b
HF : a ^ n + b ^ n = -c ^ n
hn : n ≠ 0
⊢ p ∣ -c ^ n

tactic: exact HF.symm ▸ dvd_add (dvd_pow hpa hn) (dvd_pow hpb hn)
state_before: case inr
α : Type u_1
inst✝¹ : Semiring α
inst✝ : NoZeroDivisors α
m n✝ n : ℕ
p : ℤ
hp : Prime p
a b c : ℤ
hpa : p ∣ a
hpb : p ∣ b
HF : a ^ n + b ^ n = -c ^ n
hn : n ≠ 0
⊢ p ∣ -c ^ n
state_after: no goals

tactic: simp at HF
state_before: case inl
α : Type u_1
inst✝¹ : Semiring α
inst✝ : NoZeroDivisors α
m n : ℕ
p : ℤ
hp : Prime p
a b c : ℤ
hpa : p ∣ a
hpb : p ∣ b
HF : a ^ 0 + b ^ 0 + c ^ 0 = 0
⊢ p ∣ c
state_after: no goals
Theorem: DFinsupp.subset_mapRange_neLocus
File: Mathlib/Data/DFinsupp/NeLocus.lean

tactic: simpa only [mem_neLocus, mapRange_apply, not_imp_not] using congr_arg (F a)
state_before: α : Type u_1
N : α → Type u_2
inst✝⁵ : DecidableEq α
M : α → Type u_3
P : α → Type u_4
inst✝⁴ : (a : α) → Zero (N a)
inst✝³ : (a : α) → Zero (M a)
inst✝² : (a : α) → Zero (P a)
inst✝¹ : (a : α) → DecidableEq (N a)
inst✝ : (a : α) → DecidableEq (M a)
f g : Π₀ (a : α), N a
F : (a : α) → N a → M a
F0 : ∀ (a : α), F a 0 = 0
a : α
⊢ a ∈ (mapRange F F0 f).neLocus (mapRange F F0 g) → a ∈ f.neLocus g
state_after: no goals
Theorem: Polynomial.monic_map_iff
File: Mathlib/Algebra/Polynomial/FieldDivision.lean

tactic: rw [Monic, leadingCoeff_map, ← f.map_one, Function.Injective.eq_iff f.injective, Monic]
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝² : DivisionRing R
p✝ q : R[X]
inst✝¹ : Semiring S
inst✝ : Nontrivial S
f : R →+* S
p : R[X]
⊢ (map f p).Monic ↔ p.Monic
state_after: no goals
Theorem: Ordinal.zero_opow'
File: Mathlib/SetTheory/Ordinal/Exponential.lean

tactic: simp only [opow_def, if_true]
state_before: a : Ordinal.{u_1}
⊢ 0 ^ a = 1 - a
state_after: no goals
Theorem: gcd_mul_right
File: Mathlib/Algebra/GCDMonoid/Basic.lean

tactic: simp only [mul_comm, gcd_mul_left]
state_before: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : NormalizedGCDMonoid α
a b c : α
⊢ gcd (b * a) (c * a) = gcd b c * normalize a
state_after: no goals
Theorem: Pretrivialization.coe_linearMapAt
File: Mathlib/Topology/VectorBundle/Basic.lean

tactic: rw [Pretrivialization.linearMapAt]
state_before: R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
⊢ ⇑(Pretrivialization.linearMapAt R e b) = fun y => if b ∈ e.baseSet then (↑e { proj := b, snd := y }).2 else 0
state_after: R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
⊢ ⇑(if hb : b ∈ e.baseSet then ↑(linearEquivAt R e b hb) else 0) = fun y =>
    if b ∈ e.baseSet then (↑e { proj := b, snd := y }).2 else 0

tactic: split_ifs <;> rfl
state_before: R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁷ : Semiring R
inst✝⁶ : TopologicalSpace F
inst✝⁵ : TopologicalSpace B
e✝ : Pretrivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Pretrivialization F TotalSpace.proj
inst✝ : Pretrivialization.IsLinear R e
b : B
⊢ ⇑(if hb : b ∈ e.baseSet then ↑(linearEquivAt R e b hb) else 0) = fun y =>
    if b ∈ e.baseSet then (↑e { proj := b, snd := y }).2 else 0
state_after: no goals
Theorem: Nat.cast_pow_eq_one
File: Mathlib/Algebra/CharZero/Lemmas.lean

tactic: rw [← cast_pow, cast_eq_one]
state_before: R✝ : Type u_1
inst✝³ : AddMonoidWithOne R✝
inst✝² : CharZero R✝
R : Type u_2
inst✝¹ : Semiring R
inst✝ : CharZero R
q n : ℕ
hn : n ≠ 0
⊢ ↑q ^ n = 1 ↔ q = 1
state_after: R✝ : Type u_1
inst✝³ : AddMonoidWithOne R✝
inst✝² : CharZero R✝
R : Type u_2
inst✝¹ : Semiring R
inst✝ : CharZero R
q n : ℕ
hn : n ≠ 0
⊢ q ^ n = 1 ↔ q = 1

tactic: exact pow_eq_one_iff hn
state_before: R✝ : Type u_1
inst✝³ : AddMonoidWithOne R✝
inst✝² : CharZero R✝
R : Type u_2
inst✝¹ : Semiring R
inst✝ : CharZero R
q n : ℕ
hn : n ≠ 0
⊢ q ^ n = 1 ↔ q = 1
state_after: no goals
Theorem: isMulFreimanHom_id
File: Mathlib/Combinatorics/Additive/FreimanHom.lean

tactic: simpa using h
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : CommMonoid α
inst✝¹ : CommMonoid β
inst✝ : CommMonoid γ
A A₁ A₂ : Set α
B B₁ B₂ : Set β
C : Set γ
f f₁ f₂ : α → β
g : β → γ
m n : ℕ
hA : A₁ ⊆ A₂
s t : Multiset α
x✝³ : ∀ ⦃x : α⦄, x ∈ s → x ∈ A₁
x✝² : ∀ ⦃x : α⦄, x ∈ t → x ∈ A₁
x✝¹ : card s = n
x✝ : card t = n
h : s.prod = t.prod
⊢ (map id s).prod = (map id t).prod
state_after: no goals
Theorem: IntervalIntegrable.continuousOn_mul
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: rw [intervalIntegrable_iff] at hf ⊢
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A
f✝ g✝ : ℝ → E
a b : ℝ
μ : Measure ℝ
f g : ℝ → A
hf : IntervalIntegrable f μ a b
hg : ContinuousOn g [[a, b]]
⊢ IntervalIntegrable (fun x => g x * f x) μ a b
state_after: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A
f✝ g✝ : ℝ → E
a b : ℝ
μ : Measure ℝ
f g : ℝ → A
hf : IntegrableOn f (Ι a b) μ
hg : ContinuousOn g [[a, b]]
⊢ IntegrableOn (fun x => g x * f x) (Ι a b) μ

tactic: exact hf.continuousOn_mul_of_subset hg isCompact_uIcc measurableSet_Ioc Ioc_subset_Icc_self
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A
f✝ g✝ : ℝ → E
a b : ℝ
μ : Measure ℝ
f g : ℝ → A
hf : IntegrableOn f (Ι a b) μ
hg : ContinuousOn g [[a, b]]
⊢ IntegrableOn (fun x => g x * f x) (Ι a b) μ
state_after: no goals
Theorem: lebesgue_number_lemma_sUnion
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: rw [sUnion_eq_iUnion] at hcover
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
K : Set α
S : Set (Set α)
hK : IsCompact K
hopen : ∀ s ∈ S, IsOpen s
hcover : K ⊆ ⋃₀ S
⊢ ∃ V ∈ 𝓤 α, ∀ x ∈ K, ∃ s ∈ S, ball x V ⊆ s
state_after: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
K : Set α
S : Set (Set α)
hK : IsCompact K
hopen : ∀ s ∈ S, IsOpen s
hcover : K ⊆ ⋃ i, ↑i
⊢ ∃ V ∈ 𝓤 α, ∀ x ∈ K, ∃ s ∈ S, ball x V ⊆ s

tactic: simpa using lebesgue_number_lemma hK (by simpa) hcover
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
K : Set α
S : Set (Set α)
hK : IsCompact K
hopen : ∀ s ∈ S, IsOpen s
hcover : K ⊆ ⋃ i, ↑i
⊢ ∃ V ∈ 𝓤 α, ∀ x ∈ K, ∃ s ∈ S, ball x V ⊆ s
state_after: no goals

tactic: simpa
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
K : Set α
S : Set (Set α)
hK : IsCompact K
hopen : ∀ s ∈ S, IsOpen s
hcover : K ⊆ ⋃ i, ↑i
⊢ ∀ (i : ↑S), IsOpen ↑i
state_after: no goals
Theorem: Complex.abs_add_mul_I
File: Mathlib/Data/Complex/Abs.lean

tactic: rw [← normSq_add_mul_I]
state_before: x y : ℝ
⊢ abs (↑x + ↑y * I) = √(x ^ 2 + y ^ 2)
state_after: x y : ℝ
⊢ abs (↑x + ↑y * I) = √(normSq (↑x + ↑y * I))

tactic: rfl
state_before: x y : ℝ
⊢ abs (↑x + ↑y * I) = √(normSq (↑x + ↑y * I))
state_after: no goals
Theorem: Set.chainHeight_insert_of_forall_lt
File: Mathlib/Order/Height.lean

tactic: rw [← chainHeight_dual, ← chainHeight_dual s]
state_before: α : Type u_1
β : Type u_2
s t : Set α
inst✝ : Preorder α
a : α
ha : ∀ b ∈ s, b < a
⊢ (insert a s).chainHeight = s.chainHeight + 1
state_after: α : Type u_1
β : Type u_2
s t : Set α
inst✝ : Preorder α
a : α
ha : ∀ b ∈ s, b < a
⊢ (⇑ofDual ⁻¹' insert a s).chainHeight = (⇑ofDual ⁻¹' s).chainHeight + 1

tactic: exact chainHeight_insert_of_forall_gt _ ha
state_before: α : Type u_1
β : Type u_2
s t : Set α
inst✝ : Preorder α
a : α
ha : ∀ b ∈ s, b < a
⊢ (⇑ofDual ⁻¹' insert a s).chainHeight = (⇑ofDual ⁻¹' s).chainHeight + 1
state_after: no goals
Theorem: lp.norm_zero
File: Mathlib/Analysis/NormedSpace/lpSpace.lean

tactic: rcases p.trichotomy with (rfl | rfl | hp)
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
⊢ ‖0‖ = 0
state_after: case inl
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
⊢ ‖0‖ = 0

case inr.inl
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
⊢ ‖0‖ = 0

case inr.inr
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
hp : 0 < p.toReal
⊢ ‖0‖ = 0

tactic: simp [lp.norm_eq_card_dsupport]
state_before: case inl
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
⊢ ‖0‖ = 0
state_after: no goals

tactic: simp [lp.norm_eq_ciSup]
state_before: case inr.inl
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
⊢ ‖0‖ = 0
state_after: no goals

tactic: rw [lp.norm_eq_tsum_rpow hp]
state_before: case inr.inr
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
hp : 0 < p.toReal
⊢ ‖0‖ = 0
state_after: case inr.inr
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
hp : 0 < p.toReal
⊢ (∑' (i : α), ‖↑0 i‖ ^ p.toReal) ^ (1 / p.toReal) = 0

tactic: have hp' : 1 / p.toReal ≠ 0 := one_div_ne_zero hp.ne'
state_before: case inr.inr
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
hp : 0 < p.toReal
⊢ (∑' (i : α), ‖↑0 i‖ ^ p.toReal) ^ (1 / p.toReal) = 0
state_after: case inr.inr
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
hp : 0 < p.toReal
hp' : 1 / p.toReal ≠ 0
⊢ (∑' (i : α), ‖↑0 i‖ ^ p.toReal) ^ (1 / p.toReal) = 0

tactic: simpa [Real.zero_rpow hp.ne'] using Real.zero_rpow hp'
state_before: case inr.inr
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
hp : 0 < p.toReal
hp' : 1 / p.toReal ≠ 0
⊢ (∑' (i : α), ‖↑0 i‖ ^ p.toReal) ^ (1 / p.toReal) = 0
state_after: no goals
Theorem: MeasureTheory.L1.integral_smul
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: simp only [integral]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
m : MeasurableSpace α
μ : Measure α
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedSpace 𝕜 E
inst✝² : SMulCommClass ℝ 𝕜 E
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace E
c : 𝕜
f : ↥(Lp E 1 μ)
⊢ integral (c • f) = c • integral f
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
m : MeasurableSpace α
μ : Measure α
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedSpace 𝕜 E
inst✝² : SMulCommClass ℝ 𝕜 E
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace E
c : 𝕜
f : ↥(Lp E 1 μ)
⊢ integralCLM (c • f) = c • integralCLM f

tactic: show (integralCLM' (E := E) 𝕜) (c • f) = c • (integralCLM' (E := E) 𝕜) f
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
m : MeasurableSpace α
μ : Measure α
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedSpace 𝕜 E
inst✝² : SMulCommClass ℝ 𝕜 E
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace E
c : 𝕜
f : ↥(Lp E 1 μ)
⊢ integralCLM (c • f) = c • integralCLM f
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
m : MeasurableSpace α
μ : Measure α
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedSpace 𝕜 E
inst✝² : SMulCommClass ℝ 𝕜 E
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace E
c : 𝕜
f : ↥(Lp E 1 μ)
⊢ (integralCLM' 𝕜) (c • f) = c • (integralCLM' 𝕜) f

tactic: exact map_smul (integralCLM' (E := E) 𝕜) c f
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
m : MeasurableSpace α
μ : Measure α
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedSpace 𝕜 E
inst✝² : SMulCommClass ℝ 𝕜 E
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace E
c : 𝕜
f : ↥(Lp E 1 μ)
⊢ (integralCLM' 𝕜) (c • f) = c • (integralCLM' 𝕜) f
state_after: no goals
Theorem: IsGroupHom.injective_of_trivial_ker
File: Mathlib/Deprecated/Subgroup.lean

tactic: intro a₁ a₂ hfa
state_before: G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
inst✝¹ : Group G
inst✝ : Group H
f : G → H
hf : IsGroupHom f
h : ker f = IsSubgroup.trivial G
⊢ Injective f
state_after: G : Type u_1
H : Type u_2
A : Type u_3
a a₁✝ a₂✝ b c : G
inst✝¹ : Group G
inst✝ : Group H
f : G → H
hf : IsGroupHom f
h : ker f = IsSubgroup.trivial G
a₁ a₂ : G
hfa : f a₁ = f a₂
⊢ a₁ = a₂

tactic: simp [ext_iff, ker, IsSubgroup.trivial] at h
state_before: G : Type u_1
H : Type u_2
A : Type u_3
a a₁✝ a₂✝ b c : G
inst✝¹ : Group G
inst✝ : Group H
f : G → H
hf : IsGroupHom f
h : ker f = IsSubgroup.trivial G
a₁ a₂ : G
hfa : f a₁ = f a₂
⊢ a₁ = a₂
state_after: G : Type u_1
H : Type u_2
A : Type u_3
a a₁✝ a₂✝ b c : G
inst✝¹ : Group G
inst✝ : Group H
f : G → H
hf : IsGroupHom f
a₁ a₂ : G
hfa : f a₁ = f a₂
h : ∀ (x : G), f x = 1 ↔ x = 1
⊢ a₁ = a₂

tactic: have ha : a₁ * a₂⁻¹ = 1 := by rw [← h]; exact hf.inv_ker_one hfa
state_before: G : Type u_1
H : Type u_2
A : Type u_3
a a₁✝ a₂✝ b c : G
inst✝¹ : Group G
inst✝ : Group H
f : G → H
hf : IsGroupHom f
a₁ a₂ : G
hfa : f a₁ = f a₂
h : ∀ (x : G), f x = 1 ↔ x = 1
⊢ a₁ = a₂
state_after: G : Type u_1
H : Type u_2
A : Type u_3
a a₁✝ a₂✝ b c : G
inst✝¹ : Group G
inst✝ : Group H
f : G → H
hf : IsGroupHom f
a₁ a₂ : G
hfa : f a₁ = f a₂
h : ∀ (x : G), f x = 1 ↔ x = 1
ha : a₁ * a₂⁻¹ = 1
⊢ a₁ = a₂

tactic: rw [eq_inv_of_mul_eq_one_left ha, inv_inv a₂]
state_before: G : Type u_1
H : Type u_2
A : Type u_3
a a₁✝ a₂✝ b c : G
inst✝¹ : Group G
inst✝ : Group H
f : G → H
hf : IsGroupHom f
a₁ a₂ : G
hfa : f a₁ = f a₂
h : ∀ (x : G), f x = 1 ↔ x = 1
ha : a₁ * a₂⁻¹ = 1
⊢ a₁ = a₂
state_after: no goals

tactic: rw [← h]
state_before: G : Type u_1
H : Type u_2
A : Type u_3
a a₁✝ a₂✝ b c : G
inst✝¹ : Group G
inst✝ : Group H
f : G → H
hf : IsGroupHom f
a₁ a₂ : G
hfa : f a₁ = f a₂
h : ∀ (x : G), f x = 1 ↔ x = 1
⊢ a₁ * a₂⁻¹ = 1
state_after: G : Type u_1
H : Type u_2
A : Type u_3
a a₁✝ a₂✝ b c : G
inst✝¹ : Group G
inst✝ : Group H
f : G → H
hf : IsGroupHom f
a₁ a₂ : G
hfa : f a₁ = f a₂
h : ∀ (x : G), f x = 1 ↔ x = 1
⊢ f (a₁ * a₂⁻¹) = 1

tactic: exact hf.inv_ker_one hfa
state_before: G : Type u_1
H : Type u_2
A : Type u_3
a a₁✝ a₂✝ b c : G
inst✝¹ : Group G
inst✝ : Group H
f : G → H
hf : IsGroupHom f
a₁ a₂ : G
hfa : f a₁ = f a₂
h : ∀ (x : G), f x = 1 ↔ x = 1
⊢ f (a₁ * a₂⁻¹) = 1
state_after: no goals
Theorem: Nat.Partrec.Code.fixed_point₂
File: Mathlib/Computability/PartrecCode.lean

tactic: simp [e.symm, ef, Part.map_id']
state_before: f : Code → ℕ →. ℕ
hf : Partrec₂ f
cf : Code
ef : cf.eval = fun n => (↑(decode n)).bind fun a => Part.map encode ((fun p => f p.1 p.2) a)
c : Code
e : (cf.curry (encode c)).eval = c.eval
n : ℕ
⊢ c.eval n = f c n
state_after: no goals
Theorem: WeierstrassCurve.Jacobian.addY_of_Z_eq_zero_left
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

tactic: simp only [addY, addX_of_Z_eq_zero_left hPz, negAddY_of_Z_eq_zero_left hP hPz,
  addZ_of_Z_eq_zero_left hPz, negY, fin3_def_ext]
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P Q : Fin 3 → R
hP : W'.Equation P
hPz : P z = 0
⊢ W'.addY P Q = (P x * Q z) ^ 3 * Q y
state_after: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P Q : Fin 3 → R
hP : W'.Equation P
hPz : P z = 0
⊢ -((P x * Q z) ^ 3 * (-Q y - W'.a₁ * Q x * Q z - W'.a₃ * Q z ^ 3)) -
        W'.a₁ * ((P x * Q z) ^ 2 * Q x) * (P x * Q z * Q z) -
      W'.a₃ * (P x * Q z * Q z) ^ 3 =
    (P x * Q z) ^ 3 * Q y

tactic: ring1
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P Q : Fin 3 → R
hP : W'.Equation P
hPz : P z = 0
⊢ -((P x * Q z) ^ 3 * (-Q y - W'.a₁ * Q x * Q z - W'.a₃ * Q z ^ 3)) -
        W'.a₁ * ((P x * Q z) ^ 2 * Q x) * (P x * Q z * Q z) -
      W'.a₃ * (P x * Q z * Q z) ^ 3 =
    (P x * Q z) ^ 3 * Q y
state_after: no goals
Theorem: Complex.arg_cos_add_sin_mul_I
File: Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean

tactic: rw [← one_mul (_ + _), ← ofReal_one, arg_mul_cos_add_sin_mul_I zero_lt_one hθ]
state_before: a x z : ℂ
θ : ℝ
hθ : θ ∈ Ioc (-π) π
⊢ (cos ↑θ + sin ↑θ * I).arg = θ
state_after: no goals