tasksource/leandojo huggingface dataset:
Theorem: Matrix.TransvectionStruct.sumInl_toMatrix_prod_mul
File: Mathlib/LinearAlgebra/Matrix/Transvection.lean

tactic: induction' L with t L IH
state_before: n : Type u_1
p : Type u_2
R : Type u₂
𝕜 : Type ?u.60874
inst✝⁵ : Field 𝕜
inst✝⁴ : DecidableEq n
inst✝³ : DecidableEq p
inst✝² : CommRing R
i j : n
inst✝¹ : Fintype n
inst✝ : Fintype p
M : Matrix n n R
L : List (TransvectionStruct n R)
N : Matrix p p R
⊢ List.prod (List.map (toMatrix ∘ sumInl p) L) ⬝ fromBlocks M 0 0 N =
    fromBlocks (List.prod (List.map toMatrix L) ⬝ M) 0 0 N

tactic: simp
state_before: case nil
n : Type u_1
p : Type u_2
R : Type u₂
𝕜 : Type ?u.60874
inst✝⁵ : Field 𝕜
inst✝⁴ : DecidableEq n
inst✝³ : DecidableEq p
inst✝² : CommRing R
i j : n
inst✝¹ : Fintype n
inst✝ : Fintype p
M : Matrix n n R
N : Matrix p p R
⊢ List.prod (List.map (toMatrix ∘ sumInl p) []) ⬝ fromBlocks M 0 0 N =
    fromBlocks (List.prod (List.map toMatrix []) ⬝ M) 0 0 N

tactic: simp [Matrix.mul_assoc, IH, toMatrix_sumInl, fromBlocks_multiply]
state_before: case cons
n : Type u_1
p : Type u_2
R : Type u₂
𝕜 : Type ?u.60874
inst✝⁵ : Field 𝕜
inst✝⁴ : DecidableEq n
inst✝³ : DecidableEq p
inst✝² : CommRing R
i j : n
inst✝¹ : Fintype n
inst✝ : Fintype p
M : Matrix n n R
N : Matrix p p R
t : TransvectionStruct n R
L : List (TransvectionStruct n R)
IH :
  List.prod (List.map (toMatrix ∘ sumInl p) L) ⬝ fromBlocks M 0 0 N =
    fromBlocks (List.prod (List.map toMatrix L) ⬝ M) 0 0 N
⊢ List.prod (List.map (toMatrix ∘ sumInl p) (t :: L)) ⬝ fromBlocks M 0 0 N =
    fromBlocks (List.prod (List.map toMatrix (t :: L)) ⬝ M) 0 0 N
Theorem: Nat.multichoose_succ_succ
File: Mathlib/Data/Nat/Choose/Basic.lean

tactic: simp [multichoose]
state_before: n k : ℕ
⊢ multichoose (n + 1) (k + 1) = multichoose n (k + 1) + multichoose (n + 1) k
Theorem: Asymptotics.isBigO_principal
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: rw [isBigO_iff]
state_before: α : Type u_1
β : Type ?u.290106
E : Type u_2
F : Type u_3
G : Type ?u.290115
E' : Type ?u.290118
F' : Type ?u.290121
G' : Type ?u.290124
E'' : Type ?u.290127
F'' : Type ?u.290130
G'' : Type ?u.290133
R : Type ?u.290136
R' : Type ?u.290139
𝕜 : Type ?u.290142
𝕜' : Type ?u.290145
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✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
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 α
s : Set α
⊢ f =O[𝓟 s] g ↔ ∃ c, ∀ (x : α), x ∈ s → ‖f x‖ ≤ c * ‖g x‖

tactic: rfl
state_before: α : Type u_1
β : Type ?u.290106
E : Type u_2
F : Type u_3
G : Type ?u.290115
E' : Type ?u.290118
F' : Type ?u.290121
G' : Type ?u.290124
E'' : Type ?u.290127
F'' : Type ?u.290130
G'' : Type ?u.290133
R : Type ?u.290136
R' : Type ?u.290139
𝕜 : Type ?u.290142
𝕜' : Type ?u.290145
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✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
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 α
s : Set α
⊢ (∃ c, ∀ᶠ (x : α) in 𝓟 s, ‖f x‖ ≤ c * ‖g x‖) ↔ ∃ c, ∀ (x : α), x ∈ s → ‖f x‖ ≤ c * ‖g x‖
Theorem: Finset.map_union
File: Mathlib/Data/Finset/Image.lean

