1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.ShortComplex.exact_and_mono_f_iff_f_is_kernel
File: Mathlib/Algebra/Homology/ShortComplex/Exact.lean

tactic: constructor
state_before: C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.161982, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : Balanced C
inst✝ : S.HasHomology
⊢ S.Exact ∧ Mono S.f ↔ Nonempty (IsLimit (KernelFork.ofι S.f ⋯))
state_after: case mp
C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.161982, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : Balanced C
inst✝ : S.HasHomology
⊢ S.Exact ∧ Mono S.f → Nonempty (IsLimit (KernelFork.ofι S.f ⋯))

case mpr
C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.161982, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : Balanced C
inst✝ : S.HasHomology
⊢ Nonempty (IsLimit (KernelFork.ofι S.f ⋯)) → S.Exact ∧ Mono S.f

tactic: intro ⟨hS, _⟩
state_before: case mp
C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.161982, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : Balanced C
inst✝ : S.HasHomology
⊢ S.Exact ∧ Mono S.f → Nonempty (IsLimit (KernelFork.ofι S.f ⋯))
state_after: case mp
C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.161982, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : Balanced C
inst✝ : S.HasHomology
hS : S.Exact
right✝ : Mono S.f
⊢ Nonempty (IsLimit (KernelFork.ofι S.f ⋯))

tactic: exact ⟨hS.fIsKernel⟩
state_before: case mp
C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.161982, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : Balanced C
inst✝ : S.HasHomology
hS : S.Exact
right✝ : Mono S.f
⊢ Nonempty (IsLimit (KernelFork.ofι S.f ⋯))
state_after: no goals

tactic: intro ⟨hS⟩
state_before: case mpr
C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.161982, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : Balanced C
inst✝ : S.HasHomology
⊢ Nonempty (IsLimit (KernelFork.ofι S.f ⋯)) → S.Exact ∧ Mono S.f
state_after: case mpr
C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.161982, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : Balanced C
inst✝ : S.HasHomology
hS : IsLimit (KernelFork.ofι S.f ⋯)
⊢ S.Exact ∧ Mono S.f

tactic: exact ⟨S.exact_of_f_is_kernel hS, mono_of_isLimit_fork hS⟩
state_before: case mpr
C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.161982, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : Balanced C
inst✝ : S.HasHomology
hS : IsLimit (KernelFork.ofι S.f ⋯)
⊢ S.Exact ∧ Mono S.f
state_after: no goals
Theorem: nhds_ne_subtype_eq_bot_iff
File: Mathlib/Topology/Constructions.lean

tactic: rw [← nhdsWithin_subtype_eq_bot_iff, preimage_compl, ← image_singleton,
  Subtype.coe_injective.preimage_image]
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝ : TopologicalSpace X
S : Set X
x : ↑S
⊢ 𝓝[≠] x = ⊥ ↔ 𝓝[≠] ↑x ⊓ 𝓟 S = ⊥
state_after: no goals
Theorem: Quiver.Path.heq_of_cons_eq_cons
File: Mathlib/Combinatorics/Quiver/Path.lean

tactic: injection h
state_before: V : Type u
inst✝ : Quiver V
a b c d : V
p : Path a b
p' : Path a c
e : b ⟶ d
e' : c ⟶ d
h : p.cons e = p'.cons e'
⊢ HEq p p'
state_after: no goals
Theorem: OpenEmbedding.singleton_smoothManifoldWithCorners
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: simp
state_before: 𝕜 : Type u_1
inst✝⁵ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
H : Type u_3
inst✝² : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹ : TopologicalSpace M
inst✝ : Nonempty M
f : M → H
h : OpenEmbedding f
⊢ (toPartialHomeomorph f h).source = univ
state_after: no goals
Theorem: MeasureTheory.OuterMeasure.map_ofFunction_le
File: Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean

