1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: fderivWithin_inv'
File: Mathlib/Analysis/Calculus/FDeriv/Mul.lean

tactic: rw [DifferentiableAt.fderivWithin (differentiableAt_inv' hx) hxs]
state_before: 𝕜 : Type u_1
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
G : Type u_4
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace 𝕜 G
G' : Type u_5
inst✝⁴ : NormedAddCommGroup G'
inst✝³ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x✝ : E
s✝ t : Set E
L L₁ L₂ : Filter E
R : Type u_6
inst✝² : NormedDivisionRing R
inst✝¹ : NormedAlgebra 𝕜 R
inst✝ : CompleteSpace R
s : Set R
x : R
hx : x ≠ 0
hxs : UniqueDiffWithinAt 𝕜 s x
⊢ fderivWithin 𝕜 (fun x => x⁻¹) s x = -((mulLeftRight 𝕜 R) x⁻¹) x⁻¹
state_after: 𝕜 : Type u_1
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
G : Type u_4
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace 𝕜 G
G' : Type u_5
inst✝⁴ : NormedAddCommGroup G'
inst✝³ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x✝ : E
s✝ t : Set E
L L₁ L₂ : Filter E
R : Type u_6
inst✝² : NormedDivisionRing R
inst✝¹ : NormedAlgebra 𝕜 R
inst✝ : CompleteSpace R
s : Set R
x : R
hx : x ≠ 0
hxs : UniqueDiffWithinAt 𝕜 s x
⊢ fderiv 𝕜 Inv.inv x = -((mulLeftRight 𝕜 R) x⁻¹) x⁻¹

tactic: exact fderiv_inv' hx
state_before: 𝕜 : Type u_1
inst✝¹¹ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace 𝕜 F
G : Type u_4
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace 𝕜 G
G' : Type u_5
inst✝⁴ : NormedAddCommGroup G'
inst✝³ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x✝ : E
s✝ t : Set E
L L₁ L₂ : Filter E
R : Type u_6
inst✝² : NormedDivisionRing R
inst✝¹ : NormedAlgebra 𝕜 R
inst✝ : CompleteSpace R
s : Set R
x : R
hx : x ≠ 0
hxs : UniqueDiffWithinAt 𝕜 s x
⊢ fderiv 𝕜 Inv.inv x = -((mulLeftRight 𝕜 R) x⁻¹) x⁻¹
state_after: no goals
Theorem: FirstOrder.Language.Embedding.ofInjective_toHom
File: Mathlib/ModelTheory/Basic.lean

tactic: ext
state_before: L : Language
L' : Language
M : Type w
N : Type w'
inst✝⁴ : L.Structure M
inst✝³ : L.Structure N
P : Type u_1
inst✝² : L.Structure P
Q : Type u_2
inst✝¹ : L.Structure Q
inst✝ : L.IsAlgebraic
f : M →[L] N
hf : Function.Injective ⇑f
⊢ (ofInjective hf).toHom = f
state_after: case h
L : Language
L' : Language
M : Type w
N : Type w'
inst✝⁴ : L.Structure M
inst✝³ : L.Structure N
P : Type u_1
inst✝² : L.Structure P
Q : Type u_2
inst✝¹ : L.Structure Q
inst✝ : L.IsAlgebraic
f : M →[L] N
hf : Function.Injective ⇑f
x✝ : M
⊢ (ofInjective hf).toHom x✝ = f x✝

tactic: simp
state_before: case h
L : Language
L' : Language
M : Type w
N : Type w'
inst✝⁴ : L.Structure M
inst✝³ : L.Structure N
P : Type u_1
inst✝² : L.Structure P
Q : Type u_2
inst✝¹ : L.Structure Q
inst✝ : L.IsAlgebraic
f : M →[L] N
hf : Function.Injective ⇑f
x✝ : M
⊢ (ofInjective hf).toHom x✝ = f x✝
state_after: no goals
Theorem: Profinite.NobelingProof.GoodProducts.square_commutes
File: Mathlib/Topology/Category/Profinite/Nobeling.lean

tactic: ext l
state_before: I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
o : Ordinal.{u}
hC : IsClosed C
hsC : contained C (Order.succ o)
ho : o < Ordinal.type fun x x_1 => x < x_1
⊢ SumEval C ho ∘ Sum.inl = ⇑(ModuleCat.ofHom (πs C o)) ∘ eval (π C fun x => ord I x < o)
state_after: case h.h
I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
o : Ordinal.{u}
hC : IsClosed C
hsC : contained C (Order.succ o)
ho : o < Ordinal.type fun x x_1 => x < x_1
l : ↑(GoodProducts (π C fun x => ord I x < o))
x✝ : ↑C
⊢ ((SumEval C ho ∘ Sum.inl) l) x✝ = ((⇑(ModuleCat.ofHom (πs C o)) ∘ eval (π C fun x => ord I x < o)) l) x✝

tactic: dsimp [SumEval]
state_before: case h.h
I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
o : Ordinal.{u}
hC : IsClosed C
hsC : contained C (Order.succ o)
ho : o < Ordinal.type fun x x_1 => x < x_1
l : ↑(GoodProducts (π C fun x => ord I x < o))
x✝ : ↑C
⊢ ((SumEval C ho ∘ Sum.inl) l) x✝ = ((⇑(ModuleCat.ofHom (πs C o)) ∘ eval (π C fun x => ord I x < o)) l) x✝
state_after: case h.h
I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
o : Ordinal.{u}
hC : IsClosed C
hsC : contained C (Order.succ o)
ho : o < Ordinal.type fun x x_1 => x < x_1
l : ↑(GoodProducts (π C fun x => ord I x < o))
x✝ : ↑C
⊢ (Products.eval C ↑l) x✝ = (eval (π C fun x => ord I x < o) l) (ProjRestrict C (fun x => ord I x < o) x✝)

tactic: rw [← Products.eval_πs C (Products.prop_of_isGood  _ _ l.prop)]
state_before: case h.h
I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
o : Ordinal.{u}
hC : IsClosed C
hsC : contained C (Order.succ o)
ho : o < Ordinal.type fun x x_1 => x < x_1
l : ↑(GoodProducts (π C fun x => ord I x < o))
x✝ : ↑C
⊢ (Products.eval C ↑l) x✝ = (eval (π C fun x => ord I x < o) l) (ProjRestrict C (fun x => ord I x < o) x✝)
state_after: case h.h
I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
o : Ordinal.{u}
hC : IsClosed C
hsC : contained C (Order.succ o)
ho : o < Ordinal.type fun x x_1 => x < x_1
l : ↑(GoodProducts (π C fun x => ord I x < o))
x✝ : ↑C
⊢ ((πs C o) (Products.eval (π C fun x => ord I x < o) ↑l)) x✝ =
    (eval (π C fun x => ord I x < o) l) (ProjRestrict C (fun x => ord I x < o) x✝)

tactic: rfl
state_before: case h.h
I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
o : Ordinal.{u}
hC : IsClosed C
hsC : contained C (Order.succ o)
ho : o < Ordinal.type fun x x_1 => x < x_1
l : ↑(GoodProducts (π C fun x => ord I x < o))
x✝ : ↑C
⊢ ((πs C o) (Products.eval (π C fun x => ord I x < o) ↑l)) x✝ =
    (eval (π C fun x => ord I x < o) l) (ProjRestrict C (fun x => ord I x < o) x✝)
state_after: no goals
Theorem: Fin.add_one_le_of_lt
File: Mathlib/Data/Fin/Basic.lean

tactic: cases' a with a ha
state_before: n✝ m n : ℕ
a b : Fin (n + 1)
h : a < b
⊢ a + 1 ≤ b
state_after: case mk
n✝ m n : ℕ
b : Fin (n + 1)
a : ℕ
ha : a < n + 1
h : ⟨a, ha⟩ < b
⊢ ⟨a, ha⟩ + 1 ≤ b

tactic: cases' b with b hb
state_before: case mk
n✝ m n : ℕ
b : Fin (n + 1)
a : ℕ
ha : a < n + 1
h : ⟨a, ha⟩ < b
⊢ ⟨a, ha⟩ + 1 ≤ b
state_after: case mk.mk
n✝ m n a : ℕ
ha : a < n + 1
b : ℕ
hb : b < n + 1
h : ⟨a, ha⟩ < ⟨b, hb⟩
⊢ ⟨a, ha⟩ + 1 ≤ ⟨b, hb⟩

tactic: cases n
state_before: case mk.mk
n✝ m n a : ℕ
ha : a < n + 1
b : ℕ
hb : b < n + 1
h : ⟨a, ha⟩ < ⟨b, hb⟩
⊢ ⟨a, ha⟩ + 1 ≤ ⟨b, hb⟩
state_after: case mk.mk.zero
n m a b : ℕ
ha : a < 0 + 1
hb : b < 0 + 1
h : ⟨a, ha⟩ < ⟨b, hb⟩
⊢ ⟨a, ha⟩ + 1 ≤ ⟨b, hb⟩

case mk.mk.succ
n m a b n✝ : ℕ
ha : a < n✝ + 1 + 1
hb : b < n✝ + 1 + 1
h : ⟨a, ha⟩ < ⟨b, hb⟩
⊢ ⟨a, ha⟩ + 1 ≤ ⟨b, hb⟩

tactic: simp only [le_iff_val_le_val, val_add, lt_iff_val_lt_val, val_mk, val_one] at h ⊢
state_before: case mk.mk.succ
n m a b n✝ : ℕ
ha : a < n✝ + 1 + 1
hb : b < n✝ + 1 + 1
h : ⟨a, ha⟩ < ⟨b, hb⟩
⊢ ⟨a, ha⟩ + 1 ≤ ⟨b, hb⟩
state_after: case mk.mk.succ
n m a b n✝ : ℕ
ha : a < n✝ + 1 + 1
hb : b < n✝ + 1 + 1
h : a < b
⊢ (a + 1) % (n✝ + 1 + 1) ≤ b

tactic: rwa [Nat.mod_eq_of_lt, Nat.succ_le_iff]
state_before: case mk.mk.succ
n m a b n✝ : ℕ
ha : a < n✝ + 1 + 1
hb : b < n✝ + 1 + 1
h : a < b
⊢ (a + 1) % (n✝ + 1 + 1) ≤ b
state_after: case mk.mk.succ
n m a b n✝ : ℕ
ha : a < n✝ + 1 + 1
hb : b < n✝ + 1 + 1
h : a < b
⊢ a + 1 < n✝ + 1 + 1

tactic: rw [Nat.succ_lt_succ_iff]
state_before: case mk.mk.succ
n m a b n✝ : ℕ
ha : a < n✝ + 1 + 1
hb : b < n✝ + 1 + 1
h : a < b
⊢ a + 1 < n✝ + 1 + 1
state_after: case mk.mk.succ
n m a b n✝ : ℕ
ha : a < n✝ + 1 + 1
hb : b < n✝ + 1 + 1
h : a < b
⊢ a < n✝ + 1

tactic: exact h.trans_le (Nat.le_of_lt_succ hb)
state_before: case mk.mk.succ
n m a b n✝ : ℕ
ha : a < n✝ + 1 + 1
hb : b < n✝ + 1 + 1
h : a < b
⊢ a < n✝ + 1
state_after: no goals

tactic: simp only [Nat.zero_eq, Nat.zero_add, Nat.lt_one_iff] at ha hb
state_before: case mk.mk.zero
n m a b : ℕ
ha : a < 0 + 1
hb : b < 0 + 1
h : ⟨a, ha⟩ < ⟨b, hb⟩
⊢ ⟨a, ha⟩ + 1 ≤ ⟨b, hb⟩
state_after: case mk.mk.zero
n m a b : ℕ
ha✝ : a < 0 + 1
hb✝ : b < 0 + 1
h : ⟨a, ha✝⟩ < ⟨b, hb✝⟩
ha : a = 0
hb : b = 0
⊢ ⟨a, ha✝⟩ + 1 ≤ ⟨b, hb✝⟩

tactic: simp [ha, hb]
state_before: case mk.mk.zero
n m a b : ℕ
ha✝ : a < 0 + 1
hb✝ : b < 0 + 1
h : ⟨a, ha✝⟩ < ⟨b, hb✝⟩
ha : a = 0
hb : b = 0
⊢ ⟨a, ha✝⟩ + 1 ≤ ⟨b, hb✝⟩
state_after: no goals
Theorem: List.take_set_of_lt
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

tactic: rw [getElem?_take_eq_if, getElem?_take_eq_if]
state_before: α : Type u_1
a : α
n m : Nat
l : List α
h : m < n
i : Nat
⊢ (take m (l.set n a))[i]? = (take m l)[i]?
state_after: α : Type u_1
a : α
n m : Nat
l : List α
h : m < n
i : Nat
⊢ (if i < m then (l.set n a)[i]? else none) = if i < m then l[i]? else none

tactic: split
state_before: α : Type u_1
a : α
n m : Nat
l : List α
h : m < n
i : Nat
⊢ (if i < m then (l.set n a)[i]? else none) = if i < m then l[i]? else none
state_after: case isTrue
α : Type u_1
a : α
n m : Nat
l : List α
h : m < n
i : Nat
h✝ : i < m
⊢ (l.set n a)[i]? = l[i]?

case isFalse
α : Type u_1
a : α
n m : Nat
l : List α
h : m < n
i : Nat
h✝ : ¬i < m
⊢ none = none

tactic: next h' => rw [getElem?_set_ne (by omega)]
state_before: case isTrue
α : Type u_1
a : α
n m : Nat
l : List α
h : m < n
i : Nat
h✝ : i < m
⊢ (l.set n a)[i]? = l[i]?
state_after: no goals

tactic: rw [getElem?_set_ne (by omega)]
state_before: α : Type u_1
a : α
n m : Nat
l : List α
h : m < n
i : Nat
h' : i < m
⊢ (l.set n a)[i]? = l[i]?
state_after: no goals

tactic: omega
state_before: α : Type u_1
a : α
n m : Nat
l : List α
h : m < n
i : Nat
h' : i < m
⊢ n ≠ i
state_after: no goals

tactic: rfl
state_before: case isFalse
α : Type u_1
a : α
n m : Nat
l : List α
h : m < n
i : Nat
h✝ : ¬i < m
⊢ none = none
state_after: no goals
Theorem: Finset.sum_prod_piFinset
File: Mathlib/Algebra/BigOperators/Ring.lean

tactic: rw [← prod_univ_sum]
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✝² : CommSemiring α
inst✝¹ : DecidableEq ι
κ : Type u_6
inst✝ : Fintype ι
s : Finset κ
g : ι → κ → α
⊢ ∑ f ∈ piFinset fun x => s, ∏ i : ι, g i (f i) = ∏ i : ι, ∑ j ∈ s, g i j
state_after: no goals
Theorem: Nat.psub_eq_some
File: Mathlib/Data/Nat/PSub.lean

tactic: simp [eq_comm]
state_before: m k : ℕ
⊢ m.psub 0 = some k ↔ k + 0 = m
state_after: no goals

tactic: apply Option.bind_eq_some.trans
state_before: m n k : ℕ
⊢ m.psub (n + 1) = some k ↔ k + (n + 1) = m
state_after: m n k : ℕ
⊢ (∃ a, m.psub n = some a ∧ a.ppred = some k) ↔ k + (n + 1) = m

tactic: simp only [psub_eq_some, ppred_eq_some]
state_before: m n k : ℕ
⊢ (∃ a, m.psub n = some a ∧ a.ppred = some k) ↔ k + (n + 1) = m
state_after: m n k : ℕ
⊢ (∃ a, a + n = m ∧ k.succ = a) ↔ k + (n + 1) = m

tactic: simp [add_comm, add_left_comm]
state_before: m n k : ℕ
⊢ (∃ a, a + n = m ∧ k.succ = a) ↔ k + (n + 1) = m
state_after: no goals
Theorem: Composition.invEmbedding_comp
File: Mathlib/Combinatorics/Enumerative/Composition.lean

tactic: simp_rw [coe_invEmbedding, index_embedding, coe_embedding, add_tsub_cancel_left]
state_before: n : ℕ
c : Composition n
i : Fin c.length
j : Fin (c.blocksFun i)
⊢ ↑(c.invEmbedding ((c.embedding i) j)) = ↑j
state_after: no goals
Theorem: TopologicalSpace.productOfMemOpens_injective
File: Mathlib/Topology/ContinuousFunction/T0Sierpinski.lean

tactic: intro x1 x2 h
state_before: X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : T0Space X
⊢ Function.Injective ⇑(productOfMemOpens X)
state_after: X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : T0Space X
x1 x2 : X
h : (productOfMemOpens X) x1 = (productOfMemOpens X) x2
⊢ x1 = x2

tactic: apply Inseparable.eq
state_before: X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : T0Space X
x1 x2 : X
h : (productOfMemOpens X) x1 = (productOfMemOpens X) x2
⊢ x1 = x2
state_after: case h
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : T0Space X
x1 x2 : X
h : (productOfMemOpens X) x1 = (productOfMemOpens X) x2
⊢ Inseparable x1 x2

tactic: rw [← Inducing.inseparable_iff (productOfMemOpens_inducing X), h]
state_before: case h
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : T0Space X
x1 x2 : X
h : (productOfMemOpens X) x1 = (productOfMemOpens X) x2
⊢ Inseparable x1 x2
state_after: no goals
Theorem: Submodule.nontrivial_span_singleton
File: Mathlib/LinearAlgebra/Span.lean

tactic: use 0, ⟨x, Submodule.mem_span_singleton_self x⟩
state_before: R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁴ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝³ : AddCommMonoid M₂
inst✝² : Module R₂ M₂
F : Type u_8
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F σ₁₂ M M₂
s t : Set M
x : M
h : x ≠ 0
⊢ ∃ x_1 y, x_1 ≠ y
state_after: case h
R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁴ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝³ : AddCommMonoid M₂
inst✝² : Module R₂ M₂
F : Type u_8
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F σ₁₂ M M₂
s t : Set M
x : M
h : x ≠ 0
⊢ 0 ≠ ⟨x, ⋯⟩

tactic: intro H
state_before: case h
R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁴ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝³ : AddCommMonoid M₂
inst✝² : Module R₂ M₂
F : Type u_8
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F σ₁₂ M M₂
s t : Set M
x : M
h : x ≠ 0
⊢ 0 ≠ ⟨x, ⋯⟩
state_after: case h
R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁴ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝³ : AddCommMonoid M₂
inst✝² : Module R₂ M₂
F : Type u_8
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F σ₁₂ M M₂
s t : Set M
x : M
h : x ≠ 0
H : 0 = ⟨x, ⋯⟩
⊢ False

tactic: rw [eq_comm, Submodule.mk_eq_zero] at H
state_before: case h
R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁴ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝³ : AddCommMonoid M₂
inst✝² : Module R₂ M₂
F : Type u_8
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F σ₁₂ M M₂
s t : Set M
x : M
h : x ≠ 0
H : 0 = ⟨x, ⋯⟩
⊢ False
state_after: case h
R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁴ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝³ : AddCommMonoid M₂
inst✝² : Module R₂ M₂
F : Type u_8
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F σ₁₂ M M₂
s t : Set M
x : M
h : x ≠ 0
H : x = 0
⊢ False

tactic: exact h H
state_before: case h
R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁴ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝³ : AddCommMonoid M₂
inst✝² : Module R₂ M₂
F : Type u_8
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F σ₁₂ M M₂
s t : Set M
x : M
h : x ≠ 0
H : x = 0
⊢ False
state_after: no goals
Theorem: Relation.map_apply_apply
File: Mathlib/Logic/Relation.lean

tactic: simp [Relation.Map, hf.eq_iff, hg.eq_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r✝ : α → β → Prop
f : α → γ
g : β → δ
c : γ
d : δ
hf : Injective f
hg : Injective g
r : α → β → Prop
a : α
b : β
⊢ Relation.Map r f g (f a) (g b) ↔ r a b
state_after: no goals
Theorem: Finset.SupIndep.biUnion
File: Mathlib/Order/SupIndep.lean

tactic: rw [← sup_eq_biUnion]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝² : DistribLattice α
inst✝¹ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
inst✝ : DecidableEq ι
s : Finset ι'
g : ι' → Finset ι
f : ι → α
hs : s.SupIndep fun i => (g i).sup f
hg : ∀ i' ∈ s, (g i').SupIndep f
⊢ (s.biUnion g).SupIndep f
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝² : DistribLattice α
inst✝¹ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
inst✝ : DecidableEq ι
s : Finset ι'
g : ι' → Finset ι
f : ι → α
hs : s.SupIndep fun i => (g i).sup f
hg : ∀ i' ∈ s, (g i').SupIndep f
⊢ (s.sup g).SupIndep f

tactic: exact hs.sup hg
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝² : DistribLattice α
inst✝¹ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
inst✝ : DecidableEq ι
s : Finset ι'
g : ι' → Finset ι
f : ι → α
hs : s.SupIndep fun i => (g i).sup f
hg : ∀ i' ∈ s, (g i').SupIndep f
⊢ (s.sup g).SupIndep f
state_after: no goals
Theorem: MeasureTheory.exists_upperCrossingTime_eq
File: Mathlib/Probability/Martingale/Upcrossing.lean

