1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Matroid.map_image_indep_iff
File: Mathlib/Data/Matroid/Map.lean

tactic: rw [map_indep_iff]
state_before: α : Type u_1
β : Type u_2
f : α → β
E I✝ s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
I : Set α
hI : I ⊆ M.E
⊢ (M.map f hf).Indep (f '' I) ↔ M.Indep I
state_after: α : Type u_1
β : Type u_2
f : α → β
E I✝ s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
I : Set α
hI : I ⊆ M.E
⊢ (∃ I₀, M.Indep I₀ ∧ f '' I = f '' I₀) ↔ M.Indep I

tactic: refine ⟨fun ⟨J, hJ, hIJ⟩ ↦ ?_, fun h ↦ ⟨I, h, rfl⟩⟩
state_before: α : Type u_1
β : Type u_2
f : α → β
E I✝ s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
I : Set α
hI : I ⊆ M.E
⊢ (∃ I₀, M.Indep I₀ ∧ f '' I = f '' I₀) ↔ M.Indep I
state_after: α : Type u_1
β : Type u_2
f : α → β
E I✝ s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
I : Set α
hI : I ⊆ M.E
x✝ : ∃ I₀, M.Indep I₀ ∧ f '' I = f '' I₀
J : Set α
hJ : M.Indep J
hIJ : f '' I = f '' J
⊢ M.Indep I

tactic: rw [hf.image_eq_image_iff hI hJ.subset_ground] at hIJ
state_before: α : Type u_1
β : Type u_2
f : α → β
E I✝ s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
I : Set α
hI : I ⊆ M.E
x✝ : ∃ I₀, M.Indep I₀ ∧ f '' I = f '' I₀
J : Set α
hJ : M.Indep J
hIJ : f '' I = f '' J
⊢ M.Indep I
state_after: α : Type u_1
β : Type u_2
f : α → β
E I✝ s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
I : Set α
hI : I ⊆ M.E
x✝ : ∃ I₀, M.Indep I₀ ∧ f '' I = f '' I₀
J : Set α
hJ : M.Indep J
hIJ : I = J
⊢ M.Indep I

tactic: rwa [hIJ]
state_before: α : Type u_1
β : Type u_2
f : α → β
E I✝ s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
I : Set α
hI : I ⊆ M.E
x✝ : ∃ I₀, M.Indep I₀ ∧ f '' I = f '' I₀
J : Set α
hJ : M.Indep J
hIJ : I = J
⊢ M.Indep I
state_after: no goals
Theorem: Finset.image₂_insert_right
File: Mathlib/Data/Finset/NAry.lean

tactic: push_cast
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁸ : DecidableEq α'
inst✝⁷ : DecidableEq β'
inst✝⁶ : DecidableEq γ
inst✝⁵ : DecidableEq γ'
inst✝⁴ : DecidableEq δ
inst✝³ : DecidableEq δ'
inst✝² : DecidableEq ε
inst✝¹ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
inst✝ : DecidableEq β
⊢ ↑(image₂ f s (insert b t)) = ↑(image (fun a => f a b) s ∪ image₂ f s t)
state_after: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁸ : DecidableEq α'
inst✝⁷ : DecidableEq β'
inst✝⁶ : DecidableEq γ
inst✝⁵ : DecidableEq γ'
inst✝⁴ : DecidableEq δ
inst✝³ : DecidableEq δ'
inst✝² : DecidableEq ε
inst✝¹ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
inst✝ : DecidableEq β
⊢ image2 f (↑s) (insert b ↑t) = (fun a => f a b) '' ↑s ∪ image2 f ↑s ↑t

tactic: exact image2_insert_right
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁸ : DecidableEq α'
inst✝⁷ : DecidableEq β'
inst✝⁶ : DecidableEq γ
inst✝⁵ : DecidableEq γ'
inst✝⁴ : DecidableEq δ
inst✝³ : DecidableEq δ'
inst✝² : DecidableEq ε
inst✝¹ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
inst✝ : DecidableEq β
⊢ image2 f (↑s) (insert b ↑t) = (fun a => f a b) '' ↑s ∪ image2 f ↑s ↑t
state_after: no goals
Theorem: MulAction.le_stabilizer_smul_left
File: Mathlib/GroupTheory/GroupAction/Basic.lean