tactic: rw [map_apply]
state_before: α : Type u_1
m : Set α → ℝ≥0∞
m_empty : m ∅ = 0
β : Type u_2
f : α → β
s : Set β
⊢ ((map f) (OuterMeasure.ofFunction m m_empty)) s ≤ m (f ⁻¹' s)
state_after: α : Type u_1
m : Set α → ℝ≥0∞
m_empty : m ∅ = 0
β : Type u_2
f : α → β
s : Set β
⊢ (OuterMeasure.ofFunction m m_empty) (f ⁻¹' s) ≤ m (f ⁻¹' s)

tactic: apply ofFunction_le
state_before: α : Type u_1
m : Set α → ℝ≥0∞
m_empty : m ∅ = 0
β : Type u_2
f : α → β
s : Set β
⊢ (OuterMeasure.ofFunction m m_empty) (f ⁻¹' s) ≤ m (f ⁻¹' s)
state_after: no goals
Theorem: FirstOrder.Language.Term.relabel_relabel
File: Mathlib/ModelTheory/Syntax.lean

tactic: induction' t with _ _ _ _ ih
state_before: L : Language
L' : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
α : Type u'
β : Type v'
γ : Type u_3
f : α → β
g : β → γ
t : L.Term α
⊢ relabel g (relabel f t) = relabel (g ∘ f) t
state_after: case var
L : Language
L' : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
α : Type u'
β : Type v'
γ : Type u_3
f : α → β
g : β → γ
a✝ : α
⊢ relabel g (relabel f (var a✝)) = relabel (g ∘ f) (var a✝)

case func
L : Language
L' : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
α : Type u'
β : Type v'
γ : Type u_3
f : α → β
g : β → γ
l✝ : ℕ
_f✝ : L.Functions l✝
_ts✝ : Fin l✝ → L.Term α
ih : ∀ (a : Fin l✝), relabel g (relabel f (_ts✝ a)) = relabel (g ∘ f) (_ts✝ a)
⊢ relabel g (relabel f (func _f✝ _ts✝)) = relabel (g ∘ f) (func _f✝ _ts✝)

tactic: rfl
state_before: case var
L : Language
L' : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
α : Type u'
β : Type v'
γ : Type u_3
f : α → β
g : β → γ
a✝ : α
⊢ relabel g (relabel f (var a✝)) = relabel (g ∘ f) (var a✝)
state_after: no goals

tactic: simp [ih]
state_before: case func
L : Language
L' : Language
M : Type w
N : Type u_1
P : Type u_2
inst✝² : L.Structure M
inst✝¹ : L.Structure N
inst✝ : L.Structure P
α : Type u'
β : Type v'
γ : Type u_3
f : α → β
g : β → γ
l✝ : ℕ
_f✝ : L.Functions l✝
_ts✝ : Fin l✝ → L.Term α
ih : ∀ (a : Fin l✝), relabel g (relabel f (_ts✝ a)) = relabel (g ∘ f) (_ts✝ a)
⊢ relabel g (relabel f (func _f✝ _ts✝)) = relabel (g ∘ f) (func _f✝ _ts✝)
state_after: no goals
Theorem: Primrec.option_some
File: Mathlib/Computability/Primrec.lean

tactic: cases @decode α _ n <;> simp
state_before: α : Type u_1
β : Type u_2
σ : Type u_3
inst✝² : Primcodable α
inst✝¹ : Primcodable β
inst✝ : Primcodable σ
n : ℕ
⊢ (Nat.casesOn (encode (decode n)) 0 fun n => n.succ.succ) = encode (Option.map some (decode n))
state_after: no goals
Theorem: Polynomial.addHom_ext
File: Mathlib/Algebra/Polynomial/Basic.lean

tactic: rintro p ⟨n, a, rfl⟩
state_before: R : Type u
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q : R[X]
M : Type u_1
inst✝ : AddMonoid M
f g : R[X] →+ M
h : ∀ (n : ℕ) (a : R), f ((monomial n) a) = g ((monomial n) a)
⊢ Set.EqOn ⇑f ⇑g {p | ∃ n a, p = (monomial n) a}
state_after: case intro.intro
R : Type u
a✝ b : R
m n✝ : ℕ
inst✝¹ : Semiring R
p q : R[X]
M : Type u_1
inst✝ : AddMonoid M
f g : R[X] →+ M
h : ∀ (n : ℕ) (a : R), f ((monomial n) a) = g ((monomial n) a)
n : ℕ
a : R
⊢ f ((monomial n) a) = g ((monomial n) a)

tactic: exact h n a
state_before: case intro.intro
R : Type u
a✝ b : R
m n✝ : ℕ
inst✝¹ : Semiring R
p q : R[X]
M : Type u_1
inst✝ : AddMonoid M
f g : R[X] →+ M
h : ∀ (n : ℕ) (a : R), f ((monomial n) a) = g ((monomial n) a)
n : ℕ
a : R
⊢ f ((monomial n) a) = g ((monomial n) a)
state_after: no goals
Theorem: CochainComplex.mappingCone.liftCochain_snd
File: Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean

tactic: simp [liftCochain]
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
K : CochainComplex C ℤ
n m : ℤ
α : Cochain K F m
β : Cochain K G n
h : n + 1 = m
⊢ (liftCochain φ α β h).comp (snd φ) ⋯ = β
state_after: no goals
Theorem: Ordinal.lt_one_iff_zero
File: Mathlib/SetTheory/Ordinal/Basic.lean

tactic: simpa using @lt_succ_bot_iff _ _ _ a _ _
state_before: α : Type u
β : Type u_1
γ : Type u_2
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a : Ordinal.{u_3}
⊢ a < 1 ↔ a = 0
state_after: no goals
Theorem: Polynomial.reflect_C_mul
File: Mathlib/Algebra/Polynomial/Reverse.lean

tactic: ext
state_before: R : Type u_1
inst✝ : Semiring R
f✝ f : R[X]
r : R
N : ℕ
⊢ reflect N (C r * f) = C r * reflect N f
state_after: case a
R : Type u_1
inst✝ : Semiring R
f✝ f : R[X]
r : R
N n✝ : ℕ
⊢ (reflect N (C r * f)).coeff n✝ = (C r * reflect N f).coeff n✝

tactic: simp only [coeff_reflect, coeff_C_mul]
state_before: case a
R : Type u_1
inst✝ : Semiring R
f✝ f : R[X]
r : R
N n✝ : ℕ
⊢ (reflect N (C r * f)).coeff n✝ = (C r * reflect N f).coeff n✝
state_after: no goals
Theorem: Int.zero_le_ofNat
File: Mathlib/Data/Int/Defs.lean

tactic: rw [Int.zero_add]
state_before: a b c d m n✝ : ℤ
n : ℕ
⊢ 0 + ↑n = ofNat n
state_after: a b c d m n✝ : ℤ
n : ℕ
⊢ ↑n = ofNat n

tactic: rfl
state_before: a b c d m n✝ : ℤ
n : ℕ
⊢ ↑n = ofNat n
state_after: no goals
Theorem: Commute.mul_inv_cancel_assoc
File: Mathlib/Algebra/Group/Commute/Defs.lean

tactic: rw [← mul_assoc, h.mul_inv_cancel]
state_before: G : Type u_1
M : Type u_2
S : Type u_3
inst✝ : Group G
a b : G
h : Commute a b
⊢ a * (b * a⁻¹) = b
state_after: no goals
Theorem: continuousWithinAt_dslope_of_ne
File: Mathlib/Analysis/Calculus/Dslope.lean

tactic: refine ⟨ContinuousWithinAt.of_dslope, fun hc => ?_⟩
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
a b : 𝕜
s : Set 𝕜
h : b ≠ a
⊢ ContinuousWithinAt (dslope f a) s b ↔ ContinuousWithinAt f s b
state_after: 𝕜 : Type u_1
E : Type u_2
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
a b : 𝕜
s : Set 𝕜
h : b ≠ a
hc : ContinuousWithinAt f s b
⊢ ContinuousWithinAt (dslope f a) s b

tactic: simp only [dslope, continuousWithinAt_update_of_ne h]
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
a b : 𝕜
s : Set 𝕜
h : b ≠ a
hc : ContinuousWithinAt f s b
⊢ ContinuousWithinAt (dslope f a) s b
state_after: 𝕜 : Type u_1
E : Type u_2
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
a b : 𝕜
s : Set 𝕜
h : b ≠ a
hc : ContinuousWithinAt f s b
⊢ ContinuousWithinAt (slope f a) s b

tactic: exact ((continuousWithinAt_id.sub continuousWithinAt_const).inv₀ (sub_ne_zero.2 h)).smul
  (hc.sub continuousWithinAt_const)
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
a b : 𝕜
s : Set 𝕜
h : b ≠ a
hc : ContinuousWithinAt f s b
⊢ ContinuousWithinAt (slope f a) s b
state_after: no goals
Theorem: Filter.IsBoundedUnder.bddAbove_range_of_cofinite
File: Mathlib/Order/LiminfLimsup.lean

tactic: rcases hf with ⟨b, hb⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
r : α → α → Prop
f✝ g : Filter α
inst✝¹ : Preorder β
inst✝ : IsDirected β fun x x_1 => x ≤ x_1
f : α → β
hf : IsBoundedUnder (fun x x_1 => x ≤ x_1) cofinite f
⊢ BddAbove (range f)
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
r : α → α → Prop
f✝ g : Filter α
inst✝¹ : Preorder β
inst✝ : IsDirected β fun x x_1 => x ≤ x_1
f : α → β
b : β
hb : ∀ᶠ (x : β) in map f cofinite, (fun x x_1 => x ≤ x_1) x b
⊢ BddAbove (range f)

tactic: haveI : Nonempty β := ⟨b⟩
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
r : α → α → Prop
f✝ g : Filter α
inst✝¹ : Preorder β
inst✝ : IsDirected β fun x x_1 => x ≤ x_1
f : α → β
b : β
hb : ∀ᶠ (x : β) in map f cofinite, (fun x x_1 => x ≤ x_1) x b
⊢ BddAbove (range f)
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
r : α → α → Prop
f✝ g : Filter α
inst✝¹ : Preorder β
inst✝ : IsDirected β fun x x_1 => x ≤ x_1
f : α → β
b : β
hb : ∀ᶠ (x : β) in map f cofinite, (fun x x_1 => x ≤ x_1) x b
this : Nonempty β
⊢ BddAbove (range f)

tactic: rw [← image_univ, ← union_compl_self { x | f x ≤ b }, image_union, bddAbove_union]
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
r : α → α → Prop
f✝ g : Filter α
inst✝¹ : Preorder β
inst✝ : IsDirected β fun x x_1 => x ≤ x_1
f : α → β
b : β
hb : ∀ᶠ (x : β) in map f cofinite, (fun x x_1 => x ≤ x_1) x b
this : Nonempty β
⊢ BddAbove (range f)
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
r : α → α → Prop
f✝ g : Filter α
inst✝¹ : Preorder β
inst✝ : IsDirected β fun x x_1 => x ≤ x_1
f : α → β
b : β
hb : ∀ᶠ (x : β) in map f cofinite, (fun x x_1 => x ≤ x_1) x b
this : Nonempty β
⊢ BddAbove (f '' {x | f x ≤ b}) ∧ BddAbove (f '' {x | f x ≤ b}ᶜ)

tactic: exact ⟨⟨b, forall_mem_image.2 fun x => id⟩, (hb.image f).bddAbove⟩
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
r : α → α → Prop
f✝ g : Filter α
inst✝¹ : Preorder β
inst✝ : IsDirected β fun x x_1 => x ≤ x_1
f : α → β
b : β
hb : ∀ᶠ (x : β) in map f cofinite, (fun x x_1 => x ≤ x_1) x b
this : Nonempty β
⊢ BddAbove (f '' {x | f x ≤ b}) ∧ BddAbove (f '' {x | f x ≤ b}ᶜ)
state_after: no goals
Theorem: Matrix.zero_mul
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
M : Matrix m n α
⊢ 0 * M = 0
state_after: case a
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
M : Matrix m n α
i✝ : l
j✝ : n
⊢ (0 * M) i✝ j✝ = 0 i✝ j✝

tactic: apply zero_dotProduct
state_before: case a
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
M : Matrix m n α
i✝ : l
j✝ : n
⊢ (0 * M) i✝ j✝ = 0 i✝ j✝
state_after: no goals
Theorem: Submonoid.LocalizationWithZeroMap.isLeftRegular_of_le_isCancelMulZero
File: Mathlib/GroupTheory/MonoidLocalization.lean

tactic: have : IsLeftCancelMulZero N :=
  leftCancelMulZero_of_le_isLeftRegular f (fun x h' => (h h').left)