tactic: simp only [coe_map, coe_union, Set.image_union]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.37468
f✝ : α ↪ β
s : Finset α
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
f : α ↪ β
s₁ s₂ : Finset α
⊢ ↑(map f (s₁ ∪ s₂)) = ↑(map f s₁ ∪ map f s₂)
Theorem: Embedding.map_nhdsWithin_eq
File: Mathlib/Topology/ContinuousOn.lean

tactic: rw [nhdsWithin, Filter.map_inf hf.inj, hf.map_nhds_eq, map_principal, ← nhdsWithin_inter',
  inter_eq_self_of_subset_right (image_subset_range _ _)]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.360626
δ : Type ?u.360629
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
hf : _root_.Embedding f
s : Set α
x : α
⊢ map f (𝓝[s] x) = 𝓝[f '' s] f x
Theorem: Matrix.submatrix_updateRow_equiv
File: Mathlib/Data/Matrix/Basic.lean

tactic: simp_rw [Equiv.apply_symm_apply]
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type ?u.1237018
n' : o → Type ?u.1237023
R : Type ?u.1237026
S : Type ?u.1237029
α : Type v
β : Type w
γ : Type ?u.1237036
M : Matrix m n α
i✝ : m
j : n
b : n → α
c : m → α
inst✝¹ : DecidableEq l
inst✝ : DecidableEq m
A : Matrix m n α
i : m
r : n → α
e : l ≃ m
f : o ≃ n
⊢ submatrix (updateRow A i r) ↑e ↑f = submatrix (updateRow A (↑e (↑e.symm i)) fun j => r (↑f (↑f.symm j))) ↑e ↑f
Theorem: Submodule.le_self_mul_one_div
File: Mathlib/Algebra/Algebra/Operations.lean

tactic: refine (mul_one I).symm.trans_le ?_
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m n : A
I : Submodule R A
hI : I ≤ 1
⊢ I ≤ I * (1 / I)

tactic: apply mul_le_mul_right (one_le_one_div.mpr hI)
state_before: ι : Sort uι
R : Type u
inst✝² : CommSemiring R
A : Type v
inst✝¹ : CommSemiring A
inst✝ : Algebra R A
M N : Submodule R A
m n : A
I : Submodule R A
hI : I ≤ 1
⊢ I * 1 ≤ I * (1 / I)
Theorem: MeasurableSet.measurableSet_blimsup
File: Mathlib/MeasureTheory/MeasurableSpace.lean

tactic: simp only [blimsup_eq_iInf_biSup_of_nat, iSup_eq_iUnion, iInf_eq_iInter]
state_before: α : Type u_1
β : Type ?u.909833
γ : Type ?u.909836
δ : Type ?u.909839
δ' : Type ?u.909842
ι : Sort uι
s✝ t u : Set α
inst✝ : MeasurableSpace α
s : ℕ → Set α
p : ℕ → Prop
h : ∀ (n : ℕ), p n → MeasurableSet (s n)
⊢ MeasurableSet (blimsup s atTop p)

tactic: exact .iInter fun _ => .iUnion fun m => .iUnion fun hm => h m hm.1
state_before: α : Type u_1
β : Type ?u.909833
γ : Type ?u.909836
δ : Type ?u.909839
δ' : Type ?u.909842
ι : Sort uι
s✝ t u : Set α
inst✝ : MeasurableSpace α
s : ℕ → Set α
p : ℕ → Prop
h : ∀ (n : ℕ), p n → MeasurableSet (s n)
⊢ MeasurableSet (⋂ (i : ℕ), ⋃ (j : ℕ) (_ : p j ∧ i ≤ j), s j)
Theorem: NNReal.hasSum_geometric
File: Mathlib/Analysis/SpecificLimits/Basic.lean

tactic: apply NNReal.hasSum_coe.1
state_before: α : Type ?u.248624
β : Type ?u.248627
ι : Type ?u.248630
r : ℝ≥0
hr : r < 1
⊢ HasSum (fun n => r ^ n) (1 - r)⁻¹

tactic: push_cast
state_before: α : Type ?u.248624
β : Type ?u.248627
ι : Type ?u.248630
r : ℝ≥0
hr : r < 1
⊢ HasSum (fun a => ↑(r ^ a)) ↑(1 - r)⁻¹