tactic: simp_rw [SetLike.le_def, mem_stabilizer_iff, ← smul_assoc]
state_before: G : Type u_1
α : Type u_2
β : Type u_3
inst✝⁴ : Group G
inst✝³ : MulAction G α
inst✝² : MulAction G β
inst✝¹ : SMul α β
inst✝ : IsScalarTower G α β
a : α
b : β
⊢ stabilizer G a ≤ stabilizer G (a • b)
state_after: G : Type u_1
α : Type u_2
β : Type u_3
inst✝⁴ : Group G
inst✝³ : MulAction G α
inst✝² : MulAction G β
inst✝¹ : SMul α β
inst✝ : IsScalarTower G α β
a : α
b : β
⊢ ∀ ⦃x : G⦄, x • a = a → (x • a) • b = a • b

tactic: rintro a h
state_before: G : Type u_1
α : Type u_2
β : Type u_3
inst✝⁴ : Group G
inst✝³ : MulAction G α
inst✝² : MulAction G β
inst✝¹ : SMul α β
inst✝ : IsScalarTower G α β
a : α
b : β
⊢ ∀ ⦃x : G⦄, x • a = a → (x • a) • b = a • b
state_after: G : Type u_1
α : Type u_2
β : Type u_3
inst✝⁴ : Group G
inst✝³ : MulAction G α
inst✝² : MulAction G β
inst✝¹ : SMul α β
inst✝ : IsScalarTower G α β
a✝ : α
b : β
a : G
h : a • a✝ = a✝
⊢ (a • a✝) • b = a✝ • b

tactic: rw [h]
state_before: G : Type u_1
α : Type u_2
β : Type u_3
inst✝⁴ : Group G
inst✝³ : MulAction G α
inst✝² : MulAction G β
inst✝¹ : SMul α β
inst✝ : IsScalarTower G α β
a✝ : α
b : β
a : G
h : a • a✝ = a✝
⊢ (a • a✝) • b = a✝ • b
state_after: no goals
Theorem: Set.sigmaToiUnion_surjective
File: Mathlib/Data/Set/Lattice.lean

tactic: simpa using hb
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
t : α → Set β
b : β
hb : b ∈ ⋃ i, t i
⊢ ∃ a, b ∈ t a
state_after: no goals
Theorem: div_le_div_iff_left
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [div_eq_mul_inv, div_eq_mul_inv, ← mul_le_mul_iff_left a⁻¹, inv_mul_cancel_left,
  inv_mul_cancel_left, inv_le_inv_iff]
state_before: α : Type u
inst✝³ : Group α
inst✝² : LE α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a✝ b c a : α
⊢ a / b ≤ a / c ↔ c ≤ b
state_after: no goals
Theorem: Sylow.exists_subgroup_card_pow_prime_le
File: Mathlib/GroupTheory/Sylow.lean

tactic: rwa [tsub_add_cancel_of_le h0m.nat_succ_le]
state_before: G : Type u
α : Type v
β : Type w
inst✝¹ : Group G
inst✝ : Fintype G
p : ℕ
_hp✝ : Fact (Nat.Prime p)
n m : ℕ
hdvd : p ^ m ∣ Fintype.card G
H : Subgroup G
hH : Fintype.card ↥H = p ^ n
hnm✝ : n ≤ m
hnm : n < m
h0m : 0 < m
_wf : m - 1 < m
hnm1 : n ≤ m - 1
K : Subgroup G
hK : Fintype.card ↥K = p ^ (m - 1) ∧ H ≤ K
⊢ p ^ (m - 1 + 1) ∣ Fintype.card G
state_after: no goals