state_before: M : Type u_1
inst✝³ : CommMonoidWithZero M
S : Submonoid M
N : Type u_2
inst✝² : CommMonoidWithZero N
P : Type u_3
inst✝¹ : CommMonoidWithZero P
f : S.LocalizationWithZeroMap N
inst✝ : IsCancelMulZero M
h : ∀ ⦃x : M⦄, x ∈ S → IsRegular x
⊢ IsCancelMulZero N
state_after: M : Type u_1
inst✝³ : CommMonoidWithZero M
S : Submonoid M
N : Type u_2
inst✝² : CommMonoidWithZero N
P : Type u_3
inst✝¹ : CommMonoidWithZero P
f : S.LocalizationWithZeroMap N
inst✝ : IsCancelMulZero M
h : ∀ ⦃x : M⦄, x ∈ S → IsRegular x
this : IsLeftCancelMulZero N
⊢ IsCancelMulZero N

tactic: exact IsLeftCancelMulZero.to_isCancelMulZero
state_before: M : Type u_1
inst✝³ : CommMonoidWithZero M
S : Submonoid M
N : Type u_2
inst✝² : CommMonoidWithZero N
P : Type u_3
inst✝¹ : CommMonoidWithZero P
f : S.LocalizationWithZeroMap N
inst✝ : IsCancelMulZero M
h : ∀ ⦃x : M⦄, x ∈ S → IsRegular x
this : IsLeftCancelMulZero N
⊢ IsCancelMulZero N
state_after: no goals
Theorem: IntermediateField.fieldRange_comp_val
File: Mathlib/FieldTheory/Adjoin.lean