tactic: by_contra h
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
a b : ℝ
f✝ : ℕ → Ω → ℝ
N✝ n m : ℕ
ω✝ : Ω
f : ℕ → Ω → ℝ
N : ℕ
ω : Ω
hab : a < b
⊢ ∃ n, upperCrossingTime a b f N n ω = N
state_after: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
a b : ℝ
f✝ : ℕ → Ω → ℝ
N✝ n m : ℕ
ω✝ : Ω
f : ℕ → Ω → ℝ
N : ℕ
ω : Ω
hab : a < b
h : ¬∃ n, upperCrossingTime a b f N n ω = N
⊢ False

tactic: push_neg at h
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
a b : ℝ
f✝ : ℕ → Ω → ℝ
N✝ n m : ℕ
ω✝ : Ω
f : ℕ → Ω → ℝ
N : ℕ
ω : Ω
hab : a < b
h : ¬∃ n, upperCrossingTime a b f N n ω = N
⊢ False
state_after: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
a b : ℝ
f✝ : ℕ → Ω → ℝ
N✝ n m : ℕ
ω✝ : Ω
f : ℕ → Ω → ℝ
N : ℕ
ω : Ω
hab : a < b
h : ∀ (n : ℕ), upperCrossingTime a b f N n ω ≠ N
⊢ False

