1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Matrix.add_vecMul
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 m
A : Matrix m n α
x y : m → α
⊢ (x + y) ᵥ* A = x ᵥ* A + y ᵥ* A
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 m
A : Matrix m n α
x y : m → α
x✝ : n
⊢ ((x + y) ᵥ* A) x✝ = (x ᵥ* A + y ᵥ* A) 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 m
A : Matrix m n α
x y : m → α
x✝ : n
⊢ ((x + y) ᵥ* A) x✝ = (x ᵥ* A + y ᵥ* A) x✝
state_after: no goals
Theorem: Language.mul_self_kstar_comm
File: Mathlib/Computability/Language.lean

tactic: simp only [kstar_eq_iSup_pow, mul_iSup, iSup_mul, ← pow_succ, ← pow_succ']
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
l✝ m : Language α
a b x : List α
l : Language α
⊢ l∗ * l = l * l∗
state_after: no goals
Theorem: MeasureTheory.FiniteMeasure.ext_of_forall_lintegral_eq
File: Mathlib/MeasureTheory/Measure/FiniteMeasure.lean

tactic: apply Subtype.ext
state_before: Ω : Type u_1
inst✝⁷ : MeasurableSpace Ω
R : Type u_2
inst✝⁶ : SMul R ℝ≥0
inst✝⁵ : SMul R ℝ≥0∞
inst✝⁴ : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : TopologicalSpace Ω
inst✝¹ : HasOuterApproxClosed Ω
inst✝ : BorelSpace Ω
μ ν : FiniteMeasure Ω
h : ∀ (f : Ω →ᵇ ℝ≥0), ∫⁻ (x : Ω), ↑(f x) ∂↑μ = ∫⁻ (x : Ω), ↑(f x) ∂↑ν
⊢ μ = ν
state_after: case a
Ω : Type u_1
inst✝⁷ : MeasurableSpace Ω
R : Type u_2
inst✝⁶ : SMul R ℝ≥0
inst✝⁵ : SMul R ℝ≥0∞
inst✝⁴ : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : TopologicalSpace Ω
inst✝¹ : HasOuterApproxClosed Ω
inst✝ : BorelSpace Ω
μ ν : FiniteMeasure Ω
h : ∀ (f : Ω →ᵇ ℝ≥0), ∫⁻ (x : Ω), ↑(f x) ∂↑μ = ∫⁻ (x : Ω), ↑(f x) ∂↑ν
⊢ ↑μ = ↑ν

tactic: exact ext_of_forall_lintegral_eq_of_IsFiniteMeasure h
state_before: case a
Ω : Type u_1
inst✝⁷ : MeasurableSpace Ω
R : Type u_2
inst✝⁶ : SMul R ℝ≥0
inst✝⁵ : SMul R ℝ≥0∞
inst✝⁴ : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝² : TopologicalSpace Ω
inst✝¹ : HasOuterApproxClosed Ω
inst✝ : BorelSpace Ω
μ ν : FiniteMeasure Ω
h : ∀ (f : Ω →ᵇ ℝ≥0), ∫⁻ (x : Ω), ↑(f x) ∂↑μ = ∫⁻ (x : Ω), ↑(f x) ∂↑ν
⊢ ↑μ = ↑ν
state_after: no goals
Theorem: MulAction.mem_stabilizer_set
File: Mathlib/Algebra/Pointwise/Stabilizer.lean

tactic: refine mem_stabilizer_iff.trans ⟨fun h b ↦ ?_, fun h ↦ ?_⟩
state_before: G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a : G
s : Set α
⊢ a ∈ stabilizer G s ↔ ∀ (b : α), a • b ∈ s ↔ b ∈ s
state_after: case refine_1
G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a : G
s : Set α
h : a • s = s
b : α
⊢ a • b ∈ s ↔ b ∈ s

case refine_2
G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a : G
s : Set α
h : ∀ (b : α), a • b ∈ s ↔ b ∈ s
⊢ a • s = s

tactic: simp_rw [Set.ext_iff, mem_smul_set_iff_inv_smul_mem]
state_before: case refine_2
G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a : G
s : Set α
h : ∀ (b : α), a • b ∈ s ↔ b ∈ s
⊢ a • s = s
state_after: case refine_2
G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a : G
s : Set α
h : ∀ (b : α), a • b ∈ s ↔ b ∈ s
⊢ ∀ (x : α), a⁻¹ • x ∈ s ↔ x ∈ s

tactic: exact ((MulAction.toPerm a).forall_congr' <| by simp [Iff.comm]).1 h
state_before: case refine_2
G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a : G
s : Set α
h : ∀ (b : α), a • b ∈ s ↔ b ∈ s
⊢ ∀ (x : α), a⁻¹ • x ∈ s ↔ x ∈ s
state_after: no goals

tactic: rw [← (smul_mem_smul_set_iff : a • b ∈ _ ↔ _), h]
state_before: case refine_1
G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a : G
s : Set α
h : a • s = s
b : α
⊢ a • b ∈ s ↔ b ∈ s
state_after: no goals

tactic: simp [Iff.comm]
state_before: G : Type u_1
H : Type u_2
α : Type u_3
inst✝² : Group G
inst✝¹ : Group H
inst✝ : MulAction G α
a : G
s : Set α
h : ∀ (b : α), a • b ∈ s ↔ b ∈ s
⊢ ∀ (b : α), (a • (Equiv.symm (toPerm a)) b ∈ s ↔ (Equiv.symm (toPerm a)) b ∈ s) ↔ (a⁻¹ • b ∈ s ↔ b ∈ s)
state_after: no goals
Theorem: Asymptotics.isBigOWith_const_one
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simp [isBigOWith_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
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
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✝⁵ : SeminormedAddGroup E'''
inst✝⁴ : SeminormedRing R'
inst✝³ : NormedDivisionRing 𝕜
inst✝² : NormedDivisionRing 𝕜'
c✝ c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l✝ l' : Filter α
inst✝¹ : One F
inst✝ : NormOneClass F
c : E
l : Filter α
⊢ IsBigOWith ‖c‖ l (fun _x => c) fun _x => 1
state_after: no goals
Theorem: List.reduceOption_length_eq
File: Mathlib/Data/List/ReduceOption.lean

tactic: induction' l with hd tl hl
state_before: α : Type u_1
β : Type u_2
l : List (Option α)
⊢ l.reduceOption.length = (filter Option.isSome l).length
state_after: case nil
α : Type u_1
β : Type u_2
⊢ [].reduceOption.length = (filter Option.isSome []).length

case cons
α : Type u_1
β : Type u_2
hd : Option α
tl : List (Option α)
hl : tl.reduceOption.length = (filter Option.isSome tl).length
⊢ (hd :: tl).reduceOption.length = (filter Option.isSome (hd :: tl)).length

tactic: simp_rw [reduceOption_nil, filter_nil, length]
state_before: case nil
α : Type u_1
β : Type u_2
⊢ [].reduceOption.length = (filter Option.isSome []).length
state_after: no goals

tactic: cases hd <;> simp [hl]
state_before: case cons
α : Type u_1
β : Type u_2
hd : Option α
tl : List (Option α)
hl : tl.reduceOption.length = (filter Option.isSome tl).length
⊢ (hd :: tl).reduceOption.length = (filter Option.isSome (hd :: tl)).length
state_after: no goals
Theorem: Polynomial.separable_X_sub_C
File: Mathlib/FieldTheory/Separable.lean

tactic: simpa only [sub_eq_add_neg, C_neg] using separable_X_add_C (-x)
state_before: R : Type u
inst✝ : CommRing R
x : R
⊢ (X - C x).Separable
state_after: no goals
Theorem: Abelianization.commutator_subset_ker
File: Mathlib/GroupTheory/Abelianization.lean

tactic: rw [commutator_eq_closure, Subgroup.closure_le]
state_before: G : Type u
inst✝¹ : Group G
A : Type v
inst✝ : CommGroup A
f : G →* A
⊢ commutator G ≤ f.ker
state_after: G : Type u
inst✝¹ : Group G
A : Type v
inst✝ : CommGroup A
f : G →* A
⊢ commutatorSet G ⊆ ↑f.ker

tactic: rintro x ⟨p, q, rfl⟩
state_before: G : Type u
inst✝¹ : Group G
A : Type v
inst✝ : CommGroup A
f : G →* A
⊢ commutatorSet G ⊆ ↑f.ker
state_after: case intro.intro
G : Type u
inst✝¹ : Group G
A : Type v
inst✝ : CommGroup A
f : G →* A
p q : G
⊢ ⁅p, q⁆ ∈ ↑f.ker

tactic: simp [MonoidHom.mem_ker, mul_right_comm (f p) (f q), commutatorElement_def]
state_before: case intro.intro
G : Type u
inst✝¹ : Group G
A : Type v
inst✝ : CommGroup A
f : G →* A
p q : G
⊢ ⁅p, q⁆ ∈ ↑f.ker
state_after: no goals
Theorem: HasProd.inv
File: Mathlib/Topology/Algebra/InfiniteSum/Group.lean

tactic: simpa only using h.map (MonoidHom.id α)⁻¹ continuous_inv
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝² : CommGroup α
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalGroup α
f g : β → α
a a₁ a₂ : α
h : HasProd f a
⊢ HasProd (fun b => (f b)⁻¹) a⁻¹
state_after: no goals
Theorem: Matrix.SpecialLinearGroup.SL2_inv_expl
File: Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean

tactic: ext
state_before: n : Type u
inst✝³ : DecidableEq n
inst✝² : Fintype n
R : Type v
inst✝¹ : CommRing R
S : Type u_1
inst✝ : CommRing S
A : SL(2, R)
⊢ A⁻¹ = ⟨![![↑A 1 1, -↑A 0 1], ![-↑A 1 0, ↑A 0 0]], ⋯⟩
state_after: case a
n : Type u
inst✝³ : DecidableEq n
inst✝² : Fintype n
R : Type v
inst✝¹ : CommRing R
S : Type u_1
inst✝ : CommRing S
A : SL(2, R)
i✝ j✝ : Fin 2
⊢ ↑A⁻¹ i✝ j✝ = ↑⟨![![↑A 1 1, -↑A 0 1], ![-↑A 1 0, ↑A 0 0]], ⋯⟩ i✝ j✝

tactic: have := Matrix.adjugate_fin_two A.1
state_before: case a
n : Type u
inst✝³ : DecidableEq n
inst✝² : Fintype n
R : Type v
inst✝¹ : CommRing R
S : Type u_1
inst✝ : CommRing S
A : SL(2, R)
i✝ j✝ : Fin 2
⊢ ↑A⁻¹ i✝ j✝ = ↑⟨![![↑A 1 1, -↑A 0 1], ![-↑A 1 0, ↑A 0 0]], ⋯⟩ i✝ j✝
state_after: case a
n : Type u
inst✝³ : DecidableEq n
inst✝² : Fintype n
R : Type v
inst✝¹ : CommRing R
S : Type u_1
inst✝ : CommRing S
A : SL(2, R)
i✝ j✝ : Fin 2
this : (↑A).adjugate = of ![![↑A 1 1, -↑A 0 1], ![-↑A 1 0, ↑A 0 0]]
⊢ ↑A⁻¹ i✝ j✝ = ↑⟨![![↑A 1 1, -↑A 0 1], ![-↑A 1 0, ↑A 0 0]], ⋯⟩ i✝ j✝

tactic: rw [coe_inv, this]
state_before: case a
n : Type u
inst✝³ : DecidableEq n
inst✝² : Fintype n
R : Type v
inst✝¹ : CommRing R
S : Type u_1
inst✝ : CommRing S
A : SL(2, R)
i✝ j✝ : Fin 2
this : (↑A).adjugate = of ![![↑A 1 1, -↑A 0 1], ![-↑A 1 0, ↑A 0 0]]
⊢ ↑A⁻¹ i✝ j✝ = ↑⟨![![↑A 1 1, -↑A 0 1], ![-↑A 1 0, ↑A 0 0]], ⋯⟩ i✝ j✝
state_after: case a
n : Type u
inst✝³ : DecidableEq n
inst✝² : Fintype n
R : Type v
inst✝¹ : CommRing R
S : Type u_1
inst✝ : CommRing S
A : SL(2, R)
i✝ j✝ : Fin 2
this : (↑A).adjugate = of ![![↑A 1 1, -↑A 0 1], ![-↑A 1 0, ↑A 0 0]]
⊢ of ![![↑A 1 1, -↑A 0 1], ![-↑A 1 0, ↑A 0 0]] i✝ j✝ = ↑⟨![![↑A 1 1, -↑A 0 1], ![-↑A 1 0, ↑A 0 0]], ⋯⟩ i✝ j✝

tactic: rfl
state_before: case a
n : Type u
inst✝³ : DecidableEq n
inst✝² : Fintype n
R : Type v
inst✝¹ : CommRing R
S : Type u_1
inst✝ : CommRing S
A : SL(2, R)
i✝ j✝ : Fin 2
this : (↑A).adjugate = of ![![↑A 1 1, -↑A 0 1], ![-↑A 1 0, ↑A 0 0]]
⊢ of ![![↑A 1 1, -↑A 0 1], ![-↑A 1 0, ↑A 0 0]] i✝ j✝ = ↑⟨![![↑A 1 1, -↑A 0 1], ![-↑A 1 0, ↑A 0 0]], ⋯⟩ i✝ j✝
state_after: no goals
Theorem: SchwartzMap.seminorm_le_bound'
File: Mathlib/Analysis/Distribution/SchwartzSpace.lean

tactic: refine seminorm_le_bound 𝕜 k n f hMp ?_
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
D : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
V : Type u_7
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedField 𝕜
inst✝¹ : NormedSpace 𝕜 F
inst✝ : SMulCommClass ℝ 𝕜 F
k n : ℕ
f : 𝓢(ℝ, F)
M : ℝ
hMp : 0 ≤ M
hM : ∀ (x : ℝ), |x| ^ k * ‖iteratedDeriv n (⇑f) x‖ ≤ M
⊢ (SchwartzMap.seminorm 𝕜 k n) f ≤ M
state_after: 𝕜 : Type u_1
𝕜' : Type u_2
D : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
V : Type u_7
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedField 𝕜
inst✝¹ : NormedSpace 𝕜 F
inst✝ : SMulCommClass ℝ 𝕜 F
k n : ℕ
f : 𝓢(ℝ, F)
M : ℝ
hMp : 0 ≤ M
hM : ∀ (x : ℝ), |x| ^ k * ‖iteratedDeriv n (⇑f) x‖ ≤ M
⊢ ∀ (x : ℝ), ‖x‖ ^ k * ‖iteratedFDeriv ℝ n (⇑f) x‖ ≤ M

tactic: simpa only [Real.norm_eq_abs, norm_iteratedFDeriv_eq_norm_iteratedDeriv]
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
D : Type u_3
E : Type u_4
F : Type u_5
G : Type u_6
V : Type u_7
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : NormedField 𝕜
inst✝¹ : NormedSpace 𝕜 F
inst✝ : SMulCommClass ℝ 𝕜 F
k n : ℕ
f : 𝓢(ℝ, F)
M : ℝ
hMp : 0 ≤ M
hM : ∀ (x : ℝ), |x| ^ k * ‖iteratedDeriv n (⇑f) x‖ ≤ M
⊢ ∀ (x : ℝ), ‖x‖ ^ k * ‖iteratedFDeriv ℝ n (⇑f) x‖ ≤ M
state_after: no goals
Theorem: Concept.snd_ssubset_snd_iff
File: Mathlib/Order/Concept.lean

tactic: rw [ssubset_iff_subset_not_subset, lt_iff_le_not_le, snd_subset_snd_iff, snd_subset_snd_iff]
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
γ : Type u_4
κ : ι → Sort u_5
r : α → β → Prop
s s₁ s₂ : Set α
t t₁ t₂ : Set β
c d : Concept α β r
⊢ c.toProd.2 ⊂ d.toProd.2 ↔ d < c
state_after: no goals
Theorem: Sigma.lex_swap
File: Mathlib/Data/Sigma/Lex.lean

tactic: rintro (⟨a, b, h⟩ | ⟨a, b, h⟩)
state_before: case mpr
ι : Type u_1
α : ι → Type u_2
r r₁ r₂ : ι → ι → Prop
s s₁ s₂ : (i : ι) → α i → α i → Prop
a b : (i : ι) × α i
⊢ Lex r (fun i => Function.swap (s i)) b a → Lex (Function.swap r) s a b
state_after: case mpr.left
ι : Type u_1
α : ι → Type u_2
r r₁ r₂ : ι → ι → Prop
s s₁ s₂ : (i : ι) → α i → α i → Prop
i✝ j✝ : ι
a : α i✝
b : α j✝
h : r i✝ j✝
⊢ Lex (Function.swap r) s ⟨j✝, b⟩ ⟨i✝, a⟩

case mpr.right
ι : Type u_1
α : ι → Type u_2
r r₁ r₂ : ι → ι → Prop
s s₁ s₂ : (i : ι) → α i → α i → Prop
i✝ : ι
a b : α i✝
h : Function.swap (s i✝) a b
⊢ Lex (Function.swap r) s ⟨i✝, b⟩ ⟨i✝, a⟩

tactic: exacts [Lex.left _ _ h, Lex.right _ _ h]
state_before: case mpr.left
ι : Type u_1
α : ι → Type u_2
r r₁ r₂ : ι → ι → Prop
s s₁ s₂ : (i : ι) → α i → α i → Prop
i✝ j✝ : ι
a : α i✝
b : α j✝
h : r i✝ j✝
⊢ Lex (Function.swap r) s ⟨j✝, b⟩ ⟨i✝, a⟩

case mpr.right
ι : Type u_1
α : ι → Type u_2
r r₁ r₂ : ι → ι → Prop
s s₁ s₂ : (i : ι) → α i → α i → Prop
i✝ : ι
a b : α i✝
h : Function.swap (s i✝) a b
⊢ Lex (Function.swap r) s ⟨i✝, b⟩ ⟨i✝, a⟩
state_after: no goals
Theorem: List.rdropWhile_last_not
File: Mathlib/Data/List/DropRight.lean

tactic: simp_rw [rdropWhile]
state_before: α : Type u_1
p : α → Bool
l : List α
n : ℕ
hl : rdropWhile p l ≠ []
⊢ ¬p ((rdropWhile p l).getLast hl) = true
state_after: α : Type u_1
p : α → Bool
l : List α
n : ℕ
hl : rdropWhile p l ≠ []
⊢ ¬p ((dropWhile p l.reverse).reverse.getLast ⋯) = true

tactic: rw [getLast_reverse]
state_before: α : Type u_1
p : α → Bool
l : List α
n : ℕ
hl : rdropWhile p l ≠ []
⊢ ¬p ((dropWhile p l.reverse).reverse.getLast ⋯) = true
state_after: α : Type u_1
p : α → Bool
l : List α
n : ℕ
hl : rdropWhile p l ≠ []
⊢ ¬p ((dropWhile p l.reverse).get ⟨0, ⋯⟩) = true

tactic: exact dropWhile_nthLe_zero_not _ _ _
state_before: α : Type u_1
p : α → Bool
l : List α
n : ℕ
hl : rdropWhile p l ≠ []
⊢ ¬p ((dropWhile p l.reverse).get ⟨0, ⋯⟩) = true
state_after: no goals
Theorem: MeasureTheory.MeasurePreserving.setLIntegral_comp_preimage
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: rw [← hg.map_eq, setLIntegral_map hs hf hg.measurable]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν✝ : Measure α
mb : MeasurableSpace β
ν : Measure β
g : α → β
hg : MeasurePreserving g μ ν
s : Set β
hs : MeasurableSet s
f : β → ℝ≥0∞
hf : Measurable f
⊢ ∫⁻ (a : α) in g ⁻¹' s, f (g a) ∂μ = ∫⁻ (b : β) in s, f b ∂ν
state_after: no goals
Theorem: Matrix.StdBasisMatrix.diag_same
File: Mathlib/Data/Matrix/Basis.lean

tactic: ext j
state_before: l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝³ : DecidableEq l
inst✝² : DecidableEq m
inst✝¹ : DecidableEq n
inst✝ : Semiring α
i j : n
c : α
i' j' : n
⊢ (stdBasisMatrix i i c).diag = Pi.single i c
state_after: case h
l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝³ : DecidableEq l
inst✝² : DecidableEq m
inst✝¹ : DecidableEq n
inst✝ : Semiring α
i j✝ : n
c : α
i' j' j : n
⊢ (stdBasisMatrix i i c).diag j = Pi.single i c j

tactic: by_cases hij : i = j <;> (try rw [hij]) <;> simp [hij]
state_before: case h
l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝³ : DecidableEq l
inst✝² : DecidableEq m
inst✝¹ : DecidableEq n
inst✝ : Semiring α
i j✝ : n
c : α
i' j' j : n
⊢ (stdBasisMatrix i i c).diag j = Pi.single i c j
state_after: no goals

tactic: try rw [hij]
state_before: case pos
l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝³ : DecidableEq l
inst✝² : DecidableEq m
inst✝¹ : DecidableEq n
inst✝ : Semiring α
i j✝ : n
c : α
i' j' j : n
hij : i = j
⊢ (stdBasisMatrix i i c).diag j = Pi.single i c j
state_after: case pos
l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝³ : DecidableEq l
inst✝² : DecidableEq m
inst✝¹ : DecidableEq n
inst✝ : Semiring α
i j✝ : n
c : α
i' j' j : n
hij : i = j
⊢ (stdBasisMatrix j j c).diag j = Pi.single j c j

tactic: rw [hij]
state_before: case pos
l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝³ : DecidableEq l
inst✝² : DecidableEq m
inst✝¹ : DecidableEq n
inst✝ : Semiring α
i j✝ : n
c : α
i' j' j : n
hij : i = j
⊢ (stdBasisMatrix i i c).diag j = Pi.single i c j
state_after: case pos
l : Type u_1
m : Type u_2
n : Type u_3
R : Type u_4
α : Type u_5
inst✝³ : DecidableEq l
inst✝² : DecidableEq m
inst✝¹ : DecidableEq n
inst✝ : Semiring α
i j✝ : n
c : α
i' j' j : n
hij : i = j
⊢ (stdBasisMatrix j j c).diag j = Pi.single j c j
Theorem: SimpleGraph.TripartiteFromTriangles.farFromTriangleFree
File: Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean

tactic: simpa using toTriangle_is3Clique hx
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
𝕜 : Type u_4
inst✝⁷ : LinearOrderedField 𝕜
t : Finset (α × β × γ)
a a' : α
b b' : β
c c' : γ
x✝ : α × β × γ
ε✝ : 𝕜
inst✝⁶ : DecidableEq α
inst✝⁵ : DecidableEq β
inst✝⁴ : DecidableEq γ
inst✝³ : Fintype α
inst✝² : Fintype β
inst✝¹ : Fintype γ
inst✝ : ExplicitDisjoint t
ε : 𝕜
ht : ε * ↑((Fintype.card α + Fintype.card β + Fintype.card γ) ^ 2) ≤ ↑t.card
x : α × β × γ
hx : x ∈ t
⊢ x ∈ ((graph t).cliqueFinset 3).preimage ⇑toTriangle ⋯
state_after: no goals

tactic: simpa [add_assoc] using ht
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
𝕜 : Type u_4
inst✝⁷ : LinearOrderedField 𝕜
t : Finset (α × β × γ)
a a' : α
b b' : β
c c' : γ
x : α × β × γ
ε✝ : 𝕜
inst✝⁶ : DecidableEq α
inst✝⁵ : DecidableEq β
inst✝⁴ : DecidableEq γ
inst✝³ : Fintype α
inst✝² : Fintype β
inst✝¹ : Fintype γ
inst✝ : ExplicitDisjoint t
ε : 𝕜
ht : ε * ↑((Fintype.card α + Fintype.card β + Fintype.card γ) ^ 2) ≤ ↑t.card
⊢ ε * ↑(Fintype.card (α ⊕ β ⊕ γ) ^ 2) ≤ ↑(map toTriangle t).card
state_after: no goals
Theorem: Batteries.RBNode.WF.out
File: .lake/packages/batteries/Batteries/Data/RBMap/WF.lean

tactic: induction h with
| mk o h => exact ⟨o, _, _, h⟩
| insert _ ih => have ⟨o, _, _, h⟩ := ih; exact ⟨o.insert, h.insert⟩
| erase _ ih => have ⟨o, _, _, h⟩ := ih; exact ⟨o.erase, _, h.erase⟩
state_before: α : Type u_1
cmp : α → α → Ordering
t : RBNode α
h : WF cmp t
⊢ Ordered cmp t ∧ ∃ c n, t.Balanced c n
state_after: no goals

tactic: exact ⟨o, _, _, h⟩
state_before: case mk
α : Type u_1
cmp : α → α → Ordering
t t✝ : RBNode α
c✝ : RBColor
n✝ : Nat
o : Ordered cmp t✝
h : t✝.Balanced c✝ n✝
⊢ Ordered cmp t✝ ∧ ∃ c n, t✝.Balanced c n
state_after: no goals

tactic: have ⟨o, _, _, h⟩ := ih
state_before: case insert
α : Type u_1
cmp : α → α → Ordering
t t✝ : RBNode α
a✝¹ : α
a✝ : WF cmp t✝
ih : Ordered cmp t✝ ∧ ∃ c n, t✝.Balanced c n
⊢ Ordered cmp (RBNode.insert cmp t✝ a✝¹) ∧ ∃ c n, (RBNode.insert cmp t✝ a✝¹).Balanced c n
state_after: case insert
α : Type u_1
cmp : α → α → Ordering
t t✝ : RBNode α
a✝¹ : α
a✝ : WF cmp t✝
ih : Ordered cmp t✝ ∧ ∃ c n, t✝.Balanced c n
o : Ordered cmp t✝
w✝¹ : RBColor
w✝ : Nat
h : t✝.Balanced w✝¹ w✝
⊢ Ordered cmp (RBNode.insert cmp t✝ a✝¹) ∧ ∃ c n, (RBNode.insert cmp t✝ a✝¹).Balanced c n

tactic: exact ⟨o.insert, h.insert⟩
state_before: case insert
α : Type u_1
cmp : α → α → Ordering
t t✝ : RBNode α
a✝¹ : α
a✝ : WF cmp t✝
ih : Ordered cmp t✝ ∧ ∃ c n, t✝.Balanced c n
o : Ordered cmp t✝
w✝¹ : RBColor
w✝ : Nat
h : t✝.Balanced w✝¹ w✝
⊢ Ordered cmp (RBNode.insert cmp t✝ a✝¹) ∧ ∃ c n, (RBNode.insert cmp t✝ a✝¹).Balanced c n
state_after: no goals

tactic: have ⟨o, _, _, h⟩ := ih
state_before: case erase
α : Type u_1
cmp : α → α → Ordering
t t✝ : RBNode α
cut✝ : α → Ordering
a✝ : WF cmp t✝
ih : Ordered cmp t✝ ∧ ∃ c n, t✝.Balanced c n
⊢ Ordered cmp (RBNode.erase cut✝ t✝) ∧ ∃ c n, (RBNode.erase cut✝ t✝).Balanced c n
state_after: case erase
α : Type u_1
cmp : α → α → Ordering
t t✝ : RBNode α
cut✝ : α → Ordering
a✝ : WF cmp t✝
ih : Ordered cmp t✝ ∧ ∃ c n, t✝.Balanced c n
o : Ordered cmp t✝
w✝¹ : RBColor
w✝ : Nat
h : t✝.Balanced w✝¹ w✝
⊢ Ordered cmp (RBNode.erase cut✝ t✝) ∧ ∃ c n, (RBNode.erase cut✝ t✝).Balanced c n

tactic: exact ⟨o.erase, _, h.erase⟩
state_before: case erase
α : Type u_1
cmp : α → α → Ordering
t t✝ : RBNode α
cut✝ : α → Ordering
a✝ : WF cmp t✝
ih : Ordered cmp t✝ ∧ ∃ c n, t✝.Balanced c n
o : Ordered cmp t✝
w✝¹ : RBColor
w✝ : Nat
h : t✝.Balanced w✝¹ w✝
⊢ Ordered cmp (RBNode.erase cut✝ t✝) ∧ ∃ c n, (RBNode.erase cut✝ t✝).Balanced c n
state_after: no goals
Theorem: Finset.Colex.lt_iff_max'_mem
File: Mathlib/Combinatorics/Colex.lean

tactic: rw [lt_iff_le_and_ne, le_iff_max'_mem]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder α
inst✝ : LinearOrder β
f : α → β
𝒜 𝒜₁ 𝒜₂ : Finset (Finset α)
s✝ t✝ u : Finset α
a b : α
r : ℕ
s t : Colex α
⊢ s < t ↔ ∃ (h : s ≠ t), (s.ofColex ∆ t.ofColex).max' ⋯ ∈ t.ofColex
state_after: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder α
inst✝ : LinearOrder β
f : α → β
𝒜 𝒜₁ 𝒜₂ : Finset (Finset α)
s✝ t✝ u : Finset α
a b : α
r : ℕ
s t : Colex α
⊢ (∀ (h : s ≠ t), (s.ofColex ∆ t.ofColex).max' ⋯ ∈ t.ofColex) ∧ s ≠ t ↔
    ∃ (h : s ≠ t), (s.ofColex ∆ t.ofColex).max' ⋯ ∈ t.ofColex

tactic: aesop
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder α
inst✝ : LinearOrder β
f : α → β
𝒜 𝒜₁ 𝒜₂ : Finset (Finset α)
s✝ t✝ u : Finset α
a b : α
r : ℕ
s t : Colex α
⊢ (∀ (h : s ≠ t), (s.ofColex ∆ t.ofColex).max' ⋯ ∈ t.ofColex) ∧ s ≠ t ↔
    ∃ (h : s ≠ t), (s.ofColex ∆ t.ofColex).max' ⋯ ∈ t.ofColex
state_after: no goals
Theorem: List.Sublist.erase_diff_erase_sublist
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

tactic: if heq : b = a then
  simp [heq]
else
  simp [heq, erase_comm a]
  exact (erase_cons_head b _ ▸ h.erase b).erase_diff_erase_sublist
state_before: α : Type u_1
inst✝¹ : BEq α
inst✝ : LawfulBEq α
a b : α
l₁ l₂ : List α
h : b :: l₁ <+ l₂
⊢ (l₂.erase a).diff ((b :: l₁).erase a) <+ l₂.diff (b :: l₁)
state_after: no goals

tactic: simp [heq]
state_before: α : Type u_1
inst✝¹ : BEq α
inst✝ : LawfulBEq α
a b : α
l₁ l₂ : List α
h : b :: l₁ <+ l₂
heq : b = a
⊢ (l₂.erase a).diff ((b :: l₁).erase a) <+ l₂.diff (b :: l₁)
state_after: no goals

tactic: simp [heq, erase_comm a]
state_before: α : Type u_1
inst✝¹ : BEq α
inst✝ : LawfulBEq α
a b : α
l₁ l₂ : List α
h : b :: l₁ <+ l₂
heq : ¬b = a
⊢ (l₂.erase a).diff ((b :: l₁).erase a) <+ l₂.diff (b :: l₁)
state_after: α : Type u_1
inst✝¹ : BEq α
inst✝ : LawfulBEq α
a b : α
l₁ l₂ : List α
h : b :: l₁ <+ l₂
heq : ¬b = a
⊢ ((l₂.erase b).erase a).diff (l₁.erase a) <+ (l₂.erase b).diff l₁

tactic: exact (erase_cons_head b _ ▸ h.erase b).erase_diff_erase_sublist
state_before: α : Type u_1
inst✝¹ : BEq α
inst✝ : LawfulBEq α
a b : α
l₁ l₂ : List α
h : b :: l₁ <+ l₂
heq : ¬b = a
⊢ ((l₂.erase b).erase a).diff (l₁.erase a) <+ (l₂.erase b).diff l₁
state_after: no goals
Theorem: invOf_add_invOf
File: Mathlib/Algebra/Ring/Invertible.lean

tactic: rw [mul_add, invOf_mul_self, add_mul, one_mul, mul_assoc, mul_invOf_self, mul_one, add_comm]
state_before: α : Type u
inst✝² : Semiring α
a b : α
inst✝¹ : Invertible a
inst✝ : Invertible b
⊢ ⅟a + ⅟b = ⅟a * (a + b) * ⅟b
state_after: no goals