tactic: rw [toSubalgebra_map, AlgHom.fieldRange_toSubalgebra, AlgHom.range_comp, range_val]
state_before: F : Type u_1
inst✝⁴ : Field F
E : Type u_2
inst✝³ : Field E
inst✝² : Algebra F E
K : Type u_3
inst✝¹ : Field K
inst✝ : Algebra F K
L : IntermediateField F E
f : E →ₐ[F] K
⊢ (f.comp L.val).fieldRange.toSubalgebra = (map f L).toSubalgebra
state_after: no goals
Theorem: Matrix.IsSymm.zpow
File: Mathlib/LinearAlgebra/Matrix/ZPow.lean

tactic: rw [IsSymm, transpose_zpow, h]
state_before: n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
h : A.IsSymm
k : ℤ
⊢ (A ^ k).IsSymm
state_after: no goals
Theorem: Fin.succAbove_lt_iff_castSucc_lt
File: Mathlib/Data/Fin/Basic.lean

tactic: cases' castSucc_lt_or_lt_succ p i with H H
state_before: n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
⊢ p.succAbove i < p ↔ i.castSucc < p
state_after: case inl
n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
H : i.castSucc < p
⊢ p.succAbove i < p ↔ i.castSucc < p

case inr
n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
H : p < i.succ
⊢ p.succAbove i < p ↔ i.castSucc < p