tactic: have : StrictMono fun n => upperCrossingTime a b f N n ω :=
  strictMono_nat_of_lt_succ fun n => upperCrossingTime_lt_succ hab (h _)
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
a b : ℝ
f✝ : ℕ → Ω → ℝ
N✝ n m : ℕ
ω✝ : Ω
f : ℕ → Ω → ℝ
N : ℕ
ω : Ω
hab : a < b
h : ∀ (n : ℕ), upperCrossingTime a b f N n ω ≠ N
⊢ False
state_after: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
a b : ℝ
f✝ : ℕ → Ω → ℝ
N✝ n m : ℕ
ω✝ : Ω
f : ℕ → Ω → ℝ
N : ℕ
ω : Ω
hab : a < b
h : ∀ (n : ℕ), upperCrossingTime a b f N n ω ≠ N
this : StrictMono fun n => upperCrossingTime a b f N n ω
⊢ False

tactic: obtain ⟨_, ⟨k, rfl⟩, hk⟩ :
    ∃ (m : _) (_ : m ∈ Set.range fun n => upperCrossingTime a b f N n ω), N < m :=
  ⟨upperCrossingTime a b f N (N + 1) ω, ⟨N + 1, rfl⟩,
    lt_of_lt_of_le N.lt_succ_self (StrictMono.id_le this (N + 1))⟩
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
a b : ℝ
f✝ : ℕ → Ω → ℝ
N✝ n m : ℕ
ω✝ : Ω
f : ℕ → Ω → ℝ
N : ℕ
ω : Ω
hab : a < b
h : ∀ (n : ℕ), upperCrossingTime a b f N n ω ≠ N
this : StrictMono fun n => upperCrossingTime a b f N n ω
⊢ False
state_after: case intro.intro.intro
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
a b : ℝ
f✝ : ℕ → Ω → ℝ
N✝ n m : ℕ
ω✝ : Ω
f : ℕ → Ω → ℝ
N : ℕ
ω : Ω
hab : a < b
h : ∀ (n : ℕ), upperCrossingTime a b f N n ω ≠ N
this : StrictMono fun n => upperCrossingTime a b f N n ω
k : ℕ
hk : N < (fun n => upperCrossingTime a b f N n ω) k
⊢ False

