1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: closure_eq_compl_interior_compl
File: Mathlib/Topology/Basic.lean

tactic: rw [interior, closure, compl_sUnion, compl_image_set_of]
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
⊢ closure s = (interior sᶜ)ᶜ
state_after: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
⊢ ⋂₀ {t | IsClosed t ∧ s ⊆ t} = ⋂₀ {s_1 | IsOpen s_1ᶜ ∧ s_1ᶜ ⊆ sᶜ}

tactic: simp only [compl_subset_compl, isOpen_compl_iff]
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
⊢ ⋂₀ {t | IsClosed t ∧ s ⊆ t} = ⋂₀ {s_1 | IsOpen s_1ᶜ ∧ s_1ᶜ ⊆ sᶜ}
state_after: no goals
Theorem: Primrec.fin_val_iff
File: Mathlib/Computability/Primrec.lean

tactic: letI : Primcodable { a // id a < n } := Primcodable.subtype (nat_lt.comp .id (const _))
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
σ : Type u_4
inst✝³ : Primcodable α
inst✝² : Primcodable β
inst✝¹ : Primcodable γ
inst✝ : Primcodable σ
n : ℕ
f : α → Fin n
⊢ (Primrec fun a => ↑(f a)) ↔ Primrec f
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
σ : Type u_4
inst✝³ : Primcodable α
inst✝² : Primcodable β
inst✝¹ : Primcodable γ
inst✝ : Primcodable σ
n : ℕ
f : α → Fin n
this : Primcodable { a // id a < n } := Primcodable.subtype ⋯
⊢ (Primrec fun a => ↑(f a)) ↔ Primrec f

tactic: exact (Iff.trans (by rfl) subtype_val_iff).trans (of_equiv_iff _)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
σ : Type u_4
inst✝³ : Primcodable α
inst✝² : Primcodable β
inst✝¹ : Primcodable γ
inst✝ : Primcodable σ
n : ℕ
f : α → Fin n
this : Primcodable { a // id a < n } := Primcodable.subtype ⋯
⊢ (Primrec fun a => ↑(f a)) ↔ Primrec f
state_after: no goals

tactic: rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
σ : Type u_4
inst✝³ : Primcodable α
inst✝² : Primcodable β
inst✝¹ : Primcodable γ
inst✝ : Primcodable σ
n : ℕ
f : α → Fin n
this : Primcodable { a // id a < n } := Primcodable.subtype ⋯
⊢ (Primrec fun a => ↑(f a)) ↔ Primrec fun a => ↑(Fin.equivSubtype (f a))
state_after: no goals
Theorem: PartialEquiv.IsImage.leftInvOn_piecewise
File: Mathlib/Logic/Equiv/PartialEquiv.lean

tactic: rintro x (⟨he, hs⟩ | ⟨he, hs : x ∉ s⟩)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e : PartialEquiv α β
e'✝ : PartialEquiv β γ
s : Set α
t : Set β
x : α
y : β
e' : PartialEquiv α β
inst✝¹ : (i : α) → Decidable (i ∈ s)
inst✝ : (i : β) → Decidable (i ∈ t)
h : e.IsImage s t
h' : e'.IsImage s t
⊢ LeftInvOn (t.piecewise ↑e.symm ↑e'.symm) (s.piecewise ↑e ↑e') (s.ite e.source e'.source)
state_after: case inl.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e : PartialEquiv α β
e'✝ : PartialEquiv β γ
s : Set α
t : Set β
x✝ : α
y : β
e' : PartialEquiv α β
inst✝¹ : (i : α) → Decidable (i ∈ s)
inst✝ : (i : β) → Decidable (i ∈ t)
h : e.IsImage s t
h' : e'.IsImage s t
x : α
he : x ∈ e.source
hs : x ∈ s
⊢ t.piecewise (↑e.symm) (↑e'.symm) (s.piecewise (↑e) (↑e') x) = x

case inr.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e : PartialEquiv α β
e'✝ : PartialEquiv β γ
s : Set α
t : Set β
x✝ : α
y : β
e' : PartialEquiv α β
inst✝¹ : (i : α) → Decidable (i ∈ s)
inst✝ : (i : β) → Decidable (i ∈ t)
h : e.IsImage s t
h' : e'.IsImage s t
x : α
he : x ∈ e'.source
hs : x ∉ s
⊢ t.piecewise (↑e.symm) (↑e'.symm) (s.piecewise (↑e) (↑e') x) = x

tactic: rw [piecewise_eq_of_mem _ _ _ hs, piecewise_eq_of_mem _ _ _ ((h he).2 hs), e.left_inv he]
state_before: case inl.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e : PartialEquiv α β
e'✝ : PartialEquiv β γ
s : Set α
t : Set β
x✝ : α
y : β
e' : PartialEquiv α β
inst✝¹ : (i : α) → Decidable (i ∈ s)
inst✝ : (i : β) → Decidable (i ∈ t)
h : e.IsImage s t
h' : e'.IsImage s t
x : α
he : x ∈ e.source
hs : x ∈ s
⊢ t.piecewise (↑e.symm) (↑e'.symm) (s.piecewise (↑e) (↑e') x) = x
state_after: no goals

tactic: rw [piecewise_eq_of_not_mem _ _ _ hs, piecewise_eq_of_not_mem _ _ _ ((h'.compl he).2 hs),
  e'.left_inv he]
state_before: case inr.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
e : PartialEquiv α β
e'✝ : PartialEquiv β γ
s : Set α
t : Set β
x✝ : α
y : β
e' : PartialEquiv α β
inst✝¹ : (i : α) → Decidable (i ∈ s)
inst✝ : (i : β) → Decidable (i ∈ t)
h : e.IsImage s t
h' : e'.IsImage s t
x : α
he : x ∈ e'.source
hs : x ∉ s
⊢ t.piecewise (↑e.symm) (↑e'.symm) (s.piecewise (↑e) (↑e') x) = x
state_after: no goals
Theorem: AlgebraicTopology.DoldKan.QInfty_f_0
File: Mathlib/AlgebraicTopology/DoldKan/PInfty.lean

tactic: dsimp [QInfty]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
⊢ QInfty.f 0 = 0
state_after: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
⊢ 𝟙 (X _[0]) - 𝟙 (X _[0]) = 0

tactic: simp only [sub_self]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
X : SimplicialObject C
⊢ 𝟙 (X _[0]) - 𝟙 (X _[0]) = 0
state_after: no goals
Theorem: Nat.strongRec_eq
File: .lake/packages/batteries/Batteries/Data/Nat/Lemmas.lean

tactic: conv => lhs; unfold Nat.strongRec
state_before: motive : Nat → Sort u_1
ind : (n : Nat) → ((m : Nat) → m < n → motive m) → motive n
t : Nat
⊢ Nat.strongRec ind t = ind t fun m x => Nat.strongRec ind m
state_after: no goals
Theorem: Asymptotics.isBigO_iff_isBigOWith
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: rw [IsBigO_def]
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 α
⊢ f =O[l] g ↔ ∃ c, IsBigOWith c l f g
state_after: no goals
Theorem: LocallyLipschitz.const_max
File: Mathlib/Topology/MetricSpace/Lipschitz.lean

tactic: simpa [max_comm] using (hf.max_const a)
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝ : PseudoEMetricSpace α
f g : α → ℝ
hf : LocallyLipschitz f
a : ℝ
⊢ LocallyLipschitz fun x => max a (f x)
state_after: no goals
Theorem: Polynomial.aroots_C_mul_X_pow
File: Mathlib/Algebra/Polynomial/Roots.lean

tactic: rw [aroots_C_mul _ ha, aroots_X_pow]
state_before: R : Type u
S : Type v
T : Type w
a✝ b : R
n✝ : ℕ
inst✝⁶ : CommRing R
inst✝⁵ : IsDomain R
p q : R[X]
inst✝⁴ : CommRing T
inst✝³ : CommRing S
inst✝² : IsDomain S
inst✝¹ : Algebra T S
inst✝ : NoZeroSMulDivisors T S
a : T
ha : a ≠ 0
n : ℕ
⊢ (C a * X ^ n).aroots S = n • {0}
state_after: no goals
Theorem: Cardinal.aleph0_le
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rcases lt_aleph0.1 hn with ⟨n, rfl⟩
state_before: α β : Type u
c : Cardinal.{u_1}
h : ∀ (n : ℕ), ↑n ≤ c
hn : c < ℵ₀
⊢ False
state_after: case intro
α β : Type u
n : ℕ
h : ∀ (n_1 : ℕ), ↑n_1 ≤ ↑n
hn : ↑n < ℵ₀
⊢ False

tactic: exact (Nat.lt_succ_self _).not_le (natCast_le.1 (h (n + 1)))
state_before: case intro
α β : Type u
n : ℕ
h : ∀ (n_1 : ℕ), ↑n_1 ≤ ↑n
hn : ↑n < ℵ₀
⊢ False
state_after: no goals
Theorem: eq_div_iff_mul_eq'
File: Mathlib/Algebra/Group/Basic.lean

tactic: rw [div_eq_mul_inv, eq_mul_inv_iff_mul_eq]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : Group G
a b c d : G
n : ℤ
⊢ a = b / c ↔ a * c = b
state_after: no goals
Theorem: isCyclic_of_surjective
File: Mathlib/GroupTheory/SpecificGroups/Cyclic.lean

tactic: obtain ⟨x, hx⟩ := hH
state_before: α : Type u
a : α
inst✝⁴ : Group α
H : Type u_1
G : Type u_2
F : Type u_3
inst✝³ : Group H
inst✝² : Group G
hH : IsCyclic H
inst✝¹ : FunLike F H G
inst✝ : MonoidHomClass F H G
f : F
hf : Function.Surjective ⇑f
⊢ IsCyclic G
state_after: case mk.intro
α : Type u
a : α
inst✝⁴ : Group α
H : Type u_1
G : Type u_2
F : Type u_3
inst✝³ : Group H
inst✝² : Group G
inst✝¹ : FunLike F H G
inst✝ : MonoidHomClass F H G
f : F
hf : Function.Surjective ⇑f
x : H
hx : ∀ (x_1 : H), x_1 ∈ zpowers x
⊢ IsCyclic G

tactic: refine ⟨f x, fun a ↦ ?_⟩
state_before: case mk.intro
α : Type u
a : α
inst✝⁴ : Group α
H : Type u_1
G : Type u_2
F : Type u_3
inst✝³ : Group H
inst✝² : Group G
inst✝¹ : FunLike F H G
inst✝ : MonoidHomClass F H G
f : F
hf : Function.Surjective ⇑f
x : H
hx : ∀ (x_1 : H), x_1 ∈ zpowers x
⊢ IsCyclic G
state_after: case mk.intro
α : Type u
a✝ : α
inst✝⁴ : Group α
H : Type u_1
G : Type u_2
F : Type u_3
inst✝³ : Group H
inst✝² : Group G
inst✝¹ : FunLike F H G
inst✝ : MonoidHomClass F H G
f : F
hf : Function.Surjective ⇑f
x : H
hx : ∀ (x_1 : H), x_1 ∈ zpowers x
a : G
⊢ a ∈ zpowers (f x)

tactic: obtain ⟨a, rfl⟩ := hf a
state_before: case mk.intro
α : Type u
a✝ : α
inst✝⁴ : Group α
H : Type u_1
G : Type u_2
F : Type u_3
inst✝³ : Group H
inst✝² : Group G
inst✝¹ : FunLike F H G
inst✝ : MonoidHomClass F H G
f : F
hf : Function.Surjective ⇑f
x : H
hx : ∀ (x_1 : H), x_1 ∈ zpowers x
a : G
⊢ a ∈ zpowers (f x)
state_after: case mk.intro.intro
α : Type u
a✝ : α
inst✝⁴ : Group α
H : Type u_1
G : Type u_2
F : Type u_3
inst✝³ : Group H
inst✝² : Group G
inst✝¹ : FunLike F H G
inst✝ : MonoidHomClass F H G
f : F
hf : Function.Surjective ⇑f
x : H
hx : ∀ (x_1 : H), x_1 ∈ zpowers x
a : H
⊢ f a ∈ zpowers (f x)

tactic: obtain ⟨n, rfl⟩ := hx a
state_before: case mk.intro.intro
α : Type u
a✝ : α
inst✝⁴ : Group α
H : Type u_1
G : Type u_2
F : Type u_3
inst✝³ : Group H
inst✝² : Group G
inst✝¹ : FunLike F H G
inst✝ : MonoidHomClass F H G
f : F
hf : Function.Surjective ⇑f
x : H
hx : ∀ (x_1 : H), x_1 ∈ zpowers x
a : H
⊢ f a ∈ zpowers (f x)
state_after: case mk.intro.intro.intro
α : Type u
a : α
inst✝⁴ : Group α
H : Type u_1
G : Type u_2
F : Type u_3
inst✝³ : Group H
inst✝² : Group G
inst✝¹ : FunLike F H G
inst✝ : MonoidHomClass F H G
f : F
hf : Function.Surjective ⇑f
x : H
hx : ∀ (x_1 : H), x_1 ∈ zpowers x
n : ℤ
⊢ f ((fun x_1 => x ^ x_1) n) ∈ zpowers (f x)

tactic: exact ⟨n, (map_zpow _ _ _).symm⟩
state_before: case mk.intro.intro.intro
α : Type u
a : α
inst✝⁴ : Group α
H : Type u_1
G : Type u_2
F : Type u_3
inst✝³ : Group H
inst✝² : Group G
inst✝¹ : FunLike F H G
inst✝ : MonoidHomClass F H G
f : F
hf : Function.Surjective ⇑f
x : H
hx : ∀ (x_1 : H), x_1 ∈ zpowers x
n : ℤ
⊢ f ((fun x_1 => x ^ x_1) n) ∈ zpowers (f x)
state_after: no goals
Theorem: padicNormE.add_eq_max_of_ne
File: Mathlib/NumberTheory/Padics/PadicNumbers.lean

tactic: dsimp [norm] at h ⊢
state_before: p : ℕ
hp : Fact (Nat.Prime p)
q r : ℚ_[p]
h : ‖q‖ ≠ ‖r‖
⊢ ‖q + r‖ = max ‖q‖ ‖r‖
state_after: p : ℕ
hp : Fact (Nat.Prime p)
q r : ℚ_[p]
h : ¬↑(padicNormE q) = ↑(padicNormE r)
⊢ ↑(padicNormE (q + r)) = max ↑(padicNormE q) ↑(padicNormE r)

tactic: have : padicNormE q ≠ padicNormE r := mod_cast h
state_before: p : ℕ
hp : Fact (Nat.Prime p)
q r : ℚ_[p]
h : ¬↑(padicNormE q) = ↑(padicNormE r)
⊢ ↑(padicNormE (q + r)) = max ↑(padicNormE q) ↑(padicNormE r)
state_after: p : ℕ
hp : Fact (Nat.Prime p)
q r : ℚ_[p]
h : ¬↑(padicNormE q) = ↑(padicNormE r)
this : padicNormE q ≠ padicNormE r
⊢ ↑(padicNormE (q + r)) = max ↑(padicNormE q) ↑(padicNormE r)

tactic: exact mod_cast add_eq_max_of_ne' this
state_before: p : ℕ
hp : Fact (Nat.Prime p)
q r : ℚ_[p]
h : ¬↑(padicNormE q) = ↑(padicNormE r)
this : padicNormE q ≠ padicNormE r
⊢ ↑(padicNormE (q + r)) = max ↑(padicNormE q) ↑(padicNormE r)
state_after: no goals
Theorem: Nat.count_injective
File: Mathlib/Data/Nat/Count.lean

tactic: by_contra! h : m ≠ n
state_before: p : ℕ → Prop
inst✝ : DecidablePred p
m n : ℕ
hm : p m
hn : p n
heq : count p m = count p n
⊢ m = n
state_after: p : ℕ → Prop
inst✝ : DecidablePred p
m n : ℕ
hm : p m
hn : p n
heq : count p m = count p n
h : m ≠ n
⊢ False

tactic: wlog hmn : m < n
state_before: p : ℕ → Prop
inst✝ : DecidablePred p
m n : ℕ
hm : p m
hn : p n
heq : count p m = count p n
h : m ≠ n
⊢ False
state_after: case inr
p : ℕ → Prop
inst✝ : DecidablePred p
m n : ℕ
hm : p m
hn : p n
heq : count p m = count p n
h : m ≠ n
this : ∀ {p : ℕ → Prop} [inst : DecidablePred p] {m n : ℕ}, p m → p n → count p m = count p n → m ≠ n → m < n → False
hmn : ¬m < n
⊢ False

p✝ : ℕ → Prop
inst✝¹ : DecidablePred p✝
p : ℕ → Prop
inst✝ : DecidablePred p
m n : ℕ
hm : p m
hn : p n
heq : count p m = count p n
h : m ≠ n
hmn : m < n
⊢ False

tactic: exact this hn hm heq.symm h.symm (h.lt_or_lt.resolve_left hmn)
state_before: case inr
p : ℕ → Prop
inst✝ : DecidablePred p
m n : ℕ
hm : p m
hn : p n
heq : count p m = count p n
h : m ≠ n
this : ∀ {p : ℕ → Prop} [inst : DecidablePred p] {m n : ℕ}, p m → p n → count p m = count p n → m ≠ n → m < n → False
hmn : ¬m < n
⊢ False
state_after: no goals

tactic: simpa [heq] using count_strict_mono hm hmn
state_before: p✝ : ℕ → Prop
inst✝¹ : DecidablePred p✝
p : ℕ → Prop
inst✝ : DecidablePred p
m n : ℕ
hm : p m
hn : p n
heq : count p m = count p n
h : m ≠ n
hmn : m < n
⊢ False
state_after: no goals
Theorem: LinearMap.toMatrix₂_mul
File: Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean

tactic: rw [LinearMap.toMatrix₂_compl₂ b₁ b₂, toMatrix_toLin]
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
M✝ : Type u_4
M₁ : Type u_5
M₂ : Type u_6
M₁' : Type u_7
M₂' : Type u_8
n : Type u_9
m : Type u_10
n' : Type u_11
m' : Type u_12
ι : Type u_13
inst✝¹⁶ : CommSemiring R
inst✝¹⁵ : AddCommMonoid M₁
inst✝¹⁴ : Module R M₁
inst✝¹³ : AddCommMonoid M₂
inst✝¹² : Module R M₂
inst✝¹¹ : DecidableEq n
inst✝¹⁰ : Fintype n
inst✝⁹ : DecidableEq m
inst✝⁸ : Fintype m
b₁ : Basis n R M₁
b₂ : Basis m R M₂
inst✝⁷ : AddCommMonoid M₁'
inst✝⁶ : Module R M₁'
inst✝⁵ : AddCommMonoid M₂'
inst✝⁴ : Module R M₂'
b₁' : Basis n' R M₁'
b₂' : Basis m' R M₂'
inst✝³ : Fintype n'
inst✝² : Fintype m'
inst✝¹ : DecidableEq n'
inst✝ : DecidableEq m'
B : M₁ →ₗ[R] M₂ →ₗ[R] R
M : Matrix m m' R
⊢ (toMatrix₂ b₁ b₂) B * M = (toMatrix₂ b₁ b₂') (B.compl₂ ((toLin b₂' b₂) M))
state_after: no goals
Theorem: zpow_right_strictMono
File: Mathlib/Algebra/Order/Group/Basic.lean

tactic: simp [← zpow_add, m.add_comm]
state_before: α : Type u_1
M : Type u_2
R : Type u_3
inst✝ : OrderedCommGroup α
m✝ n✝ : ℤ
a b : α
ha : 1 < a
m n : ℤ
h : m < n
⊢ a ^ m * a ^ (n - m) = a ^ n
state_after: no goals
Theorem: SimpleGraph.Subgraph.induce_union_connected
File: Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean

tactic: refine (sconn.sup tconn sintert).mono ?_ ?_
state_before: V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
H : G.Subgraph
s t : Set V
sconn : (H.induce s).Connected
tconn : (H.induce t).Connected
sintert : (s ⊓ t).Nonempty
⊢ (H.induce (s ∪ t)).Connected
state_after: case refine_1
V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
H : G.Subgraph
s t : Set V
sconn : (H.induce s).Connected
tconn : (H.induce t).Connected
sintert : (s ⊓ t).Nonempty
⊢ H.induce s ⊔ H.induce t ≤ H.induce (s ∪ t)

case refine_2
V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
H : G.Subgraph
s t : Set V
sconn : (H.induce s).Connected
tconn : (H.induce t).Connected
sintert : (s ⊓ t).Nonempty
⊢ (H.induce s ⊔ H.induce t).verts = (H.induce (s ∪ t)).verts

tactic: apply le_induce_union
state_before: case refine_1
V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
H : G.Subgraph
s t : Set V
sconn : (H.induce s).Connected
tconn : (H.induce t).Connected
sintert : (s ⊓ t).Nonempty
⊢ H.induce s ⊔ H.induce t ≤ H.induce (s ∪ t)
state_after: no goals

tactic: simp
state_before: case refine_2
V : Type u
V' : Type v
G : SimpleGraph V
G' : SimpleGraph V'
H : G.Subgraph
s t : Set V
sconn : (H.induce s).Connected
tconn : (H.induce t).Connected
sintert : (s ⊓ t).Nonempty
⊢ (H.induce s ⊔ H.induce t).verts = (H.induce (s ∪ t)).verts
state_after: no goals
Theorem: Finset.measurable_range_sup'
File: Mathlib/MeasureTheory/Order/Lattice.lean

tactic: simp_rw [← Nat.lt_succ_iff] at hf
state_before: M : Type u_1
inst✝³ : MeasurableSpace M
α : Type u_2
m : MeasurableSpace α
μ : Measure α
f✝ g : α → M
δ : Type u_3
inst✝² : MeasurableSpace δ
inst✝¹ : SemilatticeSup α
inst✝ : MeasurableSup₂ α
f : ℕ → δ → α
n : ℕ
hf : ∀ k ≤ n, Measurable (f k)
⊢ Measurable ((range (n + 1)).sup' ⋯ f)
state_after: M : Type u_1
inst✝³ : MeasurableSpace M
α : Type u_2
m : MeasurableSpace α
μ : Measure α
f✝ g : α → M
δ : Type u_3
inst✝² : MeasurableSpace δ
inst✝¹ : SemilatticeSup α
inst✝ : MeasurableSup₂ α
f : ℕ → δ → α
n : ℕ
hf : ∀ k < n.succ, Measurable (f k)
⊢ Measurable ((range (n + 1)).sup' ⋯ f)

tactic: refine Finset.measurable_sup' _ ?_
state_before: M : Type u_1
inst✝³ : MeasurableSpace M
α : Type u_2
m : MeasurableSpace α
μ : Measure α
f✝ g : α → M
δ : Type u_3
inst✝² : MeasurableSpace δ
inst✝¹ : SemilatticeSup α
inst✝ : MeasurableSup₂ α
f : ℕ → δ → α
n : ℕ
hf : ∀ k < n.succ, Measurable (f k)
⊢ Measurable ((range (n + 1)).sup' ⋯ f)
state_after: M : Type u_1
inst✝³ : MeasurableSpace M
α : Type u_2
m : MeasurableSpace α
μ : Measure α
f✝ g : α → M
δ : Type u_3
inst✝² : MeasurableSpace δ
inst✝¹ : SemilatticeSup α
inst✝ : MeasurableSup₂ α
f : ℕ → δ → α
n : ℕ
hf : ∀ k < n.succ, Measurable (f k)
⊢ ∀ n_1 ∈ range (n + 1), Measurable (f n_1)

tactic: simpa [Finset.mem_range]
state_before: M : Type u_1
inst✝³ : MeasurableSpace M
α : Type u_2
m : MeasurableSpace α
μ : Measure α
f✝ g : α → M
δ : Type u_3
inst✝² : MeasurableSpace δ
inst✝¹ : SemilatticeSup α
inst✝ : MeasurableSup₂ α
f : ℕ → δ → α
n : ℕ
hf : ∀ k < n.succ, Measurable (f k)
⊢ ∀ n_1 ∈ range (n + 1), Measurable (f n_1)
state_after: no goals
Theorem: WittVector.ghostFun_zero
File: Mathlib/RingTheory/WittVector/Basic.lean

tactic: ghost_fun_tac 0, ![]
state_before: p : ℕ
R : Type u_1
S : Type u_2
T : Type u_3
hp : Fact (Nat.Prime p)
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : CommRing T
α : Type u_4
β : Type u_5
x y : 𝕎 R
⊢ WittVector.ghostFun 0 = 0
state_after: no goals
Theorem: CategoryTheory.isConnected_of_equivalent
File: Mathlib/CategoryTheory/IsConnected.lean

tactic: infer_instance
state_before: J : Type u₁
inst✝³ : Category.{v₁, u₁} J
K✝ : Type u₂
inst✝² : Category.{v₂, u₂} K✝
K : Type u₂
inst✝¹ : Category.{v₂, u₂} K
e : J ≌ K
inst✝ : IsConnected J
⊢ Nonempty J
state_after: no goals
Theorem: sSup_mem_of_not_isSuccLimit
File: Mathlib/Order/SuccPred/CompleteLinearOrder.lean

tactic: obtain ⟨y, hy⟩ := not_forall_not.mp hlim
state_before: ι : Type u_1
α : Type u_2
inst✝ : CompleteLinearOrder α
s : Set α
f : ι → α
x : α
hlim : ¬IsSuccLimit (sSup s)
⊢ sSup s ∈ s
state_after: case intro
ι : Type u_1
α : Type u_2
inst✝ : CompleteLinearOrder α
s : Set α
f : ι → α
x : α
hlim : ¬IsSuccLimit (sSup s)
y : α
hy : y ⋖ sSup s
⊢ sSup s ∈ s

tactic: obtain ⟨i, his, hi⟩ := lt_sSup_iff.mp hy.lt
state_before: case intro
ι : Type u_1
α : Type u_2
inst✝ : CompleteLinearOrder α
s : Set α
f : ι → α
x : α
hlim : ¬IsSuccLimit (sSup s)
y : α
hy : y ⋖ sSup s
⊢ sSup s ∈ s
state_after: case intro.intro.intro
ι : Type u_1
α : Type u_2
inst✝ : CompleteLinearOrder α
s : Set α
f : ι → α
x : α
hlim : ¬IsSuccLimit (sSup s)
y : α
hy : y ⋖ sSup s
i : α
his : i ∈ s
hi : y < i
⊢ sSup s ∈ s

tactic: exact eq_of_le_of_not_lt (le_sSup his) (hy.2 hi) ▸ his
state_before: case intro.intro.intro
ι : Type u_1
α : Type u_2
inst✝ : CompleteLinearOrder α
s : Set α
f : ι → α
x : α
hlim : ¬IsSuccLimit (sSup s)
y : α
hy : y ⋖ sSup s
i : α
his : i ∈ s
hi : y < i
⊢ sSup s ∈ s
state_after: no goals
Theorem: List.concat_perm
File: .lake/packages/batteries/Batteries/Data/List/Perm.lean

tactic: simp
state_before: α : Type u_1
l : List α
a : α
⊢ l.concat a ~ a :: l
state_after: no goals
Theorem: Set.mapsTo_iff_exists_map_subtype
File: Mathlib/Data/Set/Function.lean

tactic: erw [hg ⟨x, hx⟩]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
s s₁ s₂ : Set α
t t₁ t₂ : Set β
p : Set γ
f f₁ f₂ f₃ : α → β
g✝ g₁ g₂ : β → γ
f' f₁' f₂' : β → α
g' : γ → β
a : α
b : β
x✝ : ∃ g, ∀ (x : ↑s), f ↑x = ↑(g x)
x : α
hx : x ∈ s
g : ↑s → ↑t
hg : ∀ (x : ↑s), f ↑x = ↑(g x)
⊢ f x ∈ t
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
s s₁ s₂ : Set α
t t₁ t₂ : Set β
p : Set γ
f f₁ f₂ f₃ : α → β
g✝ g₁ g₂ : β → γ
f' f₁' f₂' : β → α
g' : γ → β
a : α
b : β
x✝ : ∃ g, ∀ (x : ↑s), f ↑x = ↑(g x)
x : α
hx : x ∈ s
g : ↑s → ↑t
hg : ∀ (x : ↑s), f ↑x = ↑(g x)
⊢ ↑(g ⟨x, hx⟩) ∈ t

tactic: apply Subtype.coe_prop
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
s s₁ s₂ : Set α
t t₁ t₂ : Set β
p : Set γ
f f₁ f₂ f₃ : α → β
g✝ g₁ g₂ : β → γ
f' f₁' f₂' : β → α
g' : γ → β
a : α
b : β
x✝ : ∃ g, ∀ (x : ↑s), f ↑x = ↑(g x)
x : α
hx : x ∈ s
g : ↑s → ↑t
hg : ∀ (x : ↑s), f ↑x = ↑(g x)
⊢ ↑(g ⟨x, hx⟩) ∈ t
state_after: no goals
Theorem: Matroid.eq_freeOn_iff
File: Mathlib/Data/Matroid/Constructions.lean

tactic: refine ⟨?_, fun h ↦ ?_⟩
state_before: α : Type u_1
M : Matroid α
E B I X R J : Set α
⊢ M = freeOn E ↔ M.E = E ∧ M.Indep E
state_after: case refine_1
α : Type u_1
M : Matroid α
E B I X R J : Set α
⊢ M = freeOn E → M.E = E ∧ M.Indep E

case refine_2
α : Type u_1
M : Matroid α
E B I X R J : Set α
h : M.E = E ∧ M.Indep E
⊢ M = freeOn E

tactic: simp only [eq_iff_indep_iff_indep_forall, freeOn_ground, freeOn_indep_iff, h.1, true_and]
state_before: case refine_2
α : Type u_1
M : Matroid α
E B I X R J : Set α
h : M.E = E ∧ M.Indep E
⊢ M = freeOn E
state_after: case refine_2
α : Type u_1
M : Matroid α
E B I X R J : Set α
h : M.E = E ∧ M.Indep E
⊢ ∀ I ⊆ E, M.Indep I ↔ I ⊆ E

tactic: exact fun I hIX ↦ iff_of_true (h.2.subset hIX) hIX
state_before: case refine_2
α : Type u_1
M : Matroid α
E B I X R J : Set α
h : M.E = E ∧ M.Indep E
⊢ ∀ I ⊆ E, M.Indep I ↔ I ⊆ E
state_after: no goals

tactic: rintro rfl
state_before: case refine_1
α : Type u_1
M : Matroid α
E B I X R J : Set α
⊢ M = freeOn E → M.E = E ∧ M.Indep E
state_after: case refine_1
α : Type u_1
E B I X R J : Set α
⊢ (freeOn E).E = E ∧ (freeOn E).Indep E

tactic: simp [Subset.rfl]
state_before: case refine_1
α : Type u_1
E B I X R J : Set α
⊢ (freeOn E).E = E ∧ (freeOn E).Indep E
state_after: no goals
Theorem: SchwartzMap.norm_pow_mul_le_seminorm
File: Mathlib/Analysis/Distribution/SchwartzSpace.lean

tactic: have := SchwartzMap.le_seminorm 𝕜 k 0 f x₀
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
f : 𝓢(E, F)
k : ℕ
x₀ : E
⊢ ‖x₀‖ ^ k * ‖f x₀‖ ≤ (SchwartzMap.seminorm 𝕜 k 0) f
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
f : 𝓢(E, F)
k : ℕ
x₀ : E
this : ‖x₀‖ ^ k * ‖iteratedFDeriv ℝ 0 (⇑f) x₀‖ ≤ (SchwartzMap.seminorm 𝕜 k 0) f
⊢ ‖x₀‖ ^ k * ‖f x₀‖ ≤ (SchwartzMap.seminorm 𝕜 k 0) f

tactic: rwa [norm_iteratedFDeriv_zero] at this
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
f : 𝓢(E, F)
k : ℕ
x₀ : E
this : ‖x₀‖ ^ k * ‖iteratedFDeriv ℝ 0 (⇑f) x₀‖ ≤ (SchwartzMap.seminorm 𝕜 k 0) f
⊢ ‖x₀‖ ^ k * ‖f x₀‖ ≤ (SchwartzMap.seminorm 𝕜 k 0) f
state_after: no goals