tactic: rwa [iff_true_right H, succAbove_of_castSucc_lt _ _ H]
state_before: case inl
n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
H : i.castSucc < p
⊢ p.succAbove i < p ↔ i.castSucc < p
state_after: no goals

tactic: rw [castSucc_lt_iff_succ_le, iff_false_right (Fin.not_le.2 H), succAbove_of_lt_succ _ _ H]
state_before: case inr
n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
H : p < i.succ
⊢ p.succAbove i < p ↔ i.castSucc < p
state_after: case inr
n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
H : p < i.succ
⊢ ¬i.succ < p

tactic: exact Fin.not_lt.2 $ Fin.le_of_lt H
state_before: case inr
n m : ℕ
p✝ : Fin (n + 1)
i✝ j : Fin n
p : Fin (n + 1)
i : Fin n
H : p < i.succ
⊢ ¬i.succ < p
state_after: no goals
Theorem: CategoryTheory.ComposableArrows.homMk₅_app_three
File: Mathlib/CategoryTheory/ComposableArrows.lean

tactic: valid
state_before: C : Type u_1
inst✝ : Category.{?u.421911, u_1} C
n m : ℕ
F G : ComposableArrows C n
f g : ComposableArrows C 5
app₀ : f.obj' 0 ⋯ ⟶ g.obj' 0 ⋯
app₁ : f.obj' 1 ⋯ ⟶ g.obj' 1 ⋯
app₂ : f.obj' 2 ⋯ ⟶ g.obj' 2 ⋯
app₃ : f.obj' 3 ⋯ ⟶ g.obj' 3 ⋯
app₄ : f.obj' 4 ⋯ ⟶ g.obj' 4 ⋯
app₅ : f.obj' 5 ⋯ ⟶ g.obj' 5 ⋯
w₀ : f.map' 0 1 ⋯ ⋯ ≫ app₁ = app₀ ≫ g.map' 0 1 ⋯ ⋯
w₁ : f.map' 1 2 ⋯ ⋯ ≫ app₂ = app₁ ≫ g.map' 1 2 ⋯ ⋯
w₂ : f.map' 2 3 ⋯ ⋯ ≫ app₃ = app₂ ≫ g.map' 2 3 ⋯ ⋯
w₃ : f.map' 3 4 ⋯ ⋯ ≫ app₄ = app₃ ≫ g.map' 3 4 ⋯ ⋯
w₄ : f.map' 4 5 ⋯ ⋯ ≫ app₅ = app₄ ≫ g.map' 4 5 ⋯ ⋯
⊢ 3 < 5 + 1
state_after: no goals
Theorem: PartENat.add_top
File: Mathlib/Data/Nat/PartENat.lean