tactic: rw [NNReal.coe_sub (le_of_lt hr)]
state_before: α : Type ?u.248624
β : Type ?u.248627
ι : Type ?u.248630
r : ℝ≥0
hr : r < 1
⊢ HasSum (fun a => ↑r ^ a) (↑(1 - r))⁻¹

tactic: exact hasSum_geometric_of_lt_1 r.coe_nonneg hr
state_before: α : Type ?u.248624
β : Type ?u.248627
ι : Type ?u.248630
r : ℝ≥0
hr : r < 1
⊢ HasSum (fun a => ↑r ^ a) (↑1 - ↑r)⁻¹
Theorem: comap_dist_right_atTop_le_cocompact
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: refine' Filter.hasBasis_cocompact.ge_iff.2 fun s hs => mem_comap.2 _
state_before: α : Type u
β : Type v
X : Type ?u.546057
ι : Type ?u.546060
inst✝ : PseudoMetricSpace α
x : α
⊢ comap (fun y => dist y x) atTop ≤ cocompact α

tactic: rcases hs.bounded.subset_ball x with ⟨r, hr⟩
state_before: α : Type u
β : Type v
X : Type ?u.546057
ι : Type ?u.546060
inst✝ : PseudoMetricSpace α
x : α
s : Set α
hs : IsCompact s
⊢ ∃ t, t ∈ atTop ∧ (fun y => dist y x) ⁻¹' t ⊆ sᶜ

tactic: exact ⟨Ioi r, Ioi_mem_atTop r, fun y hy hys => (mem_closedBall.1 <| hr hys).not_lt hy⟩
state_before: case intro
α : Type u
β : Type v
X : Type ?u.546057
ι : Type ?u.546060
inst✝ : PseudoMetricSpace α
x : α
s : Set α
hs : IsCompact s
r : ℝ
hr : s ⊆ closedBall x r
⊢ ∃ t, t ∈ atTop ∧ (fun y => dist y x) ⁻¹' t ⊆ sᶜ
Theorem: Equiv.Perm.pow_apply_eq_pow_mod_orderOf_cycleOf_apply
File: Mathlib/GroupTheory/Perm/Cycle/Basic.lean

tactic: rw [← cycleOf_pow_apply_self f, ← cycleOf_pow_apply_self f, pow_eq_mod_orderOf]
state_before: ι : Type ?u.2444696
α : Type u_1
β : Type ?u.2444702
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g : Perm α
x✝ y : α
f : Perm α
n : ℕ
x : α
⊢ ↑(f ^ n) x = ↑(f ^ (n % orderOf (cycleOf f x))) x
Theorem: CategoryTheory.Subobject.ofLEMk_comp
File: Mathlib/CategoryTheory/Subobject/Basic.lean

tactic: simp [ofLEMk]
state_before: C : Type u₁
inst✝² : Category C
X✝ Y Z : C
D : Type u₂
inst✝¹ : Category D
B A : C
X : Subobject B
f : A ⟶ B
inst✝ : Mono f
h : X ≤ mk f
⊢ ofLEMk X f h ≫ f = arrow X
Theorem: CategoryTheory.Limits.factorThruKernelSubobject_comp_arrow
File: Mathlib/CategoryTheory/Subobject/Limits.lean

tactic: dsimp [factorThruKernelSubobject]
state_before: C : Type u
inst✝² : Category C
X Y Z : C
inst✝¹ : HasZeroMorphisms C
f : X ⟶ Y
inst✝ : HasKernel f
W : C
h : W ⟶ X
w : h ≫ f = 0
⊢ factorThruKernelSubobject f h w ≫ arrow (kernelSubobject f) = h

tactic: simp
state_before: C : Type u
inst✝² : Category C
X Y Z : C
inst✝¹ : HasZeroMorphisms C
f : X ⟶ Y
inst✝ : HasKernel f
W : C
h : W ⟶ X
w : h ≫ f = 0
⊢ factorThru (kernelSubobject f) h (_ : Factors (kernelSubobject f) h) ≫ arrow (kernelSubobject f) = h
Theorem: CauSeq.lt_inf
File: Mathlib/Data/Real/CauSeq.lean

tactic: obtain ⟨⟨εb, εb0, ib, hb⟩, ⟨εc, εc0, ic, hc⟩⟩ := hb, hc
state_before: α : Type u_1
inst✝ : LinearOrderedField α
a b c : CauSeq α abs
hb : a < b
hc : a < c
⊢ a < b ⊓ c

