tasksource/leandojo huggingface dataset:
Theorem: fderivWithin_congr_set'
File: Mathlib/Analysis/Calculus/FDeriv/Basic.lean

tactic: simp only [fderivWithin, hasFDerivWithinAt_congr_set' y h]
state_before: 𝕜 : Type u_3
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_2
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type ?u.453591
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.453686
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
y : E
h : s =ᶠ[𝓝[{y}ᶜ] x] t
⊢ fderivWithin 𝕜 f s x = fderivWithin 𝕜 f t x
Theorem: Matrix.nonsing_inv_cancel_or_zero
File: Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean

tactic: by_cases h : IsUnit A.det
state_before: l : Type ?u.237660
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
⊢ A⁻¹ ⬝ A = 1 ∧ A ⬝ A⁻¹ = 1 ∨ A⁻¹ = 0

tactic: exact Or.inl ⟨nonsing_inv_mul _ h, mul_nonsing_inv _ h⟩
state_before: case pos
l : Type ?u.237660
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
h : IsUnit (det A)
⊢ A⁻¹ ⬝ A = 1 ∧ A ⬝ A⁻¹ = 1 ∨ A⁻¹ = 0

tactic: exact Or.inr (nonsing_inv_apply_not_isUnit _ h)
state_before: case neg
l : Type ?u.237660
m : Type u
n : Type u'
α : Type v
inst✝² : Fintype n
inst✝¹ : DecidableEq n
inst✝ : CommRing α
A B : Matrix n n α
h : ¬IsUnit (det A)
⊢ A⁻¹ ⬝ A = 1 ∧ A ⬝ A⁻¹ = 1 ∨ A⁻¹ = 0
Theorem: Finset.support_sum_eq
File: Mathlib/Data/Finsupp/BigOperators.lean

tactic: suffices : s.1.Pairwise (_root_.Disjoint on Finsupp.support)
state_before: ι : Type u_2
M : Type u_1
inst✝¹ : DecidableEq ι
inst✝ : AddCommMonoid M
s : Finset (ι →₀ M)
hs : Set.PairwiseDisjoint (↑s) Finsupp.support
⊢ (Finset.sum s id).support = sup s Finsupp.support

tactic: convert Multiset.support_sum_eq s.1 this
state_before: ι : Type u_2
M : Type u_1
inst✝¹ : DecidableEq ι
inst✝ : AddCommMonoid M
s : Finset (ι →₀ M)
hs : Set.PairwiseDisjoint (↑s) Finsupp.support
this : Multiset.Pairwise (Disjoint on Finsupp.support) s.val
⊢ (Finset.sum s id).support = sup s Finsupp.support

tactic: exact (Finset.sum_val _).symm
state_before: case h.e'_2.h.e'_4
ι : Type u_2
M : Type u_1
inst✝¹ : DecidableEq ι
inst✝ : AddCommMonoid M
s : Finset (ι →₀ M)
hs : Set.PairwiseDisjoint (↑s) Finsupp.support
this : Multiset.Pairwise (Disjoint on Finsupp.support) s.val
⊢ Finset.sum s id = Multiset.sum s.val

tactic: obtain ⟨l, hl, hn⟩ : ∃ l : List (ι →₀ M), l.toFinset = s ∧ l.Nodup := by
  refine' ⟨s.toList, _, Finset.nodup_toList _⟩
  simp
state_before: case this
ι : Type u_2
M : Type u_1
inst✝¹ : DecidableEq ι
inst✝ : AddCommMonoid M
s : Finset (ι →₀ M)
hs : Set.PairwiseDisjoint (↑s) Finsupp.support
⊢ Multiset.Pairwise (Disjoint on Finsupp.support) s.val

tactic: subst hl
state_before: case this.intro.intro
ι : Type u_2
M : Type u_1
inst✝¹ : DecidableEq ι
inst✝ : AddCommMonoid M
s : Finset (ι →₀ M)
hs : Set.PairwiseDisjoint (↑s) Finsupp.support
l : List (ι →₀ M)
hl : List.toFinset l = s
hn : List.Nodup l
⊢ Multiset.Pairwise (Disjoint on Finsupp.support) s.val

tactic: rwa [List.toFinset_val, List.dedup_eq_self.mpr hn, Multiset.pairwise_coe_iff_pairwise, ←
  List.pairwiseDisjoint_iff_coe_toFinset_pairwise_disjoint hn]
state_before: case this.intro.intro
ι : Type u_2
M : Type u_1
inst✝¹ : DecidableEq ι
inst✝ : AddCommMonoid M
l : List (ι →₀ M)
hn : List.Nodup l
hs : Set.PairwiseDisjoint (↑(List.toFinset l)) Finsupp.support
⊢ Multiset.Pairwise (Disjoint on Finsupp.support) (List.toFinset l).val

tactic: intro x y hxy
state_before: case this.intro.intro.hr
ι : Type u_2
M : Type u_1
inst✝¹ : DecidableEq ι
inst✝ : AddCommMonoid M
l : List (ι →₀ M)
hn : List.Nodup l
hs : Set.PairwiseDisjoint (↑(List.toFinset l)) Finsupp.support
⊢ Symmetric (Disjoint on Finsupp.support)

tactic: exact symmetric_disjoint hxy
state_before: case this.intro.intro.hr
ι : Type u_2
M : Type u_1
inst✝¹ : DecidableEq ι
inst✝ : AddCommMonoid M
l : List (ι →₀ M)
hn : List.Nodup l
hs : Set.PairwiseDisjoint (↑(List.toFinset l)) Finsupp.support
x y : ι →₀ M
hxy : (Disjoint on Finsupp.support) x y
⊢ (Disjoint on Finsupp.support) y x

tactic: refine' ⟨s.toList, _, Finset.nodup_toList _⟩
state_before: ι : Type u_2
M : Type u_1
inst✝¹ : DecidableEq ι
inst✝ : AddCommMonoid M
s : Finset (ι →₀ M)
hs : Set.PairwiseDisjoint (↑s) Finsupp.support
⊢ ∃ l, List.toFinset l = s ∧ List.Nodup l

tactic: simp
state_before: ι : Type u_2
M : Type u_1
inst✝¹ : DecidableEq ι
inst✝ : AddCommMonoid M
s : Finset (ι →₀ M)
hs : Set.PairwiseDisjoint (↑s) Finsupp.support
⊢ List.toFinset (toList s) = s
Theorem: Equiv.Perm.IsCycleOn.pow_apply_eq_pow_apply
File: Mathlib/GroupTheory/Perm/Cycle/Basic.lean

tactic: rw [Nat.modEq_iff_dvd, ← hf.zpow_apply_eq ha]
state_before: ι : Type ?u.1728030
α : Type u_1
β : Type ?u.1728036
f g : Perm α
s✝ t : Set α
a b x y : α
s : Finset α
hf : IsCycleOn f ↑s
ha : a ∈ s
m n : ℕ
⊢ ↑(f ^ m) a = ↑(f ^ n) a ↔ m ≡ n [MOD card s]

tactic: simp [sub_eq_neg_add, zpow_add, eq_inv_iff_eq, eq_comm]
state_before: ι : Type ?u.1728030
α : Type u_1
β : Type ?u.1728036
f g : Perm α
s✝ t : Set α
a b x y : α
s : Finset α
hf : IsCycleOn f ↑s
ha : a ∈ s
m n : ℕ
⊢ ↑(f ^ m) a = ↑(f ^ n) a ↔ ↑(f ^ (↑n - ↑m)) a = a
Theorem: compl_frontier_eq_union_interior
File: Mathlib/Topology/Basic.lean

tactic: rw [frontier_eq_inter_compl_interior]
state_before: α : Type u
β : Type v
ι : Sort w
a : α
s✝ s₁ s₂ t : Set α
p p₁ p₂ : α → Prop
inst✝ : TopologicalSpace α
s : Set α
⊢ frontier sᶜ = interior s ∪ interior (sᶜ)

tactic: simp only [compl_inter, compl_compl]
state_before: α : Type u
β : Type v
ι : Sort w
a : α
s✝ s₁ s₂ t : Set α
p p₁ p₂ : α → Prop
inst✝ : TopologicalSpace α
s : Set α
⊢ (interior sᶜ ∩ interior (sᶜ)ᶜ)ᶜ = interior s ∪ interior (sᶜ)
Theorem: dite_eq_left_iff
File: Mathlib/Logic/Basic.lean

tactic: by_cases P <;> simp [*, forall_prop_of_true, forall_prop_of_false]
state_before: α : Sort u_1
β : Sort ?u.34156
σ : α → Sort ?u.34152
f : α → β
P Q : Prop
inst✝¹ : Decidable P
inst✝ : Decidable Q
a b c : α
A : P → α
B : ¬P → α
⊢ dite P (fun x => a) B = a ↔ ∀ (h : ¬P), B h = a
Theorem: pow_bit0_pos_of_neg
File: Mathlib/Algebra/GroupPower/Order.lean

tactic: rw [pow_bit0']
state_before: β : Type ?u.234679
A : Type ?u.234682
G : Type ?u.234685
M : Type ?u.234688
R : Type u_1
inst✝ : StrictOrderedRing R
a : R
ha : a < 0
n : ℕ
⊢ 0 < a ^ bit0 n

tactic: exact pow_pos (mul_pos_of_neg_of_neg ha ha) _
state_before: β : Type ?u.234679
A : Type ?u.234682
G : Type ?u.234685
M : Type ?u.234688
R : Type u_1
inst✝ : StrictOrderedRing R
a : R
ha : a < 0
n : ℕ
⊢ 0 < (a * a) ^ n
Theorem: Set.PartiallyWellOrderedOn.image_of_monotone_on
File: Mathlib/Order/WellFoundedSet.lean

tactic: intro g' hg'
state_before: ι : Type ?u.48841
α : Type u_1
β : Type u_2
r : α → α → Prop
r' : β → β → Prop
f : α → β
s t : Set α
a : α
hs : PartiallyWellOrderedOn s r
hf : ∀ (a₁ : α), a₁ ∈ s → ∀ (a₂ : α), a₂ ∈ s → r a₁ a₂ → r' (f a₁) (f a₂)
⊢ PartiallyWellOrderedOn (f '' s) r'

tactic: choose g hgs heq using hg'
state_before: ι : Type ?u.48841
α : Type u_1
β : Type u_2
r : α → α → Prop
r' : β → β → Prop
f : α → β
s t : Set α
a : α
hs : PartiallyWellOrderedOn s r
hf : ∀ (a₁ : α), a₁ ∈ s → ∀ (a₂ : α), a₂ ∈ s → r a₁ a₂ → r' (f a₁) (f a₂)
g' : ℕ → β
hg' : ∀ (n : ℕ), g' n ∈ f '' s
⊢ ∃ m n, m < n ∧ r' (g' m) (g' n)

tactic: obtain rfl : f ∘ g = g'
state_before: ι : Type ?u.48841
α : Type u_1
β : Type u_2
r : α → α → Prop
r' : β → β → Prop
f : α → β
s t : Set α
a : α
hs : PartiallyWellOrderedOn s r
hf : ∀ (a₁ : α), a₁ ∈ s → ∀ (a₂ : α), a₂ ∈ s → r a₁ a₂ → r' (f a₁) (f a₂)
g' : ℕ → β
g : ℕ → α
hgs : ∀ (n : ℕ), g n ∈ s
heq : ∀ (n : ℕ), f (g n) = g' n
⊢ ∃ m n, m < n ∧ r' (g' m) (g' n)

tactic: exact funext heq
state_before: ι : Type ?u.48841
α : Type u_1
β : Type u_2
r : α → α → Prop
r' : β → β → Prop
f : α → β
s t : Set α
a : α
hs : PartiallyWellOrderedOn s r
hf : ∀ (a₁ : α), a₁ ∈ s → ∀ (a₂ : α), a₂ ∈ s → r a₁ a₂ → r' (f a₁) (f a₂)
g' : ℕ → β
g : ℕ → α
hgs : ∀ (n : ℕ), g n ∈ s
heq : ∀ (n : ℕ), f (g n) = g' n
⊢ f ∘ g = g'

ι : Type ?u.48841
α : Type u_1
β : Type u_2
r : α → α → Prop
r' : β → β → Prop
f : α → β
s t : Set α
a : α
hs : PartiallyWellOrderedOn s r
hf : ∀ (a₁ : α), a₁ ∈ s → ∀ (a₂ : α), a₂ ∈ s → r a₁ a₂ → r' (f a₁) (f a₂)
g : ℕ → α
hgs : ∀ (n : ℕ), g n ∈ s
heq : ∀ (n : ℕ), f (g n) = (f ∘ g) n
⊢ ∃ m n, m < n ∧ r' ((f ∘ g) m) ((f ∘ g) n)

tactic: obtain ⟨m, n, hlt, hmn⟩ := hs g hgs
state_before: ι : Type ?u.48841
α : Type u_1
β : Type u_2
r : α → α → Prop
r' : β → β → Prop
f : α → β
s t : Set α
a : α
hs : PartiallyWellOrderedOn s r
hf : ∀ (a₁ : α), a₁ ∈ s → ∀ (a₂ : α), a₂ ∈ s → r a₁ a₂ → r' (f a₁) (f a₂)
g : ℕ → α
hgs : ∀ (n : ℕ), g n ∈ s
heq : ∀ (n : ℕ), f (g n) = (f ∘ g) n
⊢ ∃ m n, m < n ∧ r' ((f ∘ g) m) ((f ∘ g) n)

tactic: exact ⟨m, n, hlt, hf _ (hgs m) _ (hgs n) hmn⟩
state_before: case intro.intro.intro
ι : Type ?u.48841
α : Type u_1
β : Type u_2
r : α → α → Prop
r' : β → β → Prop
f : α → β
s t : Set α
a : α
hs : PartiallyWellOrderedOn s r
hf : ∀ (a₁ : α), a₁ ∈ s → ∀ (a₂ : α), a₂ ∈ s → r a₁ a₂ → r' (f a₁) (f a₂)
g : ℕ → α
hgs : ∀ (n : ℕ), g n ∈ s
heq : ∀ (n : ℕ), f (g n) = (f ∘ g) n
m n : ℕ
hlt : m < n
hmn : r (g m) (g n)
⊢ ∃ m n, m < n ∧ r' ((f ∘ g) m) ((f ∘ g) n)
Theorem: MeasureTheory.measurePreserving_mul_prod
File: Mathlib/MeasureTheory/Group/Prod.lean

tactic: apply measurePreserving_prod_mul_swap_right μ ν
state_before: G : Type u_1
inst✝⁵ : MeasurableSpace G
inst✝⁴ : Group G
inst✝³ : MeasurableMul₂ G
μ ν : Measure G
inst✝² : SigmaFinite ν
inst✝¹ : SigmaFinite μ
s : Set G
inst✝ : IsMulRightInvariant μ
⊢ MeasurePreserving ?m.553003
Theorem: Polynomial.coeff_ofFinsupp
File: Mathlib/Data/Polynomial/Basic.lean

tactic: rw [coeff]
state_before: R : Type u
a b : R
m n : ℕ
inst✝ : Semiring R
p✝ q : R[X]
p : AddMonoidAlgebra R ℕ
⊢ coeff { toFinsupp := p } = ↑p
Theorem: Fin.zero_add
File: Mathlib/Data/Fin/Basic.lean

tactic: simp [eq_iff_veq, add_def, mod_eq_of_lt (is_lt k)]
state_before: n m : ℕ
inst✝ : NeZero n
k : Fin n
⊢ 0 + k = k
Theorem: Disjoint.sup_sdiff_cancel_right
File: Mathlib/Order/Heyting/Basic.lean

tactic: rw [sup_sdiff, sdiff_self, sup_bot_eq, h.sdiff_eq_left]
state_before: ι : Type ?u.140629
α : Type u_1
β : Type ?u.140635
inst✝ : GeneralizedCoheytingAlgebra α
a b c d : α
h : Disjoint a b
⊢ (a ⊔ b) \ b = a
Theorem: Finset.univ_map_equiv_to_embedding
File: Mathlib/Data/Fintype/Basic.lean

tactic: simp
state_before: α✝ : Type ?u.23858
β✝ : Type ?u.23861
γ : Type ?u.23864
inst✝² : Fintype α✝
s t : Finset α✝
α : Type u_1
β : Type u_2
inst✝¹ : Fintype α
inst✝ : Fintype β
e : α ≃ β
b : β
⊢ ↑(Equiv.toEmbedding e) (↑e.symm b) = b
Theorem: Finset.noncommProd_eq_pow_card
File: Mathlib/Data/Finset/NoncommProd.lean

tactic: rw [noncommProd, Multiset.noncommProd_eq_pow_card _ _ m]
state_before: F : Type ?u.176728
ι : Type ?u.176731
α : Type u_1
β : Type u_2
γ : Type ?u.176740
f✝ : α → β → β
op : α → α → α
inst✝¹ : Monoid β
inst✝ : Monoid γ
s : Finset α
f : α → β
comm : Set.Pairwise ↑s fun a b => Commute (f a) (f b)
m : β
h : ∀ (x : α), x ∈ s → f x = m
⊢ noncommProd s f comm = m ^ card s

tactic: simp only [Finset.card_def, Multiset.card_map]
state_before: F : Type ?u.176728
ι : Type ?u.176731
α : Type u_1
β : Type u_2
γ : Type ?u.176740
f✝ : α → β → β
op : α → α → α
inst✝¹ : Monoid β
inst✝ : Monoid γ
s : Finset α
f : α → β
comm : Set.Pairwise ↑s fun a b => Commute (f a) (f b)
m : β
h : ∀ (x : α), x ∈ s → f x = m
⊢ m ^ ↑Multiset.card (Multiset.map f s.val) = m ^ card s

F : Type ?u.176728
ι : Type ?u.176731
α : Type u_1
β : Type u_2
γ : Type ?u.176740
f✝ : α → β → β
op : α → α → α
inst✝¹ : Monoid β
inst✝ : Monoid γ
s : Finset α
f : α → β
comm : Set.Pairwise ↑s fun a b => Commute (f a) (f b)
m : β
h : ∀ (x : α), x ∈ s → f x = m
⊢ ∀ (x : β), x ∈ Multiset.map f s.val → x = m

tactic: simpa using h
state_before: F : Type ?u.176728
ι : Type ?u.176731
α : Type u_1
β : Type u_2
γ : Type ?u.176740
f✝ : α → β → β
op : α → α → α
inst✝¹ : Monoid β
inst✝ : Monoid γ
s : Finset α
f : α → β
comm : Set.Pairwise ↑s fun a b => Commute (f a) (f b)
m : β
h : ∀ (x : α), x ∈ s → f x = m
⊢ ∀ (x : β), x ∈ Multiset.map f s.val → x = m
Theorem: ContinuousLinearMap.flip_flip
File: Mathlib/Analysis/NormedSpace/OperatorNorm.lean

tactic: ext
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_6
𝕜₃ : Type u_2
E : Type u_3
Eₗ : Type ?u.1101617
F : Type u_5
Fₗ : Type ?u.1101623
G : Type u_4
Gₗ : Type ?u.1101629
𝓕 : Type ?u.1101632
inst✝¹⁷ : SeminormedAddCommGroup E
inst✝¹⁶ : SeminormedAddCommGroup Eₗ
inst✝¹⁵ : SeminormedAddCommGroup F
inst✝¹⁴ : SeminormedAddCommGroup Fₗ
inst✝¹³ : SeminormedAddCommGroup G
inst✝¹² : SeminormedAddCommGroup Gₗ
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NontriviallyNormedField 𝕜₂
inst✝⁹ : NontriviallyNormedField 𝕜₃
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 Eₗ
inst✝⁶ : NormedSpace 𝕜₂ F
inst✝⁵ : NormedSpace 𝕜 Fₗ
inst✝⁴ : NormedSpace 𝕜₃ G
inst✝³ : NormedSpace 𝕜 Gₗ
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : RingHomIsometric σ₂₃
inst✝ : RingHomIsometric σ₁₃
f : E →SL[σ₁₃] F →SL[σ₂₃] G
⊢ flip (flip f) = f

tactic: rfl
state_before: case h.h
𝕜 : Type u_1
𝕜₂ : Type u_6
𝕜₃ : Type u_2
E : Type u_3
Eₗ : Type ?u.1101617
F : Type u_5
Fₗ : Type ?u.1101623
G : Type u_4
Gₗ : Type ?u.1101629
𝓕 : Type ?u.1101632
inst✝¹⁷ : SeminormedAddCommGroup E
inst✝¹⁶ : SeminormedAddCommGroup Eₗ
inst✝¹⁵ : SeminormedAddCommGroup F
inst✝¹⁴ : SeminormedAddCommGroup Fₗ
inst✝¹³ : SeminormedAddCommGroup G
inst✝¹² : SeminormedAddCommGroup Gₗ
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NontriviallyNormedField 𝕜₂
inst✝⁹ : NontriviallyNormedField 𝕜₃
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 Eₗ
inst✝⁶ : NormedSpace 𝕜₂ F
inst✝⁵ : NormedSpace 𝕜 Fₗ
inst✝⁴ : NormedSpace 𝕜₃ G
inst✝³ : NormedSpace 𝕜 Gₗ
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : RingHomIsometric σ₂₃
inst✝ : RingHomIsometric σ₁₃
f : E →SL[σ₁₃] F →SL[σ₂₃] G
x✝¹ : E
x✝ : F
⊢ ↑(↑(flip (flip f)) x✝¹) x✝ = ↑(↑f x✝¹) x✝
Theorem: MvPolynomial.vars_0
File: Mathlib/Data/MvPolynomial/Variables.lean

tactic: classical rw [vars_def, degrees_zero, Multiset.toFinset_zero]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.126522
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
⊢ vars 0 = ∅

tactic: rw [vars_def, degrees_zero, Multiset.toFinset_zero]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.126522
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
⊢ vars 0 = ∅
Theorem: Rat.floor_def'
File: Mathlib/Data/Rat/Floor.lean

tactic: rw [Rat.floor]
state_before: α : Type ?u.26
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
a : ℚ
⊢ Rat.floor a = a.num / ↑a.den

tactic: split
state_before: α : Type ?u.26
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
a : ℚ
⊢ (if a.den = 1 then a.num else a.num / ↑a.den) = a.num / ↑a.den

tactic: . next h => simp [h]
state_before: case inl
α : Type ?u.26
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
a : ℚ
h✝ : a.den = 1
⊢ a.num = a.num / ↑a.den

case inr
α : Type ?u.26
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
a : ℚ
h✝ : ¬a.den = 1
⊢ a.num / ↑a.den = a.num / ↑a.den

tactic: . next => rfl
state_before: case inr
α : Type ?u.26
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
a : ℚ
h✝ : ¬a.den = 1
⊢ a.num / ↑a.den = a.num / ↑a.den

tactic: next h => simp [h]
state_before: case inl
α : Type ?u.26
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
a : ℚ
h✝ : a.den = 1
⊢ a.num = a.num / ↑a.den

tactic: simp [h]
state_before: α : Type ?u.26
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
a : ℚ
h : a.den = 1
⊢ a.num = a.num / ↑a.den

tactic: next => rfl
state_before: case inr
α : Type ?u.26
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
a : ℚ
h✝ : ¬a.den = 1
⊢ a.num / ↑a.den = a.num / ↑a.den

tactic: rfl
state_before: α : Type ?u.26
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
a : ℚ
h✝ : ¬a.den = 1
⊢ a.num / ↑a.den = a.num / ↑a.den
Theorem: List.Nat.antidiagonalTuple_zero_right
File: Mathlib/Data/Fin/Tuple/NatAntidiagonal.lean

tactic: rw [antidiagonalTuple, antidiagonal_zero, List.bind_singleton, antidiagonalTuple_zero_right k,
  List.map_singleton]
state_before: k : ℕ
⊢ antidiagonalTuple (k + 1) 0 = [0]

tactic: exact congr_arg (fun x => [x]) Matrix.cons_zero_zero
state_before: k : ℕ
⊢ [Fin.cons (0, 0).fst 0] = [0]
Theorem: Rat.forall
File: Mathlib/Data/Rat/Lemmas.lean

tactic: have := h q.num q.den
state_before: p : ℚ → Prop
h : ∀ (a b : ℤ), p (↑a / ↑b)
q : ℚ
⊢ p q

tactic: rwa [Int.cast_ofNat, num_div_den q] at this
state_before: p : ℚ → Prop
h : ∀ (a b : ℤ), p (↑a / ↑b)
q : ℚ
this : p (↑q.num / ↑↑q.den)
⊢ p q
Theorem: hasStrictDerivAt_exp_of_mem_ball
File: Mathlib/Analysis/SpecialFunctions/Exponential.lean

tactic: simpa using (hasStrictFDerivAt_exp_of_mem_ball hx).hasStrictDerivAt
state_before: 𝕂 : Type u_1
inst✝² : NontriviallyNormedField 𝕂
inst✝¹ : CompleteSpace 𝕂
inst✝ : CharZero 𝕂
x : 𝕂
hx : x ∈ EMetric.ball 0 (FormalMultilinearSeries.radius (expSeries 𝕂 𝕂))
⊢ HasStrictDerivAt (exp 𝕂) (exp 𝕂 x) x
Theorem: ConcaveOn.set_average_mem_hypograph
File: Mathlib/Analysis/Convex/Integral.lean

tactic: simpa only [mem_setOf_eq, Pi.neg_apply, average_neg, neg_le_neg_iff] using
  hg.neg.set_average_mem_epigraph hgc.neg hsc h0 ht hfs hfi hgi.neg
state_before: α : Type u_2
E : Type u_1
F : Type ?u.1216893
m0 : MeasurableSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
μ : MeasureTheory.Measure α
s : Set E
t : Set α
f : α → E
g : E → ℝ
C : ℝ
hg : ConcaveOn ℝ s g
hgc : ContinuousOn g s
hsc : IsClosed s
h0 : ↑↑μ t ≠ 0
ht : ↑↑μ t ≠ ⊤
hfs : ∀ᵐ (x : α) ∂Measure.restrict μ t, f x ∈ s
hfi : IntegrableOn f t
hgi : IntegrableOn (g ∘ f) t
⊢ (⨍ (x : α) in t, f x ∂μ, ⨍ (x : α) in t, g (f x) ∂μ) ∈ {p | p.fst ∈ s ∧ p.snd ≤ g p.fst}
Theorem: CategoryTheory.IsCofiltered.cospan
File: Mathlib/CategoryTheory/Filtered.lean

tactic: simpa only [Category.assoc] using he
state_before: C : Type u
inst✝¹ : Category C
inst✝ : IsCofilteredOrEmpty C
i j j' : C
f : j ⟶ i
f' : j' ⟶ i
K : C
G : K ⟶ j
G' : K ⟶ j'
h✝ : True
k : C
e : k ⟶ K
he : e ≫ G ≫ f = e ≫ G' ≫ f'
⊢ (e ≫ G) ≫ f = (e ≫ G') ≫ f'
Theorem: Multiset.map_univ
File: Mathlib/Data/Multiset/Fintype.lean

tactic: erw [← Multiset.map_map]
state_before: α : Type u_2
inst✝ : DecidableEq α
m✝ : Multiset α
β : Type u_1
m : Multiset α
f : α → β
⊢ map (fun x => f x.fst) Finset.univ.val = map f m

tactic: rw [Multiset.map_univ_coe]
state_before: α : Type u_2
inst✝ : DecidableEq α
m✝ : Multiset α
β : Type u_1
m : Multiset α
f : α → β
⊢ map f (map (fun x => x.fst) Finset.univ.val) = map f m
Theorem: Option.orElse_none
File: Std/Data/Option/Lemmas.lean

tactic: cases x <;> rfl
state_before: α : Type u_1
x : Option α
⊢ (HOrElse.hOrElse x fun x => none) = x
Theorem: Set.injOn_of_ncard_image_eq
File: Mathlib/Data/Set/Ncard.lean

tactic: have hft := hs.fintype
state_before: α : Type u_2
β : Type u_1
s t : Set α
a b x y : α
f : α → β
h : ncard (f '' s) = ncard s
hs : autoParam (Set.Finite s) _auto✝
⊢ InjOn f s

tactic: rw [@ncard_eq_toFinset_card _ _ (hs.image f), @ncard_eq_toFinset_card _ _ hs] at h
state_before: α : Type u_2
β : Type u_1
s t : Set α
a b x y : α
f : α → β
h : ncard (f '' s) = ncard s
hs : autoParam (Set.Finite s) _auto✝
hft : Fintype ↑s
⊢ InjOn f s

tactic: rw [←coe_toFinset s]
state_before: α : Type u_2
β : Type u_1
s t : Set α
a b x y : α
f : α → β
hs : autoParam (Set.Finite s) _auto✝
h : Finset.card (Finite.toFinset (_ : Set.Finite (f '' s))) = Finset.card (Finite.toFinset hs)
hft : Fintype ↑s
⊢ InjOn f s

tactic: apply Finset.injOn_of_card_image_eq
state_before: α : Type u_2
β : Type u_1
s t : Set α
a b x y : α
f : α → β
hs : autoParam (Set.Finite s) _auto✝
h : Finset.card (Finite.toFinset (_ : Set.Finite (f '' s))) = Finset.card (Finite.toFinset hs)
hft : Fintype ↑s
⊢ InjOn f ↑(toFinset s)

tactic: convert h
state_before: case H
α : Type u_2
β : Type u_1
s t : Set α
a b x y : α
f : α → β
hs : autoParam (Set.Finite s) _auto✝
h : Finset.card (Finite.toFinset (_ : Set.Finite (f '' s))) = Finset.card (Finite.toFinset hs)
hft : Fintype ↑s
⊢ Finset.card (Finset.image f (toFinset s)) = Finset.card (toFinset s)

tactic: ext
state_before: case h.e'_3.h.e'_2
α : Type u_2
β : Type u_1
s t : Set α
a b x y : α
f : α → β
hs : autoParam (Set.Finite s) _auto✝
h : Finset.card (Finite.toFinset (_ : Set.Finite (f '' s))) = Finset.card (Finite.toFinset hs)
hft : Fintype ↑s
⊢ toFinset s = Finite.toFinset hs

tactic: simp
state_before: case h.e'_3.h.e'_2.a
α : Type u_2
β : Type u_1
s t : Set α
a b x y : α
f : α → β
hs : autoParam (Set.Finite s) _auto✝
h : Finset.card (Finite.toFinset (_ : Set.Finite (f '' s))) = Finset.card (Finite.toFinset hs)
hft : Fintype ↑s
a✝ : α
⊢ a✝ ∈ toFinset s ↔ a✝ ∈ Finite.toFinset hs

tactic: ext
state_before: case h.e'_2.h.e'_2
α : Type u_2
β : Type u_1
s t : Set α
a b x y : α
f : α → β
hs : autoParam (Set.Finite s) _auto✝
h : Finset.card (Finite.toFinset (_ : Set.Finite (f '' s))) = Finset.card (Finite.toFinset hs)
hft : Fintype ↑s
⊢ Finset.image f (toFinset s) = Finite.toFinset (_ : Set.Finite (f '' s))

tactic: simp
state_before: case h.e'_2.h.e'_2.a
α : Type u_2
β : Type u_1
s t : Set α
a b x y : α
f : α → β
hs : autoParam (Set.Finite s) _auto✝
h : Finset.card (Finite.toFinset (_ : Set.Finite (f '' s))) = Finset.card (Finite.toFinset hs)
hft : Fintype ↑s
a✝ : β
⊢ a✝ ∈ Finset.image f (toFinset s) ↔ a✝ ∈ Finite.toFinset (_ : Set.Finite (f '' s))
Theorem: Set.chainHeight_eq_iSup_Iic
File: Mathlib/Order/Height.lean

tactic: simp_rw [← chainHeight_dual (_ ∩ _)]
state_before: α : Type u_1
β : Type ?u.33523
s t : Set α
inst✝ : Preorder α
⊢ chainHeight s = ⨆ (i : α) (_ : i ∈ s), chainHeight (s ∩ Iic i)

tactic: rw [← chainHeight_dual, chainHeight_eq_iSup_Ici]
state_before: α : Type u_1
β : Type ?u.33523
s t : Set α
inst✝ : Preorder α
⊢ chainHeight s = ⨆ (i : α) (_ : i ∈ s), chainHeight (↑ofDual ⁻¹' (s ∩ Iic i))

tactic: rfl
state_before: α : Type u_1
β : Type ?u.33523
s t : Set α
inst✝ : Preorder α
⊢ (⨆ (i : αᵒᵈ) (_ : i ∈ ↑ofDual ⁻¹' s), chainHeight (↑ofDual ⁻¹' s ∩ Ici i)) =
    ⨆ (i : α) (_ : i ∈ s), chainHeight (↑ofDual ⁻¹' (s ∩ Iic i))
Theorem: IsLocalizedModule.mk'_smul
File: Mathlib/Algebra/Module/LocalizedModule.lean

tactic: delta mk'
state_before: R : Type u_1
inst✝⁷ : CommRing R
S : Submonoid R
M : Type u_3
M' : Type u_2
M'' : Type ?u.808793
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
r : R
m : M
s : { x // x ∈ S }
⊢ mk' f (r • m) s = r • mk' f m s

tactic: rw [← LocalizedModule.smul'_mk, LinearMap.map_smul]
state_before: R : Type u_1
inst✝⁷ : CommRing R
S : Submonoid R
M : Type u_3
M' : Type u_2
M'' : Type ?u.808793
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
r : R
m : M
s : { x // x ∈ S }
⊢ ↑(fromLocalizedModule S f) (LocalizedModule.mk (r • m) s) = r • ↑(fromLocalizedModule S f) (LocalizedModule.mk m s)
Theorem: dense_compl_singleton
File: Mathlib/Topology/Basic.lean

tactic: intro y
state_before: α : Type u
β : Type v
ι : Sort w
a : α
s s₁ s₂ t : Set α
p p₁ p₂ : α → Prop
inst✝¹ : TopologicalSpace α
x : α
inst✝ : NeBot (𝓝[{x}ᶜ] x)
⊢ Dense ({x}ᶜ)

tactic: rcases eq_or_ne y x with (rfl | hne)
state_before: α : Type u
β : Type v
ι : Sort w
a : α
s s₁ s₂ t : Set α
p p₁ p₂ : α → Prop
inst✝¹ : TopologicalSpace α
x : α
inst✝ : NeBot (𝓝[{x}ᶜ] x)
y : α
⊢ y ∈ closure ({x}ᶜ)

tactic: rwa [mem_closure_iff_nhdsWithin_neBot]
state_before: case inl
α : Type u
β : Type v
ι : Sort w
a : α
s s₁ s₂ t : Set α
p p₁ p₂ : α → Prop
inst✝¹ : TopologicalSpace α
y : α
inst✝ : NeBot (𝓝[{y}ᶜ] y)
⊢ y ∈ closure ({y}ᶜ)

tactic: exact subset_closure hne
state_before: case inr
α : Type u
β : Type v
ι : Sort w
a : α
s s₁ s₂ t : Set α
p p₁ p₂ : α → Prop
inst✝¹ : TopologicalSpace α
x : α
inst✝ : NeBot (𝓝[{x}ᶜ] x)
y : α
hne : y ≠ x
⊢ y ∈ closure ({x}ᶜ)