tactic: exact not_le.2 hk upperCrossingTime_le
state_before: case intro.intro.intro
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
a b : ℝ
f✝ : ℕ → Ω → ℝ
N✝ n m : ℕ
ω✝ : Ω
f : ℕ → Ω → ℝ
N : ℕ
ω : Ω
hab : a < b
h : ∀ (n : ℕ), upperCrossingTime a b f N n ω ≠ N
this : StrictMono fun n => upperCrossingTime a b f N n ω
k : ℕ
hk : N < (fun n => upperCrossingTime a b f N n ω) k
⊢ False
state_after: no goals
Theorem: SimpleGraph.ComponentCompl.subset_hom
File: Mathlib/Combinatorics/SimpleGraph/Ends/Defs.lean

tactic: rintro c ⟨cL, rfl⟩
state_before: V : Type u
G : SimpleGraph V
K L L' M : Set V
C : G.ComponentCompl L
h : K ⊆ L
⊢ ↑C ⊆ ↑(hom h C)
state_after: case intro
V : Type u
G : SimpleGraph V
K L L' M : Set V
h : K ⊆ L
c : V
cL : c ∉ L
⊢ c ∈ ↑(hom h (G.componentComplMk cL))

tactic: exact ⟨fun h' => cL (h h'), rfl⟩
state_before: case intro
V : Type u
G : SimpleGraph V
K L L' M : Set V
h : K ⊆ L
c : V
cL : c ∉ L
⊢ c ∈ ↑(hom h (G.componentComplMk cL))
state_after: no goals
Theorem: collinear_singleton
File: Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean

tactic: rw [collinear_iff_rank_le_one, vectorSpan_singleton]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p : P
⊢ Collinear k {p}
state_after: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p : P
⊢ Module.rank k ↥⊥ ≤ 1

tactic: simp
state_before: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
p : P
⊢ Module.rank k ↥⊥ ≤ 1
state_after: no goals
Theorem: isInvariant_iff_image
File: Mathlib/Dynamics/Flow.lean

tactic: simp_rw [IsInvariant, mapsTo']
state_before: τ : Type u_1
α : Type u_2
ϕ : τ → α → α
s : Set α
⊢ IsInvariant ϕ s ↔ ∀ (t : τ), ϕ t '' s ⊆ s
state_after: no goals
Theorem: CategoryTheory.Localization.Preadditive.add_eq
File: Mathlib/CategoryTheory/Localization/CalculusOfFractions/Preadditive.lean

tactic: apply add_eq_add
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_4, u_1} C
inst✝³ : Category.{u_3, u_2} D
inst✝² : Preadditive C
L : C ⥤ D
W : MorphismProperty C
inst✝¹ : L.IsLocalization W
inst✝ : W.HasLeftCalculusOfFractions
X Y Z : C
X' Y' Z' : D
eX : L.obj X ≅ X'
eY : L.obj Y ≅ Y'
eZ : L.obj Z ≅ Z'
f₁ f₂ : X' ⟶ Y'
⊢ f₁ + f₂ = add W eX eY f₁ f₂
state_after: no goals