tactic: rw [add_comm, top_add]
state_before: x : PartENat
⊢ x + ⊤ = ⊤
state_after: no goals
Theorem: LSeriesSummable.le_const_mul_rpow
File: Mathlib/NumberTheory/LSeries/Basic.lean

tactic: replace h := h.norm
state_before: f : ℕ → ℂ
s : ℂ
h : LSeriesSummable f s
⊢ ∃ C, ∀ (n : ℕ), n ≠ 0 → ‖f n‖ ≤ C * ↑n ^ s.re
state_after: f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
⊢ ∃ C, ∀ (n : ℕ), n ≠ 0 → ‖f n‖ ≤ C * ↑n ^ s.re

tactic: by_contra! H
state_before: f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
⊢ ∃ C, ∀ (n : ℕ), n ≠ 0 → ‖f n‖ ≤ C * ↑n ^ s.re
state_after: f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
H : ∀ (C : ℝ), ∃ n, n ≠ 0 ∧ C * ↑n ^ s.re < ‖f n‖
⊢ False

tactic: obtain ⟨n, hn₀, hn⟩ := H (tsum fun n ↦ ‖term f s n‖)
state_before: f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
H : ∀ (C : ℝ), ∃ n, n ≠ 0 ∧ C * ↑n ^ s.re < ‖f n‖
⊢ False
state_after: case intro.intro
f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
H : ∀ (C : ℝ), ∃ n, n ≠ 0 ∧ C * ↑n ^ s.re < ‖f n‖
n : ℕ
hn₀ : n ≠ 0
hn : (∑' (n : ℕ), ‖term f s n‖) * ↑n ^ s.re < ‖f n‖
⊢ False

tactic: have := le_tsum h n fun _ _ ↦ norm_nonneg _
state_before: case intro.intro
f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
H : ∀ (C : ℝ), ∃ n, n ≠ 0 ∧ C * ↑n ^ s.re < ‖f n‖
n : ℕ
hn₀ : n ≠ 0
hn : (∑' (n : ℕ), ‖term f s n‖) * ↑n ^ s.re < ‖f n‖
⊢ False
state_after: case intro.intro
f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
H : ∀ (C : ℝ), ∃ n, n ≠ 0 ∧ C * ↑n ^ s.re < ‖f n‖
n : ℕ
hn₀ : n ≠ 0
hn : (∑' (n : ℕ), ‖term f s n‖) * ↑n ^ s.re < ‖f n‖
this : ‖term f s n‖ ≤ ∑' (i : ℕ), ‖term f s i‖
⊢ False

tactic: rw [norm_term_eq, if_neg hn₀,
  div_le_iff <| Real.rpow_pos_of_pos (Nat.cast_pos.mpr <| Nat.pos_of_ne_zero hn₀) _] at this
state_before: case intro.intro
f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
H : ∀ (C : ℝ), ∃ n, n ≠ 0 ∧ C * ↑n ^ s.re < ‖f n‖
n : ℕ
hn₀ : n ≠ 0
hn : (∑' (n : ℕ), ‖term f s n‖) * ↑n ^ s.re < ‖f n‖
this : ‖term f s n‖ ≤ ∑' (i : ℕ), ‖term f s i‖
⊢ False
state_after: case intro.intro
f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
H : ∀ (C : ℝ), ∃ n, n ≠ 0 ∧ C * ↑n ^ s.re < ‖f n‖
n : ℕ
hn₀ : n ≠ 0
hn : (∑' (n : ℕ), ‖term f s n‖) * ↑n ^ s.re < ‖f n‖
this : ‖f n‖ ≤ (∑' (i : ℕ), ‖term f s i‖) * ↑n ^ s.re
⊢ False

tactic: exact (this.trans_lt hn).false.elim
state_before: case intro.intro
f : ℕ → ℂ
s : ℂ
h : Summable fun x => ‖term f s x‖
H : ∀ (C : ℝ), ∃ n, n ≠ 0 ∧ C * ↑n ^ s.re < ‖f n‖
n : ℕ
hn₀ : n ≠ 0
hn : (∑' (n : ℕ), ‖term f s n‖) * ↑n ^ s.re < ‖f n‖
this : ‖f n‖ ≤ (∑' (i : ℕ), ‖term f s i‖) * ↑n ^ s.re
⊢ False
state_after: no goals
Theorem: Batteries.PairingHeapImp.Heap.WF.tail?
File: .lake/packages/batteries/Batteries/Data/PairingHeap.lean

tactic: simp only [Heap.tail?]
state_before: α : Type u_1
s : Heap α
le : α → α → Bool
tl : Heap α
hwf : WF le s
⊢ Heap.tail? le s = some tl → WF le tl
state_after: α : Type u_1
s : Heap α
le : α → α → Bool
tl : Heap α
hwf : WF le s
⊢ Option.map (fun x => x.snd) (Heap.deleteMin le s) = some tl → WF le tl

tactic: intro eq
state_before: α : Type u_1
s : Heap α
le : α → α → Bool
tl : Heap α
hwf : WF le s
⊢ Option.map (fun x => x.snd) (Heap.deleteMin le s) = some tl → WF le tl
state_after: α : Type u_1
s : Heap α
le : α → α → Bool
tl : Heap α
hwf : WF le s
eq : Option.map (fun x => x.snd) (Heap.deleteMin le s) = some tl
⊢ WF le tl

tactic: match eq₂ : s.deleteMin le, eq with
| some (a, tl), rfl => exact hwf.deleteMin eq₂
state_before: α : Type u_1
s : Heap α
le : α → α → Bool
tl : Heap α
hwf : WF le s
eq : Option.map (fun x => x.snd) (Heap.deleteMin le s) = some tl
⊢ WF le tl
state_after: no goals

tactic: exact hwf.deleteMin eq₂
state_before: α : Type u_1
s : Heap α
le : α → α → Bool
tl✝ : Heap α
hwf : WF le s
eq : Option.map (fun x => x.snd) (Heap.deleteMin le s) = some tl✝
a : α
tl : Heap α
eq₂ : Heap.deleteMin le s = some (a, tl)
⊢ WF le ((fun x => x.snd) (a, tl))
state_after: no goals
Theorem: Finsupp.card_toMultiset
File: Mathlib/Data/Finsupp/Multiset.lean

tactic: simp [toMultiset_apply, map_finsupp_sum, Function.id_def]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
f : α →₀ ℕ
⊢ Multiset.card (toMultiset f) = f.sum fun x => id
state_after: no goals
Theorem: Matrix.det_one_add_col_mul_row
File: Mathlib/LinearAlgebra/Matrix/SchurComplement.lean

tactic: rw [det_one_add_mul_comm, det_unique, Pi.add_apply, Pi.add_apply, Matrix.one_apply_eq,
  Matrix.row_mul_col_apply]
state_before: l : Type u_1
m : Type u_2
n : Type u_3
α : Type u_4
inst✝⁷ : Fintype l
inst✝⁶ : Fintype m
inst✝⁵ : Fintype n
inst✝⁴ : DecidableEq l
inst✝³ : DecidableEq m
inst✝² : DecidableEq n
inst✝¹ : CommRing α
ι : Type u_5
inst✝ : Unique ι
u v : m → α
⊢ (1 + col ι u * row ι v).det = 1 + v ⬝ᵥ u
state_after: no goals