tactic: rw [hK'.1, tsub_add_cancel_of_le h0m.nat_succ_le]
state_before: G : Type u
α : Type v
β : Type w
inst✝¹ : Group G
inst✝ : Fintype G
p : ℕ
_hp✝ : Fact (Nat.Prime p)
n m : ℕ
hdvd : p ^ m ∣ Fintype.card G
H : Subgroup G
hH : Fintype.card ↥H = p ^ n
hnm✝ : n ≤ m
hnm : n < m
h0m : 0 < m
_wf : m - 1 < m
hnm1 : n ≤ m - 1
K : Subgroup G
hK : Fintype.card ↥K = p ^ (m - 1) ∧ H ≤ K
hdvd' : p ^ (m - 1 + 1) ∣ Fintype.card G
K' : Subgroup G
hK' : Fintype.card ↥K' = p ^ (m - 1 + 1) ∧ K ≤ K'
⊢ Fintype.card ↥K' = p ^ m
state_after: no goals

tactic: simp [hH, hnm]
state_before: G : Type u
α : Type v
β : Type w
inst✝¹ : Group G
inst✝ : Fintype G
p : ℕ
_hp✝ : Fact (Nat.Prime p)
n m : ℕ
hdvd : p ^ m ∣ Fintype.card G
H : Subgroup G
hH : Fintype.card ↥H = p ^ n
hnm✝ : n ≤ m
hnm : n = m
⊢ Fintype.card ↥H = p ^ m ∧ H ≤ H
state_after: no goals
Theorem: AkraBazziRecurrence.eventually_r_pos
File: Mathlib/Computability/AkraBazzi/AkraBazzi.lean

tactic: rw [Filter.eventually_all]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ ∀ᶠ (n : ℕ) in atTop, ∀ (i : α), 0 < r i n
state_after: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ ∀ (i : α), ∀ᶠ (x : ℕ) in atTop, 0 < r i x

tactic: exact fun i => (R.tendsto_atTop_r i).eventually_gt_atTop 0
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : Nonempty α
T : ℕ → ℝ
g : ℝ → ℝ
a b : α → ℝ
r : α → ℕ → ℕ
R : AkraBazziRecurrence T g a b r
⊢ ∀ (i : α), ∀ᶠ (x : ℕ) in atTop, 0 < r i x
state_after: no goals
Theorem: EuclideanGeometry.left_ne_right_of_oangle_sign_eq_one
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean

tactic: decide
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : (∡ p₁ p₂ p₃).sign = 1
⊢ 1 ≠ 0
state_after: no goals
Theorem: Finset.inl_mem_sumLift₂
File: Mathlib/Data/Sum/Interval.lean

tactic: rw [mem_sumLift₂, or_iff_left]
state_before: α₁ : Type u_1
α₂ : Type u_2
β₁ : Type u_3
β₂ : Type u_4
γ₁ : Type u_5
γ₂ : Type u_6
f f₁ g₁ : α₁ → β₁ → Finset γ₁
g f₂ g₂ : α₂ → β₂ → Finset γ₂
a : α₁ ⊕ α₂
b : β₁ ⊕ β₂
c : γ₁ ⊕ γ₂
c₁ : γ₁
⊢ inl c₁ ∈ sumLift₂ f g a b ↔ ∃ a₁ b₁, a = inl a₁ ∧ b = inl b₁ ∧ c₁ ∈ f a₁ b₁
state_after: α₁ : Type u_1
α₂ : Type u_2
β₁ : Type u_3
β₂ : Type u_4
γ₁ : Type u_5
γ₂ : Type u_6
f f₁ g₁ : α₁ → β₁ → Finset γ₁
g f₂ g₂ : α₂ → β₂ → Finset γ₂
a : α₁ ⊕ α₂
b : β₁ ⊕ β₂
c : γ₁ ⊕ γ₂
c₁ : γ₁
⊢ (∃ a₁ b₁ c₁_1, a = inl a₁ ∧ b = inl b₁ ∧ inl c₁ = inl c₁_1 ∧ c₁_1 ∈ f a₁ b₁) ↔
    ∃ a₁ b₁, a = inl a₁ ∧ b = inl b₁ ∧ c₁ ∈ f a₁ b₁

α₁ : Type u_1
α₂ : Type u_2
β₁ : Type u_3
β₂ : Type u_4
γ₁ : Type u_5
γ₂ : Type u_6
f f₁ g₁ : α₁ → β₁ → Finset γ₁
g f₂ g₂ : α₂ → β₂ → Finset γ₂
a : α₁ ⊕ α₂
b : β₁ ⊕ β₂
c : γ₁ ⊕ γ₂
c₁ : γ₁
⊢ ¬∃ a₂ b₂ c₂, a = inr a₂ ∧ b = inr b₂ ∧ inl c₁ = inr c₂ ∧ c₂ ∈ g a₂ b₂

tactic: rintro ⟨_, _, c₂, _, _, h, _⟩
state_before: α₁ : Type u_1
α₂ : Type u_2
β₁ : Type u_3
β₂ : Type u_4
γ₁ : Type u_5
γ₂ : Type u_6
f f₁ g₁ : α₁ → β₁ → Finset γ₁
g f₂ g₂ : α₂ → β₂ → Finset γ₂
a : α₁ ⊕ α₂
b : β₁ ⊕ β₂
c : γ₁ ⊕ γ₂
c₁ : γ₁
⊢ ¬∃ a₂ b₂ c₂, a = inr a₂ ∧ b = inr b₂ ∧ inl c₁ = inr c₂ ∧ c₂ ∈ g a₂ b₂
state_after: case intro.intro.intro.intro.intro.intro
α₁ : Type u_1
α₂ : Type u_2
β₁ : Type u_3
β₂ : Type u_4
γ₁ : Type u_5
γ₂ : Type u_6
f f₁ g₁ : α₁ → β₁ → Finset γ₁
g f₂ g₂ : α₂ → β₂ → Finset γ₂
a : α₁ ⊕ α₂
b : β₁ ⊕ β₂
c : γ₁ ⊕ γ₂
c₁ : γ₁
w✝¹ : α₂
w✝ : β₂
c₂ : γ₂
left✝¹ : a = inr w✝¹
left✝ : b = inr w✝
h : inl c₁ = inr c₂
right✝ : c₂ ∈ g w✝¹ w✝
⊢ False

tactic: exact inl_ne_inr h
state_before: case intro.intro.intro.intro.intro.intro
α₁ : Type u_1
α₂ : Type u_2
β₁ : Type u_3
β₂ : Type u_4
γ₁ : Type u_5
γ₂ : Type u_6
f f₁ g₁ : α₁ → β₁ → Finset γ₁
g f₂ g₂ : α₂ → β₂ → Finset γ₂
a : α₁ ⊕ α₂
b : β₁ ⊕ β₂
c : γ₁ ⊕ γ₂
c₁ : γ₁
w✝¹ : α₂
w✝ : β₂
c₂ : γ₂
left✝¹ : a = inr w✝¹
left✝ : b = inr w✝
h : inl c₁ = inr c₂
right✝ : c₂ ∈ g w✝¹ w✝
⊢ False
state_after: no goals

tactic: simp only [inl.injEq, exists_and_left, exists_eq_left']
state_before: α₁ : Type u_1
α₂ : Type u_2
β₁ : Type u_3
β₂ : Type u_4
γ₁ : Type u_5
γ₂ : Type u_6
f f₁ g₁ : α₁ → β₁ → Finset γ₁
g f₂ g₂ : α₂ → β₂ → Finset γ₂
a : α₁ ⊕ α₂
b : β₁ ⊕ β₂
c : γ₁ ⊕ γ₂
c₁ : γ₁
⊢ (∃ a₁ b₁ c₁_1, a = inl a₁ ∧ b = inl b₁ ∧ inl c₁ = inl c₁_1 ∧ c₁_1 ∈ f a₁ b₁) ↔
    ∃ a₁ b₁, a = inl a₁ ∧ b = inl b₁ ∧ c₁ ∈ f a₁ b₁
state_after: no goals
Theorem: List.countP_cons_of_pos
File: .lake/packages/batteries/Batteries/Data/List/Count.lean

tactic: have : countP.go p (a :: l) 0 = countP.go p l 1 := show cond .. = _ by rw [pa]; rfl
state_before: α : Type u_1
p q : α → Bool
a : α
l : List α
pa : p a = true
⊢ countP p (a :: l) = countP p l + 1
state_after: α : Type u_1
p q : α → Bool
a : α
l : List α
pa : p a = true
this : countP.go p (a :: l) 0 = countP.go p l 1
⊢ countP p (a :: l) = countP p l + 1

tactic: unfold countP
state_before: α : Type u_1
p q : α → Bool
a : α
l : List α
pa : p a = true
this : countP.go p (a :: l) 0 = countP.go p l 1
⊢ countP p (a :: l) = countP p l + 1
state_after: α : Type u_1
p q : α → Bool
a : α
l : List α
pa : p a = true
this : countP.go p (a :: l) 0 = countP.go p l 1
⊢ countP.go p (a :: l) 0 = countP.go p l 0 + 1

tactic: rw [this, Nat.add_comm, List.countP_go_eq_add]
state_before: α : Type u_1
p q : α → Bool
a : α
l : List α
pa : p a = true
this : countP.go p (a :: l) 0 = countP.go p l 1
⊢ countP.go p (a :: l) 0 = countP.go p l 0 + 1
state_after: no goals

tactic: rw [pa]
state_before: α : Type u_1
p q : α → Bool
a : α
l : List α
pa : p a = true
⊢ (bif p a then countP.go p l (0 + 1) else countP.go p l 0) = countP.go p l 1
state_after: α : Type u_1
p q : α → Bool
a : α
l : List α
pa : p a = true
⊢ (bif true then countP.go p l (0 + 1) else countP.go p l 0) = countP.go p l 1

tactic: rfl
state_before: α : Type u_1
p q : α → Bool
a : α
l : List α
pa : p a = true
⊢ (bif true then countP.go p l (0 + 1) else countP.go p l 0) = countP.go p l 1
state_after: no goals
Theorem: cfcHom_nonneg_iff
File: Mathlib/Topology/ContinuousFunction/FunctionalCalculus.lean

tactic: constructor
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁵ : OrderedCommSemiring R
inst✝¹⁴ : StarRing R
inst✝¹³ : StarOrderedRing R
inst✝¹² : MetricSpace R
inst✝¹¹ : TopologicalSemiring R
inst✝¹⁰ : ContinuousStar R
inst✝⁹ : ∀ (α : Type ?u.605679) [inst : TopologicalSpace α], StarOrderedRing C(α, R)
inst✝⁸ : TopologicalSpace A
inst✝⁷ : Ring A
inst✝⁶ : StarRing A
inst✝⁵ : PartialOrder A
inst✝⁴ : StarOrderedRing A
inst✝³ : Algebra R A
inst✝² : StarModule R A
inst✝¹ : ContinuousFunctionalCalculus R p
inst✝ : NonnegSpectrumClass R A
a : A
ha : p a
f : C(↑(spectrum R a), R)
⊢ 0 ≤ (cfcHom ha) f ↔ 0 ≤ f
state_after: case mp
R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁵ : OrderedCommSemiring R
inst✝¹⁴ : StarRing R
inst✝¹³ : StarOrderedRing R
inst✝¹² : MetricSpace R
inst✝¹¹ : TopologicalSemiring R
inst✝¹⁰ : ContinuousStar R
inst✝⁹ : ∀ (α : Type ?u.605679) [inst : TopologicalSpace α], StarOrderedRing C(α, R)
inst✝⁸ : TopologicalSpace A
inst✝⁷ : Ring A
inst✝⁶ : StarRing A
inst✝⁵ : PartialOrder A
inst✝⁴ : StarOrderedRing A
inst✝³ : Algebra R A
inst✝² : StarModule R A
inst✝¹ : ContinuousFunctionalCalculus R p
inst✝ : NonnegSpectrumClass R A
a : A
ha : p a
f : C(↑(spectrum R a), R)
⊢ 0 ≤ (cfcHom ha) f → 0 ≤ f

case mpr
R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁵ : OrderedCommSemiring R
inst✝¹⁴ : StarRing R
inst✝¹³ : StarOrderedRing R
inst✝¹² : MetricSpace R
inst✝¹¹ : TopologicalSemiring R
inst✝¹⁰ : ContinuousStar R
inst✝⁹ : ∀ (α : Type ?u.605679) [inst : TopologicalSpace α], StarOrderedRing C(α, R)
inst✝⁸ : TopologicalSpace A
inst✝⁷ : Ring A
inst✝⁶ : StarRing A
inst✝⁵ : PartialOrder A
inst✝⁴ : StarOrderedRing A
inst✝³ : Algebra R A
inst✝² : StarModule R A
inst✝¹ : ContinuousFunctionalCalculus R p
inst✝ : NonnegSpectrumClass R A
a : A
ha : p a
f : C(↑(spectrum R a), R)
⊢ 0 ≤ f → 0 ≤ (cfcHom ha) f

tactic: exact fun hf x ↦ (cfcHom_map_spectrum ha (R := R) _ ▸ spectrum_nonneg_of_nonneg hf) ⟨x, rfl⟩
state_before: case mp
R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁵ : OrderedCommSemiring R
inst✝¹⁴ : StarRing R
inst✝¹³ : StarOrderedRing R
inst✝¹² : MetricSpace R
inst✝¹¹ : TopologicalSemiring R
inst✝¹⁰ : ContinuousStar R
inst✝⁹ : ∀ (α : Type ?u.605679) [inst : TopologicalSpace α], StarOrderedRing C(α, R)
inst✝⁸ : TopologicalSpace A
inst✝⁷ : Ring A
inst✝⁶ : StarRing A
inst✝⁵ : PartialOrder A
inst✝⁴ : StarOrderedRing A
inst✝³ : Algebra R A
inst✝² : StarModule R A
inst✝¹ : ContinuousFunctionalCalculus R p
inst✝ : NonnegSpectrumClass R A
a : A
ha : p a
f : C(↑(spectrum R a), R)
⊢ 0 ≤ (cfcHom ha) f → 0 ≤ f
state_after: no goals
Theorem: zpow_mem
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: rw [zpow_natCast]
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
M : Type u_5
S : Type u_6
inst✝¹ : DivInvMonoid M
inst✝ : SetLike S M
hSM : SubgroupClass S M
H K : S
x : M
hx : x ∈ K
n : ℕ
⊢ x ^ ↑n ∈ K
state_after: 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
M : Type u_5
S : Type u_6
inst✝¹ : DivInvMonoid M
inst✝ : SetLike S M
hSM : SubgroupClass S M
H K : S
x : M
hx : x ∈ K
n : ℕ
⊢ x ^ n ∈ K

tactic: exact pow_mem hx n
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
M : Type u_5
S : Type u_6
inst✝¹ : DivInvMonoid M
inst✝ : SetLike S M
hSM : SubgroupClass S M
H K : S
x : M
hx : x ∈ K
n : ℕ
⊢ x ^ n ∈ K
state_after: no goals

tactic: rw [zpow_negSucc]
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
M : Type u_5
S : Type u_6
inst✝¹ : DivInvMonoid M
inst✝ : SetLike S M
hSM : SubgroupClass S M
H K : S
x : M
hx : x ∈ K
n : ℕ
⊢ x ^ -[n+1] ∈ K
state_after: 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
M : Type u_5
S : Type u_6
inst✝¹ : DivInvMonoid M
inst✝ : SetLike S M
hSM : SubgroupClass S M
H K : S
x : M
hx : x ∈ K
n : ℕ
⊢ (x ^ (n + 1))⁻¹ ∈ K

tactic: exact inv_mem (pow_mem hx n.succ)
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
M : Type u_5
S : Type u_6
inst✝¹ : DivInvMonoid M
inst✝ : SetLike S M
hSM : SubgroupClass S M
H K : S
x : M
hx : x ∈ K
n : ℕ
⊢ (x ^ (n + 1))⁻¹ ∈ K
state_after: no goals
Theorem: SetTheory.PGame.powHalf_moveLeft
File: Mathlib/SetTheory/Surreal/Dyadic.lean

tactic: cases n <;> cases i <;> rfl
state_before: n : ℕ
i : (powHalf n).LeftMoves
⊢ (powHalf n).moveLeft i = 0
state_after: no goals
Theorem: WeierstrassCurve.Affine.Y_sub_polynomialY
File: Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean

tactic: rw [polynomialY, negPolynomial]
state_before: R : Type u
inst✝ : CommRing R
W : Affine R
⊢ Y - W.polynomialY = W.negPolynomial
state_after: R : Type u
inst✝ : CommRing R
W : Affine R
⊢ Y - (C (C 2) * Y + C (C W.a₁ * X + C W.a₃)) = -Y - C (C W.a₁ * X + C W.a₃)

tactic: C_simp
state_before: R : Type u
inst✝ : CommRing R
W : Affine R
⊢ Y - (C (C 2) * Y + C (C W.a₁ * X + C W.a₃)) = -Y - C (C W.a₁ * X + C W.a₃)
state_after: R : Type u
inst✝ : CommRing R
W : Affine R
⊢ Y - (2 * Y + (C (C W.a₁) * C X + C (C W.a₃))) = -Y - (C (C W.a₁) * C X + C (C W.a₃))

tactic: ring
state_before: R : Type u
inst✝ : CommRing R
W : Affine R
⊢ Y - (2 * Y + (C (C W.a₁) * C X + C (C W.a₃))) = -Y - (C (C W.a₁) * C X + C (C W.a₃))
state_after: no goals
Theorem: Ideal.isPrimary_of_isMaximal_radical
File: Mathlib/RingTheory/JacobsonIdeal.lean

tactic: rw [← mul_one x, ← sub_sub_cancel (z * y) 1, mul_sub, mul_left_comm]
state_before: R : Type u
S : Type v
inst✝ : CommRing R
I : Ideal R
hi : I.radical.IsMaximal
this : I.radical = I.jacobson
x y : R
hxy : x * y ∈ I
x✝ : ∃ y_1, y_1 * y - 1 ∈ I
z : R
hz : z * y - 1 ∈ I
⊢ x ∈ I
state_after: R : Type u
S : Type v
inst✝ : CommRing R
I : Ideal R
hi : I.radical.IsMaximal
this : I.radical = I.jacobson
x y : R
hxy : x * y ∈ I
x✝ : ∃ y_1, y_1 * y - 1 ∈ I
z : R
hz : z * y - 1 ∈ I
⊢ z * (x * y) - x * (z * y - 1) ∈ I

tactic: exact I.sub_mem (I.mul_mem_left _ hxy) (I.mul_mem_left _ hz)
state_before: R : Type u
S : Type v
inst✝ : CommRing R
I : Ideal R
hi : I.radical.IsMaximal
this : I.radical = I.jacobson
x y : R
hxy : x * y ∈ I
x✝ : ∃ y_1, y_1 * y - 1 ∈ I
z : R
hz : z * y - 1 ∈ I
⊢ z * (x * y) - x * (z * y - 1) ∈ I
state_after: no goals
Theorem: CategoryTheory.ShortComplex.rightHomologyIso_inv_naturality
File: Mathlib/Algebra/Homology/ShortComplex/Homology.lean

tactic: simpa only [RightHomologyData.homologyIso_rightHomologyData, Iso.symm_inv] using
  RightHomologyData.rightHomologyIso_hom_naturality φ S₁.rightHomologyData S₂.rightHomologyData
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
S S₁ S₂ S₃ S₄ : ShortComplex C
φ✝ : S₁ ⟶ S₂
h₁ : S₁.HomologyData
h₂ : S₂.HomologyData
inst✝¹ : S₁.HasHomology
inst✝ : S₂.HasHomology
φ : S₁ ⟶ S₂
⊢ S₁.rightHomologyIso.inv ≫ rightHomologyMap φ = homologyMap φ ≫ S₂.rightHomologyIso.inv
state_after: no goals
Theorem: ker_nhds
File: Mathlib/Topology/Separation.lean

tactic: simp [ker_nhds_eq_specializes]
state_before: X : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X
inst✝ : T1Space X
x : X
⊢ (𝓝 x).ker = {x}
state_after: no goals
Theorem: SimpleGraph.componentComplMk_eq_of_adj
File: Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean

tactic: rw [ConnectedComponent.eq]
state_before: V : Type u
G✝ : SimpleGraph V
K L L' M : Set V
G : SimpleGraph V
v w : V
vK : v ∉ K
wK : w ∉ K
a : G.Adj v w
⊢ G.componentComplMk vK = G.componentComplMk wK
state_after: V : Type u
G✝ : SimpleGraph V
K L L' M : Set V
G : SimpleGraph V
v w : V
vK : v ∉ K
wK : w ∉ K
a : G.Adj v w
⊢ (induce Kᶜ G).Reachable ⟨v, vK⟩ ⟨w, wK⟩

tactic: apply Adj.reachable
state_before: V : Type u
G✝ : SimpleGraph V
K L L' M : Set V
G : SimpleGraph V
v w : V
vK : v ∉ K
wK : w ∉ K
a : G.Adj v w
⊢ (induce Kᶜ G).Reachable ⟨v, vK⟩ ⟨w, wK⟩
state_after: case h
V : Type u
G✝ : SimpleGraph V
K L L' M : Set V
G : SimpleGraph V
v w : V
vK : v ∉ K
wK : w ∉ K
a : G.Adj v w
⊢ (induce Kᶜ G).Adj ⟨v, vK⟩ ⟨w, wK⟩

tactic: exact a
state_before: case h
V : Type u
G✝ : SimpleGraph V
K L L' M : Set V
G : SimpleGraph V
v w : V
vK : v ∉ K
wK : w ∉ K
a : G.Adj v w
⊢ (induce Kᶜ G).Adj ⟨v, vK⟩ ⟨w, wK⟩
state_after: no goals
Theorem: Finset.prod_sub_ordered
File: Mathlib/Algebra/BigOperators/Ring.lean

tactic: simp only [sub_eq_add_neg]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
κ : ι → Type u_5
s✝ s₁ s₂ : Finset ι
i : ι
a : α
f✝ g✝ : ι → α
inst✝¹ : CommRing α
inst✝ : LinearOrder ι
s : Finset ι
f g : ι → α
⊢ ∏ i ∈ s, (f i - g i) =
    ∏ i ∈ s, f i - ∑ i ∈ s, (g i * ∏ j ∈ filter (fun x => x < i) s, (f j - g j)) * ∏ j ∈ filter (fun j => i < j) s, f j
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
κ : ι → Type u_5
s✝ s₁ s₂ : Finset ι
i : ι
a : α
f✝ g✝ : ι → α
inst✝¹ : CommRing α
inst✝ : LinearOrder ι
s : Finset ι
f g : ι → α
⊢ ∏ x ∈ s, (f x + -g x) =
    ∏ i ∈ s, f i +
      -∑ x ∈ s, (g x * ∏ x ∈ filter (fun x_1 => x_1 < x) s, (f x + -g x)) * ∏ i ∈ filter (fun j => x < j) s, f i

tactic: convert prod_add_ordered s f fun i => -g i
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
κ : ι → Type u_5
s✝ s₁ s₂ : Finset ι
i : ι
a : α
f✝ g✝ : ι → α
inst✝¹ : CommRing α
inst✝ : LinearOrder ι
s : Finset ι
f g : ι → α
⊢ ∏ x ∈ s, (f x + -g x) =
    ∏ i ∈ s, f i +
      -∑ x ∈ s, (g x * ∏ x ∈ filter (fun x_1 => x_1 < x) s, (f x + -g x)) * ∏ i ∈ filter (fun j => x < j) s, f i
state_after: case h.e'_3.h.e'_6
ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
κ : ι → Type u_5
s✝ s₁ s₂ : Finset ι
i : ι
a : α
f✝ g✝ : ι → α
inst✝¹ : CommRing α
inst✝ : LinearOrder ι
s : Finset ι
f g : ι → α
⊢ -∑ x ∈ s, (g x * ∏ x ∈ filter (fun x_1 => x_1 < x) s, (f x + -g x)) * ∏ i ∈ filter (fun j => x < j) s, f i =
    ∑ i ∈ s, (-g i * ∏ j ∈ filter (fun x => x < i) s, (f j + -g j)) * ∏ j ∈ filter (fun j => i < j) s, f j

tactic: simp
state_before: case h.e'_3.h.e'_6
ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
κ : ι → Type u_5
s✝ s₁ s₂ : Finset ι
i : ι
a : α
f✝ g✝ : ι → α
inst✝¹ : CommRing α
inst✝ : LinearOrder ι
s : Finset ι
f g : ι → α
⊢ -∑ x ∈ s, (g x * ∏ x ∈ filter (fun x_1 => x_1 < x) s, (f x + -g x)) * ∏ i ∈ filter (fun j => x < j) s, f i =
    ∑ i ∈ s, (-g i * ∏ j ∈ filter (fun x => x < i) s, (f j + -g j)) * ∏ j ∈ filter (fun j => i < j) s, f j
state_after: no goals
Theorem: map_eq_zero_iff_eq_one
File: Mathlib/Algebra/Order/Hom/Basic.lean

tactic: rintro rfl
state_before: ι : Type u_1
F : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
inst✝³ : FunLike F α β
inst✝² : Group α
inst✝¹ : OrderedAddCommMonoid β
inst✝ : GroupNormClass F α β
f : F
x : α
⊢ x = 1 → f x = 0
state_after: ι : Type u_1
F : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
inst✝³ : FunLike F α β
inst✝² : Group α
inst✝¹ : OrderedAddCommMonoid β
inst✝ : GroupNormClass F α β
f : F
⊢ f 1 = 0

tactic: exact map_one_eq_zero _
state_before: ι : Type u_1
F : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
inst✝³ : FunLike F α β
inst✝² : Group α
inst✝¹ : OrderedAddCommMonoid β
inst✝ : GroupNormClass F α β
f : F
⊢ f 1 = 0
state_after: no goals