tactic: refine' ⟨εb ⊓ εc, lt_inf_iff.mpr ⟨εb0, εc0⟩, ib ⊔ ic, fun i hi => _⟩
state_before: case intro.intro.intro.intro.intro.intro
α : Type u_1
inst✝ : LinearOrderedField α
a b c : CauSeq α abs
εb : α
εb0 : εb > 0
ib : ℕ
hb : ∀ (j : ℕ), j ≥ ib → εb ≤ ↑(b - a) j
εc : α
εc0 : εc > 0
ic : ℕ
hc : ∀ (j : ℕ), j ≥ ic → εc ≤ ↑(c - a) j
⊢ a < b ⊓ c

tactic: have := min_le_min (hb _ (sup_le_iff.mp hi).1) (hc _ (sup_le_iff.mp hi).2)
state_before: case intro.intro.intro.intro.intro.intro
α : Type u_1
inst✝ : LinearOrderedField α
a b c : CauSeq α abs
εb : α
εb0 : εb > 0
ib : ℕ
hb : ∀ (j : ℕ), j ≥ ib → εb ≤ ↑(b - a) j
εc : α
εc0 : εc > 0
ic : ℕ
hc : ∀ (j : ℕ), j ≥ ic → εc ≤ ↑(c - a) j
i : ℕ
hi : i ≥ ib ⊔ ic
⊢ εb ⊓ εc ≤ ↑(b ⊓ c - a) i

tactic: exact this.trans_eq (min_sub_sub_right _ _ _)
state_before: case intro.intro.intro.intro.intro.intro
α : Type u_1
inst✝ : LinearOrderedField α
a b c : CauSeq α abs
εb : α
εb0 : εb > 0
ib : ℕ
hb : ∀ (j : ℕ), j ≥ ib → εb ≤ ↑(b - a) j
εc : α
εc0 : εc > 0
ic : ℕ
hc : ∀ (j : ℕ), j ≥ ic → εc ≤ ↑(c - a) j
i : ℕ
hi : i ≥ ib ⊔ ic
this : min εb εc ≤ min (↑(b - a) i) (↑(c - a) i)
⊢ εb ⊓ εc ≤ ↑(b ⊓ c - a) i
Theorem: Finset.prod_Ico_add
File: Mathlib/Algebra/BigOperators/Intervals.lean

tactic: convert prod_Ico_add' f a b c using 2
state_before: α : Type u
β : Type v
γ : Type w
s₂ s₁ s : Finset α
a✝ : α
g f✝ : α → β
inst✝³ : CommMonoid β
inst✝² : OrderedCancelAddCommMonoid α
inst✝¹ : ExistsAddOfLE α
inst✝ : LocallyFiniteOrder α
f : α → β
a b c : α
⊢ ∏ x in Ico a b, f (c + x) = ∏ x in Ico (a + c) (b + c), f x

tactic: rw [add_comm]
state_before: case h.e'_2.a
α : Type u
β : Type v
γ : Type w
s₂ s₁ s : Finset α
a✝¹ : α
g f✝ : α → β
inst✝³ : CommMonoid β
inst✝² : OrderedCancelAddCommMonoid α
inst✝¹ : ExistsAddOfLE α
inst✝ : LocallyFiniteOrder α
f : α → β
a b c x✝ : α
a✝ : x✝ ∈ Ico a b
⊢ f (c + x✝) = f (x✝ + c)
Theorem: Left.sign_neg
File: Mathlib/Data/Sign.lean

tactic: simp_rw [sign_apply, Left.neg_pos_iff, Left.neg_neg_iff]
state_before: α : Type u_1
inst✝³ : AddGroup α
inst✝² : Preorder α
inst✝¹ : DecidableRel fun x x_1 => x < x_1
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a : α
⊢ ↑sign (-a) = -↑sign a

tactic: split_ifs with h h'
state_before: α : Type u_1
inst✝³ : AddGroup α
inst✝² : Preorder α
inst✝¹ : DecidableRel fun x x_1 => x < x_1
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a : α
⊢ (if a < 0 then 1 else if 0 < a then -1 else 0) = -if 0 < a then 1 else if a < 0 then -1 else 0

