1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: TendstoUniformly.prod_map
File: Mathlib/Topology/UniformSpace/UniformConvergence.lean

tactic: rw [← tendstoUniformlyOn_univ, ← univ_prod_univ] at *
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p'✝ : Filter α
g : ι → α
ι' : Type u_1
α' : Type u_2
β' : Type u_3
inst✝ : UniformSpace β'
F' : ι' → α' → β'
f' : α' → β'
p' : Filter ι'
h : TendstoUniformly F f p
h' : TendstoUniformly F' f' p'
⊢ TendstoUniformly (fun i => Prod.map (F i.1) (F' i.2)) (Prod.map f f') (p ×ˢ p')
state_after: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p'✝ : Filter α
g : ι → α
ι' : Type u_1
α' : Type u_2
β' : Type u_3
inst✝ : UniformSpace β'
F' : ι' → α' → β'
f' : α' → β'
p' : Filter ι'
h : TendstoUniformlyOn F f p univ
h' : TendstoUniformlyOn F' f' p' univ
⊢ TendstoUniformlyOn (fun i => Prod.map (F i.1) (F' i.2)) (Prod.map f f') (p ×ˢ p') (univ ×ˢ univ)

tactic: exact h.prod_map h'
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p'✝ : Filter α
g : ι → α
ι' : Type u_1
α' : Type u_2
β' : Type u_3
inst✝ : UniformSpace β'
F' : ι' → α' → β'
f' : α' → β'
p' : Filter ι'
h : TendstoUniformlyOn F f p univ
h' : TendstoUniformlyOn F' f' p' univ
⊢ TendstoUniformlyOn (fun i => Prod.map (F i.1) (F' i.2)) (Prod.map f f') (p ×ˢ p') (univ ×ˢ univ)
state_after: no goals
Theorem: generatePiSystem_mono
File: Mathlib/MeasureTheory/PiSystem.lean

tactic: induction' ht with s h_s s u _ _ h_nonempty h_s h_u
state_before: α : Type u_1
S T : Set (Set α)
hST : S ⊆ T
t : Set α
ht : t ∈ generatePiSystem S
⊢ t ∈ generatePiSystem T
state_after: case base
α : Type u_1
S T : Set (Set α)
hST : S ⊆ T
t s : Set α
h_s : s ∈ S
⊢ s ∈ generatePiSystem T

case inter
α : Type u_1
S T : Set (Set α)
hST : S ⊆ T
t s u : Set α
h_s✝ : generatePiSystem S s
h_t✝ : generatePiSystem S u
h_nonempty : (s ∩ u).Nonempty
h_s : s ∈ generatePiSystem T
h_u : u ∈ generatePiSystem T
⊢ s ∩ u ∈ generatePiSystem T

tactic: exact generatePiSystem.base (Set.mem_of_subset_of_mem hST h_s)
state_before: case base
α : Type u_1
S T : Set (Set α)
hST : S ⊆ T
t s : Set α
h_s : s ∈ S
⊢ s ∈ generatePiSystem T
state_after: no goals

tactic: exact isPiSystem_generatePiSystem T _ h_s _ h_u h_nonempty
state_before: case inter
α : Type u_1
S T : Set (Set α)
hST : S ⊆ T
t s u : Set α
h_s✝ : generatePiSystem S s
h_t✝ : generatePiSystem S u
h_nonempty : (s ∩ u).Nonempty
h_s : s ∈ generatePiSystem T
h_u : u ∈ generatePiSystem T
⊢ s ∩ u ∈ generatePiSystem T
state_after: no goals
Theorem: add_pow_expChar_pow
File: Mathlib/Algebra/CharP/ExpChar.lean

tactic: cases' hR with _ _ hprime _
state_before: R : Type u
inst✝ : CommSemiring R
q : ℕ
hR : ExpChar R q
n : ℕ
x y : R
⊢ (x + y) ^ q ^ n = x ^ q ^ n + y ^ q ^ n
state_after: case zero
R : Type u
inst✝¹ : CommSemiring R
n : ℕ
x y : R
inst✝ : CharZero R
⊢ (x + y) ^ 1 ^ n = x ^ 1 ^ n + y ^ 1 ^ n

case prime
R : Type u
inst✝ : CommSemiring R
q n : ℕ
x y : R
hprime : Nat.Prime q
hchar✝ : CharP R q
⊢ (x + y) ^ q ^ n = x ^ q ^ n + y ^ q ^ n

tactic: haveI := Fact.mk hprime
state_before: case prime
R : Type u
inst✝ : CommSemiring R
q n : ℕ
x y : R
hprime : Nat.Prime q
hchar✝ : CharP R q
⊢ (x + y) ^ q ^ n = x ^ q ^ n + y ^ q ^ n
state_after: case prime
R : Type u
inst✝ : CommSemiring R
q n : ℕ
x y : R
hprime : Nat.Prime q
hchar✝ : CharP R q
this : Fact (Nat.Prime q)
⊢ (x + y) ^ q ^ n = x ^ q ^ n + y ^ q ^ n

tactic: exact add_pow_char_pow R x y
state_before: case prime
R : Type u
inst✝ : CommSemiring R
q n : ℕ
x y : R
hprime : Nat.Prime q
hchar✝ : CharP R q
this : Fact (Nat.Prime q)
⊢ (x + y) ^ q ^ n = x ^ q ^ n + y ^ q ^ n
state_after: no goals

tactic: simp only [one_pow, pow_one]
state_before: case zero
R : Type u
inst✝¹ : CommSemiring R
n : ℕ
x y : R
inst✝ : CharZero R
⊢ (x + y) ^ 1 ^ n = x ^ 1 ^ n + y ^ 1 ^ n
state_after: no goals
Theorem: Asymptotics.isTheta_zero_left
File: Mathlib/Analysis/Asymptotics/Theta.lean

tactic: simp only [IsTheta, isBigO_zero, isBigO_zero_right_iff, true_and_iff]
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
R : Type u_12
R' : Type u_13
𝕜 : Type u_14
𝕜' : Type u_15
inst✝¹² : Norm E
inst✝¹¹ : Norm F
inst✝¹⁰ : Norm G
inst✝⁹ : SeminormedAddCommGroup E'
inst✝⁸ : SeminormedAddCommGroup F'
inst✝⁷ : SeminormedAddCommGroup G'
inst✝⁶ : NormedAddCommGroup E''
inst✝⁵ : NormedAddCommGroup F''
inst✝⁴ : NormedAddCommGroup G''
inst✝³ : SeminormedRing R
inst✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
l l' : Filter α
⊢ (fun x => 0) =Θ[l] g'' ↔ g'' =ᶠ[l] 0
state_after: no goals
Theorem: Finset.prod_range_zero
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: rw [range_zero, prod_empty]
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝ : CommMonoid β
f : ℕ → β
⊢ ∏ k ∈ range 0, f k = 1
state_after: no goals
Theorem: Complex.HadamardThreeLines.sSupNormIm_nonneg
File: Mathlib/Analysis/Complex/Hadamard.lean

tactic: apply Real.sSup_nonneg
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℂ → E
z : ℂ
x : ℝ
⊢ 0 ≤ sSupNormIm f x
state_after: case hS
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℂ → E
z : ℂ
x : ℝ
⊢ ∀ x_1 ∈ norm ∘ f '' (re ⁻¹' {x}), 0 ≤ x_1

tactic: rintro y ⟨z1, _, hz2⟩
state_before: case hS
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℂ → E
z : ℂ
x : ℝ
⊢ ∀ x_1 ∈ norm ∘ f '' (re ⁻¹' {x}), 0 ≤ x_1
state_after: case hS.intro.intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℂ → E
z : ℂ
x y : ℝ
z1 : ℂ
left✝ : z1 ∈ re ⁻¹' {x}
hz2 : (norm ∘ f) z1 = y
⊢ 0 ≤ y

tactic: simp only [← hz2, comp, norm_nonneg]
state_before: case hS.intro.intro
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
f : ℂ → E
z : ℂ
x y : ℝ
z1 : ℂ
left✝ : z1 ∈ re ⁻¹' {x}
hz2 : (norm ∘ f) z1 = y
⊢ 0 ≤ y
state_after: no goals
Theorem: WittVector.map_frobeniusPoly.key₂
File: Mathlib/RingTheory/WittVector/Frobenius.lean

tactic: generalize h : v p ⟨j + 1, j.succ_pos⟩ = m
state_before: p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
n i j : ℕ
hi : i ≤ n
hj : j < p ^ (n - i)
⊢ j - v p ⟨j + 1, ⋯⟩ + n = i + j + (n - i - v p ⟨j + 1, ⋯⟩)
state_after: p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
n i j : ℕ
hi : i ≤ n
hj : j < p ^ (n - i)
m : ℕ
h : v p ⟨j + 1, ⋯⟩ = m
⊢ j - m + n = i + j + (n - i - m)

tactic: rsuffices ⟨h₁, h₂⟩ : m ≤ n - i ∧ m ≤ j
state_before: p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
n i j : ℕ
hi : i ≤ n
hj : j < p ^ (n - i)
m : ℕ
h : v p ⟨j + 1, ⋯⟩ = m
⊢ j - m + n = i + j + (n - i - m)
state_after: case intro
p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
n i j : ℕ
hi : i ≤ n
hj : j < p ^ (n - i)
m : ℕ
h : v p ⟨j + 1, ⋯⟩ = m
h₁ : m ≤ n - i
h₂ : m ≤ j
⊢ j - m + n = i + j + (n - i - m)

p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
n i j : ℕ
hi : i ≤ n
hj : j < p ^ (n - i)
m : ℕ
h : v p ⟨j + 1, ⋯⟩ = m
⊢ m ≤ n - i ∧ m ≤ j

tactic: have hle : p ^ m ≤ j + 1 := h ▸ Nat.le_of_dvd j.succ_pos (multiplicity.pow_multiplicity_dvd _)
state_before: p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
n i j : ℕ
hi : i ≤ n
hj : j < p ^ (n - i)
m : ℕ
h : v p ⟨j + 1, ⋯⟩ = m
⊢ m ≤ n - i ∧ m ≤ j
state_after: p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
n i j : ℕ
hi : i ≤ n
hj : j < p ^ (n - i)
m : ℕ
h : v p ⟨j + 1, ⋯⟩ = m
hle : p ^ m ≤ j + 1
⊢ m ≤ n - i ∧ m ≤ j

tactic: exact ⟨(pow_le_pow_iff_right hp.1.one_lt).1 (hle.trans hj),
   Nat.le_of_lt_succ ((Nat.lt_pow_self hp.1.one_lt m).trans_le hle)⟩
state_before: p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
n i j : ℕ
hi : i ≤ n
hj : j < p ^ (n - i)
m : ℕ
h : v p ⟨j + 1, ⋯⟩ = m
hle : p ^ m ≤ j + 1
⊢ m ≤ n - i ∧ m ≤ j
state_after: no goals

tactic: rw [tsub_add_eq_add_tsub h₂, add_comm i j, add_tsub_assoc_of_le (h₁.trans (Nat.sub_le n i)),
  add_assoc, tsub_right_comm, add_comm i,
  tsub_add_cancel_of_le (le_tsub_of_add_le_right ((le_tsub_iff_left hi).mp h₁))]
state_before: case intro
p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
n i j : ℕ
hi : i ≤ n
hj : j < p ^ (n - i)
m : ℕ
h : v p ⟨j + 1, ⋯⟩ = m
h₁ : m ≤ n - i
h₂ : m ≤ j
⊢ j - m + n = i + j + (n - i - m)
state_after: no goals
Theorem: Polynomial.X_mem_lifts
File: Mathlib/Algebra/Polynomial/Lifts.lean

tactic: simp only [coe_mapRingHom, Set.mem_univ, Subsemiring.coe_top, eq_self_iff_true, map_X,
  and_self_iff]
state_before: R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f✝ f : R →+* S
⊢ (mapRingHom f) X = X
state_after: no goals
Theorem: Subgroup.coe_iInf
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: simp only [iInf, coe_sInf, Set.biInter_range]
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : Group G''
A : Type u_4
inst✝ : AddGroup A
H K : Subgroup G
ι : Sort u_5
S : ι → Subgroup G
⊢ ↑(⨅ i, S i) = ⋂ i, ↑(S i)
state_after: no goals
Theorem: Real.arctan_eq_zero_iff
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean

tactic: rw [arctan_zero]
state_before: x : ℝ
⊢ arctan x = 0 ↔ arctan x = arctan 0
state_after: no goals
Theorem: Orientation.oangle_eq_pi_iff_oangle_rev_eq_pi
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean

tactic: rw [oangle_rev, neg_eq_iff_eq_neg, Real.Angle.neg_coe_pi]
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
x y : V
⊢ o.oangle x y = ↑π ↔ o.oangle y x = ↑π
state_after: no goals
Theorem: Nat.testBit_bit_zero
File: Mathlib/Data/Nat/Bits.lean

tactic: rw [testBit, bit]
state_before: m n✝ : ℕ
b : Bool
n : ℕ
⊢ (bit b n).testBit 0 = b
state_after: m n✝ : ℕ
b : Bool
n : ℕ
⊢ (1 &&& (bif b then bit1 else bit0) n >>> 0 != 0) = b

tactic: cases b
state_before: m n✝ : ℕ
b : Bool
n : ℕ
⊢ (1 &&& (bif b then bit1 else bit0) n >>> 0 != 0) = b
state_after: case false
m n✝ n : ℕ
⊢ (1 &&& (bif false then bit1 else bit0) n >>> 0 != 0) = false

case true
m n✝ n : ℕ
⊢ (1 &&& (bif true then bit1 else bit0) n >>> 0 != 0) = true

tactic: simp [bit0, ← Nat.mul_two]
state_before: case false
m n✝ n : ℕ
⊢ (1 &&& (bif false then bit1 else bit0) n >>> 0 != 0) = false
state_after: no goals

tactic: simp [bit0, bit1, ← Nat.mul_two]
state_before: case true
m n✝ n : ℕ
⊢ (1 &&& (bif true then bit1 else bit0) n >>> 0 != 0) = true
state_after: no goals
Theorem: AlgebraicGeometry.Scheme.toOpen_eq
File: Mathlib/AlgebraicGeometry/Scheme.lean

tactic: exact StructureSheaf.toOpen R U
state_before: R : CommRingCat
U : ?m.135104
⊢ R ⟶ Γ(Spec R, ?m.135754)
state_after: no goals
Theorem: Function.updateFinset_singleton
File: Mathlib/Data/Finset/Update.lean

tactic: congr with j
state_before: ι : Type u_1
π : ι → Sort u_2
x : (i : ι) → π i
inst✝ : DecidableEq ι
i : ι
y : (i_1 : { x // x ∈ {i} }) → π ↑i_1
⊢ updateFinset x {i} y = update x i (y ⟨i, ⋯⟩)
state_after: case h
ι : Type u_1
π : ι → Sort u_2
x : (i : ι) → π i
inst✝ : DecidableEq ι
i : ι
y : (i_1 : { x // x ∈ {i} }) → π ↑i_1
j : ι
⊢ updateFinset x {i} y j = update x i (y ⟨i, ⋯⟩) j

tactic: by_cases hj : j = i
state_before: case h
ι : Type u_1
π : ι → Sort u_2
x : (i : ι) → π i
inst✝ : DecidableEq ι
i : ι
y : (i_1 : { x // x ∈ {i} }) → π ↑i_1
j : ι
⊢ updateFinset x {i} y j = update x i (y ⟨i, ⋯⟩) j
state_after: case pos
ι : Type u_1
π : ι → Sort u_2
x : (i : ι) → π i
inst✝ : DecidableEq ι
i : ι
y : (i_1 : { x // x ∈ {i} }) → π ↑i_1
j : ι
hj : j = i
⊢ updateFinset x {i} y j = update x i (y ⟨i, ⋯⟩) j

case neg
ι : Type u_1
π : ι → Sort u_2
x : (i : ι) → π i
inst✝ : DecidableEq ι
i : ι
y : (i_1 : { x // x ∈ {i} }) → π ↑i_1
j : ι
hj : ¬j = i
⊢ updateFinset x {i} y j = update x i (y ⟨i, ⋯⟩) j

tactic: cases hj
state_before: case pos
ι : Type u_1
π : ι → Sort u_2
x : (i : ι) → π i
inst✝ : DecidableEq ι
i : ι
y : (i_1 : { x // x ∈ {i} }) → π ↑i_1
j : ι
hj : j = i
⊢ updateFinset x {i} y j = update x i (y ⟨i, ⋯⟩) j
state_after: case pos.refl
ι : Type u_1
π : ι → Sort u_2
x : (i : ι) → π i
inst✝ : DecidableEq ι
i : ι
y : (i_1 : { x // x ∈ {i} }) → π ↑i_1
⊢ updateFinset x {i} y i = update x i (y ⟨i, ⋯⟩) i

tactic: simp only [dif_pos, Finset.mem_singleton, update_same, updateFinset]
state_before: case pos.refl
ι : Type u_1
π : ι → Sort u_2
x : (i : ι) → π i
inst✝ : DecidableEq ι
i : ι
y : (i_1 : { x // x ∈ {i} }) → π ↑i_1
⊢ updateFinset x {i} y i = update x i (y ⟨i, ⋯⟩) i
state_after: no goals

tactic: simp [hj, updateFinset]
state_before: case neg
ι : Type u_1
π : ι → Sort u_2
x : (i : ι) → π i
inst✝ : DecidableEq ι
i : ι
y : (i_1 : { x // x ∈ {i} }) → π ↑i_1
j : ι
hj : ¬j = i
⊢ updateFinset x {i} y j = update x i (y ⟨i, ⋯⟩) j
state_after: no goals
Theorem: Polynomial.revAtFun_inj
File: Mathlib/Algebra/Polynomial/Reverse.lean

tactic: intro a b hab
state_before: R : Type u_1
inst✝ : Semiring R
f : R[X]
N : ℕ
⊢ Function.Injective (revAtFun N)
state_after: R : Type u_1
inst✝ : Semiring R
f : R[X]
N a b : ℕ
hab : revAtFun N a = revAtFun N b
⊢ a = b

tactic: rw [← @revAtFun_invol N a, hab, revAtFun_invol]
state_before: R : Type u_1
inst✝ : Semiring R
f : R[X]
N a b : ℕ
hab : revAtFun N a = revAtFun N b
⊢ a = b
state_after: no goals
Theorem: LieModule.lie_mem_weightSpaceChain_of_weightSpace_eq_bot_left
File: Mathlib/Algebra/Lie/Weights/Chain.lean

tactic: replace hp : weightSpace M ((-p) • (-α) + χ) = ⊥ := by rwa [smul_neg, neg_smul, neg_neg]
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
H : LieSubalgebra R L
α χ : ↥H → R
p q : ℤ
inst✝ : LieAlgebra.IsNilpotent R ↥H
hp : weightSpace M (p • α + χ) = ⊥
x : L
hx : x ∈ rootSpace H (-α)
y : M
hy : y ∈ weightSpaceChain M α χ p q
⊢ ⁅x, y⁆ ∈ weightSpaceChain M α χ p q
state_after: 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
H : LieSubalgebra R L
α χ : ↥H → R
p q : ℤ
inst✝ : LieAlgebra.IsNilpotent R ↥H
x : L
hx : x ∈ rootSpace H (-α)
y : M
hy : y ∈ weightSpaceChain M α χ p q
hp : weightSpace M (-p • -α + χ) = ⊥
⊢ ⁅x, y⁆ ∈ weightSpaceChain M α χ p q

tactic: rw [← weightSpaceChain_neg] at hy ⊢
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
H : LieSubalgebra R L
α χ : ↥H → R
p q : ℤ
inst✝ : LieAlgebra.IsNilpotent R ↥H
x : L
hx : x ∈ rootSpace H (-α)
y : M
hy : y ∈ weightSpaceChain M α χ p q
hp : weightSpace M (-p • -α + χ) = ⊥
⊢ ⁅x, y⁆ ∈ weightSpaceChain M α χ p q
state_after: 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
H : LieSubalgebra R L
α χ : ↥H → R
p q : ℤ
inst✝ : LieAlgebra.IsNilpotent R ↥H
x : L
hx : x ∈ rootSpace H (-α)
y : M
hy : y ∈ weightSpaceChain M (-α) χ (-q) (-p)
hp : weightSpace M (-p • -α + χ) = ⊥
⊢ ⁅x, y⁆ ∈ weightSpaceChain M (-α) χ (-q) (-p)

tactic: exact lie_mem_weightSpaceChain_of_weightSpace_eq_bot_right M (-α) χ (-q) (-p) hp hx hy
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
H : LieSubalgebra R L
α χ : ↥H → R
p q : ℤ
inst✝ : LieAlgebra.IsNilpotent R ↥H
x : L
hx : x ∈ rootSpace H (-α)
y : M
hy : y ∈ weightSpaceChain M (-α) χ (-q) (-p)
hp : weightSpace M (-p • -α + χ) = ⊥
⊢ ⁅x, y⁆ ∈ weightSpaceChain M (-α) χ (-q) (-p)
state_after: no goals

tactic: rwa [smul_neg, neg_smul, neg_neg]
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
H : LieSubalgebra R L
α χ : ↥H → R
p q : ℤ
inst✝ : LieAlgebra.IsNilpotent R ↥H
hp : weightSpace M (p • α + χ) = ⊥
x : L
hx : x ∈ rootSpace H (-α)
y : M
hy : y ∈ weightSpaceChain M α χ p q
⊢ weightSpace M (-p • -α + χ) = ⊥
state_after: no goals
Theorem: Multiset.map_le_map_iff
File: Mathlib/Data/Multiset/Basic.lean

tactic: classical
  refine ⟨fun h => le_iff_count.mpr fun a => ?_, map_le_map⟩
  simpa [count_map_eq_count' f _ hf] using le_iff_count.mp h (f a)
state_before: α : Type u_1
β : Type v
γ : Type u_2
f : α → β
hf : Injective f
s t : Multiset α
⊢ map f s ≤ map f t ↔ s ≤ t
state_after: no goals

tactic: refine ⟨fun h => le_iff_count.mpr fun a => ?_, map_le_map⟩
state_before: α : Type u_1
β : Type v
γ : Type u_2
f : α → β
hf : Injective f
s t : Multiset α
⊢ map f s ≤ map f t ↔ s ≤ t
state_after: α : Type u_1
β : Type v
γ : Type u_2
f : α → β
hf : Injective f
s t : Multiset α
h : map f s ≤ map f t
a : α
⊢ count a s ≤ count a t

tactic: simpa [count_map_eq_count' f _ hf] using le_iff_count.mp h (f a)
state_before: α : Type u_1
β : Type v
γ : Type u_2
f : α → β
hf : Injective f
s t : Multiset α
h : map f s ≤ map f t
a : α
⊢ count a s ≤ count a t
state_after: no goals
Theorem: LinearMap.lTensor_sub
File: Mathlib/LinearAlgebra/TensorProduct/Basic.lean

tactic: simp_rw [← coe_lTensorHom]
state_before: R : Type u_1
inst✝¹⁰ : CommSemiring R
M : Type u_2
N : Type u_3
P : Type u_4
Q : Type u_5
S : Type u_6
inst✝⁹ : AddCommGroup M
inst✝⁸ : AddCommGroup N
inst✝⁷ : AddCommGroup P
inst✝⁶ : AddCommGroup Q
inst✝⁵ : AddCommGroup S
inst✝⁴ : Module R M
inst✝³ : Module R N
inst✝² : Module R P
inst✝¹ : Module R Q
inst✝ : Module R S
f g : N →ₗ[R] P
⊢ lTensor M (f - g) = lTensor M f - lTensor M g
state_after: R : Type u_1
inst✝¹⁰ : CommSemiring R
M : Type u_2
N : Type u_3
P : Type u_4
Q : Type u_5
S : Type u_6
inst✝⁹ : AddCommGroup M
inst✝⁸ : AddCommGroup N
inst✝⁷ : AddCommGroup P
inst✝⁶ : AddCommGroup Q
inst✝⁵ : AddCommGroup S
inst✝⁴ : Module R M
inst✝³ : Module R N
inst✝² : Module R P
inst✝¹ : Module R Q
inst✝ : Module R S
f g : N →ₗ[R] P
⊢ (lTensorHom M) (f - g) = (lTensorHom M) f - (lTensorHom M) g

tactic: exact (lTensorHom (R := R) (N := N) (P := P) M).map_sub f g
state_before: R : Type u_1
inst✝¹⁰ : CommSemiring R
M : Type u_2
N : Type u_3
P : Type u_4
Q : Type u_5
S : Type u_6
inst✝⁹ : AddCommGroup M
inst✝⁸ : AddCommGroup N
inst✝⁷ : AddCommGroup P
inst✝⁶ : AddCommGroup Q
inst✝⁵ : AddCommGroup S
inst✝⁴ : Module R M
inst✝³ : Module R N
inst✝² : Module R P
inst✝¹ : Module R Q
inst✝ : Module R S
f g : N →ₗ[R] P
⊢ (lTensorHom M) (f - g) = (lTensorHom M) f - (lTensorHom M) g
state_after: no goals
Theorem: UnitalShelf.act_act_self_eq
File: Mathlib/Algebra/Quandle.lean

tactic: have h : (x ◃ y) ◃ x = (x ◃ y) ◃ (x ◃ 1) := by rw [act_one]
state_before: S : Type u_1
inst✝ : UnitalShelf S
x y : S
⊢ (x ◃ y) ◃ x = x ◃ y
state_after: S : Type u_1
inst✝ : UnitalShelf S
x y : S
h : (x ◃ y) ◃ x = (x ◃ y) ◃ x ◃ 1
⊢ (x ◃ y) ◃ x = x ◃ y

tactic: rw [h, ← Shelf.self_distrib, act_one]
state_before: S : Type u_1
inst✝ : UnitalShelf S
x y : S
h : (x ◃ y) ◃ x = (x ◃ y) ◃ x ◃ 1
⊢ (x ◃ y) ◃ x = x ◃ y
state_after: no goals

tactic: rw [act_one]
state_before: S : Type u_1
inst✝ : UnitalShelf S
x y : S
⊢ (x ◃ y) ◃ x = (x ◃ y) ◃ x ◃ 1
state_after: no goals
Theorem: SimpleGraph.IsRegularOfDegree.top
File: Mathlib/Combinatorics/SimpleGraph/Finite.lean

tactic: intro v
state_before: V : Type u_1
G : SimpleGraph V
e : Sym2 V
inst✝¹ : Fintype V
inst✝ : DecidableEq V
⊢ ⊤.IsRegularOfDegree (Fintype.card V - 1)
state_after: V : Type u_1
G : SimpleGraph V
e : Sym2 V
inst✝¹ : Fintype V
inst✝ : DecidableEq V
v : V
⊢ ⊤.degree v = Fintype.card V - 1

tactic: simp
state_before: V : Type u_1
G : SimpleGraph V
e : Sym2 V
inst✝¹ : Fintype V
inst✝ : DecidableEq V
v : V
⊢ ⊤.degree v = Fintype.card V - 1
state_after: no goals
Theorem: Matrix.add_mulVec
File: Mathlib/Data/Matrix/Basic.lean

tactic: ext
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝¹ : NonUnitalNonAssocSemiring α
inst✝ : Fintype n
A B : Matrix m n α
x : n → α
⊢ (A + B) *ᵥ x = A *ᵥ x + B *ᵥ x
state_after: case h
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝¹ : NonUnitalNonAssocSemiring α
inst✝ : Fintype n
A B : Matrix m n α
x : n → α
x✝ : m
⊢ ((A + B) *ᵥ x) x✝ = (A *ᵥ x + B *ᵥ x) x✝

tactic: apply add_dotProduct
state_before: case h
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝¹ : NonUnitalNonAssocSemiring α
inst✝ : Fintype n
A B : Matrix m n α
x : n → α
x✝ : m
⊢ ((A + B) *ᵥ x) x✝ = (A *ᵥ x + B *ᵥ x) x✝
state_after: no goals
Theorem: Trivialization.nhds_eq_inf_comap
File: Mathlib/Topology/FiberBundle/Trivialization.lean

tactic: refine eq_of_forall_le_iff fun l ↦ ?_
state_before: ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x z : Z
hz : z ∈ e.source
⊢ 𝓝 z = comap proj (𝓝 (proj z)) ⊓ comap (Prod.snd ∘ ↑e) (𝓝 (↑e z).2)
state_after: ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x z : Z
hz : z ∈ e.source
l : Filter Z
⊢ l ≤ 𝓝 z ↔ l ≤ comap proj (𝓝 (proj z)) ⊓ comap (Prod.snd ∘ ↑e) (𝓝 (↑e z).2)

tactic: rw [le_inf_iff, ← tendsto_iff_comap, ← tendsto_iff_comap]
state_before: ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x z : Z
hz : z ∈ e.source
l : Filter Z
⊢ l ≤ 𝓝 z ↔ l ≤ comap proj (𝓝 (proj z)) ⊓ comap (Prod.snd ∘ ↑e) (𝓝 (↑e z).2)
state_after: ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x z : Z
hz : z ∈ e.source
l : Filter Z
⊢ l ≤ 𝓝 z ↔ Tendsto proj l (𝓝 (proj z)) ∧ Tendsto (Prod.snd ∘ ↑e) l (𝓝 (↑e z).2)

tactic: exact e.tendsto_nhds_iff hz
state_before: ι : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
Z : Type u_5
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace F
proj : Z → B
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace (TotalSpace F E)
e : Trivialization F proj
x z : Z
hz : z ∈ e.source
l : Filter Z
⊢ l ≤ 𝓝 z ↔ Tendsto proj l (𝓝 (proj z)) ∧ Tendsto (Prod.snd ∘ ↑e) l (𝓝 (↑e z).2)
state_after: no goals
Theorem: MulLECancellable.mul_le_mul_iff_right
File: Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean

tactic: rw [i.symm_op b, i.symm_op c, ha.mul_le_mul_iff_left]
state_before: α : Type u_1
β : Type u_2
inst✝² : LE α
inst✝¹ : Mul α
i : IsSymmOp α α fun x x_1 => x * x_1
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c : α
ha : MulLECancellable a
⊢ b * a ≤ c * a ↔ b ≤ c
state_after: no goals