tactic: exact False.elim (lt_asymm h h')
state_before: case inl.inl
α : Type u_1
inst✝³ : AddGroup α
inst✝² : Preorder α
inst✝¹ : DecidableRel fun x x_1 => x < x_1
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a : α
h : a < 0
h' : 0 < a
⊢ False

tactic: simp
state_before: case inl.inr
α : Type u_1
inst✝³ : AddGroup α
inst✝² : Preorder α
inst✝¹ : DecidableRel fun x x_1 => x < x_1
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a : α
h : a < 0
h' : ¬0 < a
⊢ 1 = - -1

tactic: simp
state_before: case inr.inl
α : Type u_1
inst✝³ : AddGroup α
inst✝² : Preorder α
inst✝¹ : DecidableRel fun x x_1 => x < x_1
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a : α
h : ¬a < 0
h✝ : 0 < a
⊢ -1 = -1

tactic: simp
state_before: case inr.inr
α : Type u_1
inst✝³ : AddGroup α
inst✝² : Preorder α
inst✝¹ : DecidableRel fun x x_1 => x < x_1
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
a : α
h : ¬a < 0
h✝ : ¬0 < a
⊢ 0 = -0
Theorem: List.Duplicate.mem_cons_self
File: Mathlib/Data/List/Duplicate.lean

tactic: cases' h with _ h _ _ h
state_before: α : Type u_1
l : List α
x : α
h : x ∈+ x :: l
⊢ x ∈ l

tactic: exact h
state_before: case cons_mem
α : Type u_1
l : List α
x : α
h : x ∈ l
⊢ x ∈ l

tactic: exact h.mem
state_before: case cons_duplicate
α : Type u_1
l : List α
x : α
h : x ∈+ l
⊢ x ∈ l
Theorem: Seminorm.convex_closedBall
File: Mathlib/Analysis/Seminorm.lean

tactic: rw [closedBall_eq_biInter_ball]
state_before: R : Type ?u.1320429
R' : Type ?u.1320432
𝕜 : Type u_2
𝕜₂ : Type ?u.1320438
𝕜₃ : Type ?u.1320441
𝕝 : Type ?u.1320444
E : Type u_1
E₂ : Type ?u.1320450
E₃ : Type ?u.1320453
F : Type ?u.1320456
G : Type ?u.1320459
ι : Type ?u.1320462
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : NormedSpace ℝ 𝕜
inst✝² : Module 𝕜 E
inst✝¹ : Module ℝ E
inst✝ : IsScalarTower ℝ 𝕜 E
p : Seminorm 𝕜 E
x : E
r : ℝ
⊢ Convex ℝ (closedBall p x r)

tactic: exact convex_iInter₂ fun _ _ => convex_ball _ _ _
state_before: R : Type ?u.1320429
R' : Type ?u.1320432
𝕜 : Type u_2
𝕜₂ : Type ?u.1320438
𝕜₃ : Type ?u.1320441
𝕝 : Type ?u.1320444
E : Type u_1
E₂ : Type ?u.1320450
E₃ : Type ?u.1320453
F : Type ?u.1320456
G : Type ?u.1320459
ι : Type ?u.1320462
inst✝⁵ : NormedField 𝕜
inst✝⁴ : AddCommGroup E
inst✝³ : NormedSpace ℝ 𝕜
inst✝² : Module 𝕜 E
inst✝¹ : Module ℝ E
inst✝ : IsScalarTower ℝ 𝕜 E
p : Seminorm 𝕜 E
x : E
r : ℝ
⊢ Convex ℝ (⋂ (ρ : ℝ) (_ : ρ > r), ball p x ρ)
Theorem: Int.fract_add
File: Mathlib/Algebra/Order/Floor.lean

tactic: unfold fract
state_before: F : Type ?u.166631
α : Type u_1
β : Type ?u.166637
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a b : α
⊢ fract (a + b) - fract a - fract b = ↑(⌊a⌋ + ⌊b⌋ - ⌊a + b⌋)

tactic: simp [sub_eq_add_neg]
state_before: F : Type ?u.166631
α : Type u_1
β : Type ?u.166637
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a b : α
⊢ a + b - ↑⌊a + b⌋ - (a - ↑⌊a⌋) - (b - ↑⌊b⌋) = ↑(⌊a⌋ + ⌊b⌋ - ⌊a + b⌋)

tactic: abel
state_before: F : Type ?u.166631
α : Type u_1
β : Type ?u.166637
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a b : α
⊢ a + b + -↑⌊a + b⌋ + (↑⌊a⌋ + -a) + (↑⌊b⌋ + -b) = ↑⌊a⌋ + ↑⌊b⌋ + -↑⌊a + b⌋
Theorem: Compactum.cl_eq_closure
File: Mathlib/Topology/Category/Compactum.lean

tactic: ext
state_before: X : Compactum
A : Set X.A
⊢ Compactum.cl A = closure A

tactic: rw [mem_closure_iff_ultrafilter]
state_before: case h
X : Compactum
A : Set X.A
x✝ : X.A
⊢ x✝ ∈ Compactum.cl A ↔ x✝ ∈ closure A

tactic: constructor
state_before: case h
X : Compactum
A : Set X.A
x✝ : X.A
⊢ x✝ ∈ Compactum.cl A ↔ ∃ u, A ∈ u ∧ ↑u ≤ 𝓝 x✝

tactic: rintro ⟨F, h1, h2⟩
state_before: case h.mp
X : Compactum
A : Set X.A
x✝ : X.A
⊢ x✝ ∈ Compactum.cl A → ∃ u, A ∈ u ∧ ↑u ≤ 𝓝 x✝

tactic: exact ⟨F, h1, le_nhds_of_str_eq _ _ h2⟩
state_before: case h.mp.intro.intro
X : Compactum
A : Set X.A
x✝ : X.A
F : Ultrafilter X.A
h1 : F ∈ Compactum.basic A
h2 : str X F = x✝
⊢ ∃ u, A ∈ u ∧ ↑u ≤ 𝓝 x✝

tactic: rintro ⟨F, h1, h2⟩
state_before: case h.mpr
X : Compactum
A : Set X.A
x✝ : X.A
⊢ (∃ u, A ∈ u ∧ ↑u ≤ 𝓝 x✝) → x✝ ∈ Compactum.cl A

tactic: exact ⟨F, h1, str_eq_of_le_nhds _ _ h2⟩
state_before: case h.mpr.intro.intro
X : Compactum
A : Set X.A
x✝ : X.A
F : Ultrafilter X.A
h1 : A ∈ F
h2 : ↑F ≤ 𝓝 x✝
⊢ x✝ ∈ Compactum.cl A
Theorem: Stream'.Seq.cons_append
File: Mathlib/Data/Seq/Seq.lean

tactic: dsimp [append]
state_before: α : Type u
β : Type v
γ : Type w
a : α
s t : Seq α
⊢ destruct (append (cons a s) t) = some (a, append s t)

tactic: rw [corec_eq]
state_before: α : Type u
β : Type v
γ : Type w
a : α
s t : Seq α
⊢ destruct
      (corec
        (fun x =>
          match destruct x.fst with
          | none =>
            match destruct x.snd with
            | none => none
            | some (a, b) => some (a, nil, b)
          | some (a, s₁') => some (a, s₁', x.snd))
        (cons a s, t)) =
    some
      (a,
        corec
          (fun x =>
            match destruct x.fst with
            | none =>
              match destruct x.snd with
              | none => none
              | some (a, b) => some (a, nil, b)
            | some (a, s₁') => some (a, s₁', x.snd))
          (s, t))

tactic: dsimp [append]
state_before: α : Type u
β : Type v
γ : Type w
a : α
s t : Seq α
⊢ omap
      (corec fun x =>
        match destruct x.fst with
        | none =>
          match destruct x.snd with
          | none => none
          | some (a, b) => some (a, nil, b)
        | some (a, s₁') => some (a, s₁', x.snd))
      (match destruct (cons a s, t).fst with
      | none =>
        match destruct (cons a s, t).snd with
        | none => none
        | some (a, b) => some (a, nil, b)
      | some (a_1, s₁') => some (a_1, s₁', (cons a s, t).snd)) =
    some
      (a,
        corec
          (fun x =>
            match destruct x.fst with
            | none =>
              match destruct x.snd with
              | none => none
              | some (a, b) => some (a, nil, b)
            | some (a, s₁') => some (a, s₁', x.snd))
          (s, t))

tactic: rw [destruct_cons]
state_before: α : Type u
β : Type v
γ : Type w
a : α
s t : Seq α
⊢ (match
      match destruct (cons a s) with
      | none =>
        match destruct t with
        | none => none
        | some (a, b) => some (a, nil, b)
      | some (a, s₁') => some (a, s₁', t) with
    | none => none
    | some (a, b) =>
      some
        (a,
          corec
            (fun x =>
              match destruct x.fst with
              | none =>
                match destruct x.snd with
                | none => none
                | some (a, b) => some (a, nil, b)
              | some (a, s₁') => some (a, s₁', x.snd))
            b)) =
    some
      (a,
        corec
          (fun x =>
            match destruct x.fst with
            | none =>
              match destruct x.snd with
              | none => none
              | some (a, b) => some (a, nil, b)
            | some (a, s₁') => some (a, s₁', x.snd))
          (s, t))
Theorem: LocalRing.isLocalRingHom_residue
File: Mathlib/RingTheory/Ideal/LocalRing.lean

tactic: constructor
state_before: R : Type u
S : Type v
T : Type w
K : Type u'
inst✝⁵ : CommRing R
inst✝⁴ : LocalRing R
inst✝³ : CommRing S
inst✝² : LocalRing S
inst✝¹ : CommRing T
inst✝ : LocalRing T
⊢ IsLocalRingHom (residue R)

tactic: intro a ha
state_before: case map_nonunit
R : Type u
S : Type v
T : Type w
K : Type u'
inst✝⁵ : CommRing R
inst✝⁴ : LocalRing R
inst✝³ : CommRing S
inst✝² : LocalRing S
inst✝¹ : CommRing T
inst✝ : LocalRing T
⊢ ∀ (a : R), IsUnit (↑(residue R) a) → IsUnit a

tactic: by_contra h
state_before: case map_nonunit
R : Type u
S : Type v
T : Type w
K : Type u'
inst✝⁵ : CommRing R
inst✝⁴ : LocalRing R
inst✝³ : CommRing S
inst✝² : LocalRing S
inst✝¹ : CommRing T
inst✝ : LocalRing T
a : R
ha : IsUnit (↑(residue R) a)
⊢ IsUnit a

tactic: erw [Ideal.Quotient.eq_zero_iff_mem.mpr ((LocalRing.mem_maximalIdeal _).mpr h)] at ha
state_before: case map_nonunit
R : Type u
S : Type v
T : Type w
K : Type u'
inst✝⁵ : CommRing R
inst✝⁴ : LocalRing R
inst✝³ : CommRing S
inst✝² : LocalRing S
inst✝¹ : CommRing T
inst✝ : LocalRing T
a : R
ha : IsUnit (↑(residue R) a)
h : ¬IsUnit a
⊢ False

tactic: exact ha.ne_zero rfl
state_before: case map_nonunit
R : Type u
S : Type v
T : Type w
K : Type u'
inst✝⁵ : CommRing R
inst✝⁴ : LocalRing R
inst✝³ : CommRing S
inst✝² : LocalRing S
inst✝¹ : CommRing T
inst✝ : LocalRing T
a : R
ha : IsUnit 0
h : ¬IsUnit a
⊢ False
Theorem: Set.unbounded_le_inter_lt
File: Mathlib/Order/Bounded.lean

tactic: convert @unbounded_le_inter_not_le _ s _ a
state_before: α : Type u_1
r : α → α → Prop
s t : Set α
inst✝ : LinearOrder α
a : α
⊢ Unbounded (fun x x_1 => x ≤ x_1) (s ∩ {b | a < b}) ↔ Unbounded (fun x x_1 => x ≤ x_1) s

tactic: exact lt_iff_not_le
state_before: case h.e'_1.h.e'_3.h.e'_4.h.e'_2.h.a
α : Type u_1
r : α → α → Prop
s t : Set α
inst✝ : LinearOrder α
a x✝ : α
⊢ a < x✝ ↔ ¬x✝ ≤ a
Theorem: Metric.closedBall_eq_bInter_ball
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: ext y
state_before: α : Type u
β : Type v
X : Type ?u.39254
ι : Type ?u.39257
inst✝ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
⊢ closedBall x ε = ⋂ (δ : ℝ) (_ : δ > ε), ball x δ

tactic: rw [mem_closedBall, ← forall_lt_iff_le', mem_iInter₂]
state_before: case h
α : Type u
β : Type v
X : Type ?u.39254
ι : Type ?u.39257
inst✝ : PseudoMetricSpace α
x y✝ z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
y : α
⊢ y ∈ closedBall x ε ↔ y ∈ ⋂ (δ : ℝ) (_ : δ > ε), ball x δ

tactic: rfl
state_before: case h
α : Type u
β : Type v
X : Type ?u.39254
ι : Type ?u.39257
inst✝ : PseudoMetricSpace α
x y✝ z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
y : α
⊢ (∀ ⦃c : ℝ⦄, ε < c → dist y x < c) ↔ ∀ (i : ℝ), i > ε → y ∈ ball x i
Theorem: CategoryTheory.Adjunction.he'
File: Mathlib/CategoryTheory/Adjunction/Basic.lean

tactic: intros
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
F : C ⥤ D
G : D ⥤ C
F_obj : C → D
e : (X : C) → (Y : D) → (F_obj X ⟶ Y) ≃ (X ⟶ G.obj Y)
he : ∀ (X : C) (Y Y' : D) (g : Y ⟶ Y') (h : F_obj X ⟶ Y), ↑(e X Y') (h ≫ g) = ↑(e X Y) h ≫ G.map g
X : C
Y Y' : D
f : X ⟶ G.obj Y
g : Y ⟶ Y'
⊢ ↑(e X Y').symm (f ≫ G.map g) = ↑(e X Y).symm f ≫ g

tactic: rw [Equiv.symm_apply_eq, he]
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
F : C ⥤ D
G : D ⥤ C
F_obj : C → D
e : (X : C) → (Y : D) → (F_obj X ⟶ Y) ≃ (X ⟶ G.obj Y)
he : ∀ (X : C) (Y Y' : D) (g : Y ⟶ Y') (h : F_obj X ⟶ Y), ↑(e X Y') (h ≫ g) = ↑(e X Y) h ≫ G.map g
X : C
Y Y' : D
f : X ⟶ G.obj Y
g : Y ⟶ Y'
⊢ ↑(e X Y').symm (f ≫ G.map g) = ↑(e X Y).symm f ≫ g

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
F : C ⥤ D
G : D ⥤ C
F_obj : C → D
e : (X : C) → (Y : D) → (F_obj X ⟶ Y) ≃ (X ⟶ G.obj Y)
he : ∀ (X : C) (Y Y' : D) (g : Y ⟶ Y') (h : F_obj X ⟶ Y), ↑(e X Y') (h ≫ g) = ↑(e X Y) h ≫ G.map g
X : C
Y Y' : D
f : X ⟶ G.obj Y
g : Y ⟶ Y'
⊢ f ≫ G.map g = ↑(e X Y) (↑(e X Y).symm f) ≫ G.map g
Theorem: Set.ncard_lt_ncard
File: Mathlib/Data/Set/Ncard.lean

tactic: rw [ncard_eq_toFinset_card _ (ht.subset h.subset), ncard_eq_toFinset_card t ht]
state_before: α : Type u_1
β : Type ?u.71247
s t : Set α
a b x y : α
f : α → β
h : s ⊂ t
ht : autoParam (Set.Finite t) _auto✝
⊢ ncard s < ncard t

tactic: refine' Finset.card_lt_card _
state_before: α : Type u_1
β : Type ?u.71247
s t : Set α
a b x y : α
f : α → β
h : s ⊂ t
ht : autoParam (Set.Finite t) _auto✝
⊢ Finset.card (Finite.toFinset (_ : Set.Finite s)) < Finset.card (Finite.toFinset ht)

tactic: rwa [Finite.toFinset_ssubset_toFinset]
state_before: α : Type u_1
β : Type ?u.71247
s t : Set α
a b x y : α
f : α → β
h : s ⊂ t
ht : autoParam (Set.Finite t) _auto✝
⊢ Finite.toFinset (_ : Set.Finite s) ⊂ Finite.toFinset ht
Theorem: IsLocalizedModule.mk'_eq_zero'
File: Mathlib/Algebra/Module/LocalizedModule.lean

tactic: simp_rw [← mk'_zero f (1 : S), mk'_eq_mk'_iff, smul_zero, one_smul, eq_comm]
state_before: R : Type u_1
inst✝⁷ : CommRing R
S : Submonoid R
M : Type u_3
M' : Type u_2
M'' : Type ?u.915771
inst✝⁶ : AddCommMonoid M
inst✝⁵ : AddCommMonoid M'
inst✝⁴ : AddCommMonoid M''
inst✝³ : Module R M
inst✝² : Module R M'
inst✝¹ : Module R M''
f : M →ₗ[R] M'
g : M →ₗ[R] M''
inst✝ : IsLocalizedModule S f
m : M
s : { x // x ∈ S }
⊢ mk' f m s = 0 ↔ ∃ s', s' • m = 0