1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Set.encard_union_eq
File: Mathlib/Data/Set/Card.lean

tactic: classical
have e := (Equiv.Set.union (by rwa [subset_empty_iff, ← disjoint_iff_inter_eq_empty])).symm
simp [encard, ← PartENat.card_congr e, PartENat.card_sum, PartENat.withTopEquiv]
state_before: α : Type u_1
β : Type u_2
s t : Set α
h : Disjoint s t
⊢ (s ∪ t).encard = s.encard + t.encard
state_after: no goals

tactic: have e := (Equiv.Set.union (by rwa [subset_empty_iff, ← disjoint_iff_inter_eq_empty])).symm
state_before: α : Type u_1
β : Type u_2
s t : Set α
h : Disjoint s t
⊢ (s ∪ t).encard = s.encard + t.encard
state_after: α : Type u_1
β : Type u_2
s t : Set α
h : Disjoint s t
e : ↑s ⊕ ↑t ≃ ↑(s ∪ t)
⊢ (s ∪ t).encard = s.encard + t.encard

tactic: simp [encard, ← PartENat.card_congr e, PartENat.card_sum, PartENat.withTopEquiv]
state_before: α : Type u_1
β : Type u_2
s t : Set α
h : Disjoint s t
e : ↑s ⊕ ↑t ≃ ↑(s ∪ t)
⊢ (s ∪ t).encard = s.encard + t.encard
state_after: no goals

tactic: rwa [subset_empty_iff, ← disjoint_iff_inter_eq_empty]
state_before: α : Type u_1
β : Type u_2
s t : Set α
h : Disjoint s t
⊢ ?m.6003 ∩ ?m.6004 ⊆ ∅
state_after: no goals
Theorem: biInf_congr'
File: Mathlib/Order/CompleteLattice.lean

tactic: congr
state_before: α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : InfSet α
f✝ g✝ : ι → α
p : ι → Prop
f g : (i : ι) → p i → α
h : ∀ (i : ι) (hi : p i), f i hi = g i hi
⊢ ⨅ i, ⨅ (hi : p i), f i hi = ⨅ i, ⨅ (hi : p i), g i hi
state_after: case e_s
α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : InfSet α
f✝ g✝ : ι → α
p : ι → Prop
f g : (i : ι) → p i → α
h : ∀ (i : ι) (hi : p i), f i hi = g i hi
⊢ (fun i => ⨅ (hi : p i), f i hi) = fun i => ⨅ (hi : p i), g i hi

tactic: ext i
state_before: case e_s
α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : InfSet α
f✝ g✝ : ι → α
p : ι → Prop
f g : (i : ι) → p i → α
h : ∀ (i : ι) (hi : p i), f i hi = g i hi
⊢ (fun i => ⨅ (hi : p i), f i hi) = fun i => ⨅ (hi : p i), g i hi
state_after: case e_s.h
α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : InfSet α
f✝ g✝ : ι → α
p : ι → Prop
f g : (i : ι) → p i → α
h : ∀ (i : ι) (hi : p i), f i hi = g i hi
i : ι
⊢ ⨅ (hi : p i), f i hi = ⨅ (hi : p i), g i hi

tactic: congr
state_before: case e_s.h
α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : InfSet α
f✝ g✝ : ι → α
p : ι → Prop
f g : (i : ι) → p i → α
h : ∀ (i : ι) (hi : p i), f i hi = g i hi
i : ι
⊢ ⨅ (hi : p i), f i hi = ⨅ (hi : p i), g i hi
state_after: case e_s.h.e_s
α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : InfSet α
f✝ g✝ : ι → α
p : ι → Prop
f g : (i : ι) → p i → α
h : ∀ (i : ι) (hi : p i), f i hi = g i hi
i : ι
⊢ (fun hi => f i hi) = fun hi => g i hi

tactic: ext hi
state_before: case e_s.h.e_s
α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : InfSet α
f✝ g✝ : ι → α
p : ι → Prop
f g : (i : ι) → p i → α
h : ∀ (i : ι) (hi : p i), f i hi = g i hi
i : ι
⊢ (fun hi => f i hi) = fun hi => g i hi
state_after: case e_s.h.e_s.h
α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : InfSet α
f✝ g✝ : ι → α
p : ι → Prop
f g : (i : ι) → p i → α
h : ∀ (i : ι) (hi : p i), f i hi = g i hi
i : ι
hi : p i
⊢ f i hi = g i hi

tactic: exact h i hi
state_before: case e_s.h.e_s.h
α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : InfSet α
f✝ g✝ : ι → α
p : ι → Prop
f g : (i : ι) → p i → α
h : ∀ (i : ι) (hi : p i), f i hi = g i hi
i : ι
hi : p i
⊢ f i hi = g i hi
state_after: no goals
Theorem: Down.erase_mem_compression_of_mem_compression
File: Mathlib/Combinatorics/SetFamily/Compression/Down.lean

tactic: simp_rw [mem_compression, erase_idem]
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s : Finset α
a : α
⊢ s ∈ 𝓓 a 𝒜 → s.erase a ∈ 𝓓 a 𝒜
state_after: α : Type u_1
inst✝ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s : Finset α
a : α
⊢ s ∈ 𝒜 ∧ s.erase a ∈ 𝒜 ∨ s ∉ 𝒜 ∧ insert a s ∈ 𝒜 →
    s.erase a ∈ 𝒜 ∧ s.erase a ∈ 𝒜 ∨ s.erase a ∉ 𝒜 ∧ insert a (s.erase a) ∈ 𝒜

tactic: refine Or.imp (fun h => ⟨h.2, h.2⟩) fun h => ?_
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s : Finset α
a : α
⊢ s ∈ 𝒜 ∧ s.erase a ∈ 𝒜 ∨ s ∉ 𝒜 ∧ insert a s ∈ 𝒜 →
    s.erase a ∈ 𝒜 ∧ s.erase a ∈ 𝒜 ∨ s.erase a ∉ 𝒜 ∧ insert a (s.erase a) ∈ 𝒜
state_after: α : Type u_1
inst✝ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s : Finset α
a : α
h : s ∉ 𝒜 ∧ insert a s ∈ 𝒜
⊢ s.erase a ∉ 𝒜 ∧ insert a (s.erase a) ∈ 𝒜

tactic: rwa [erase_eq_of_not_mem (insert_ne_self.1 <| ne_of_mem_of_not_mem h.2 h.1)]
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s : Finset α
a : α
h : s ∉ 𝒜 ∧ insert a s ∈ 𝒜
⊢ s.erase a ∉ 𝒜 ∧ insert a (s.erase a) ∈ 𝒜
state_after: no goals
Theorem: HasStrictFDerivAt.of_nmem_tsupport
File: Mathlib/Analysis/Calculus/FDeriv/Basic.lean

tactic: rw [not_mem_tsupport_iff_eventuallyEq] at h
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
x : E
h : x ∉ tsupport f
⊢ HasStrictFDerivAt f 0 x
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
x : E
h : f =ᶠ[𝓝 x] 0
⊢ HasStrictFDerivAt f 0 x

tactic: exact (hasStrictFDerivAt_const (0 : F) x).congr_of_eventuallyEq h.symm
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
x : E
h : f =ᶠ[𝓝 x] 0
⊢ HasStrictFDerivAt f 0 x
state_after: no goals
Theorem: Polynomial.natDegree_sub_le_iff_right
File: Mathlib/Algebra/Polynomial/Degree/Lemmas.lean

tactic: rwa [natDegree_sub, natDegree_sub_le_iff_left]
state_before: R : Type u
S : Type v
ι : Type w
a b : R
m n : ℕ
inst✝ : Ring R
p q : R[X]
pn : p.natDegree ≤ n
⊢ (p - q).natDegree ≤ n ↔ q.natDegree ≤ n
state_after: no goals
Theorem: Balanced.subset_smul
File: Mathlib/Analysis/LocallyConvex/Basic.lean

tactic: rw [← @norm_one 𝕜] at ha
state_before: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝⁶ : NormedField 𝕜
inst✝⁵ : NormedRing 𝕝
inst✝⁴ : NormedSpace 𝕜 𝕝
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : SMulWithZero 𝕝 E
inst✝ : IsScalarTower 𝕜 𝕝 E
s t u v A B : Set E
x : E
a b : 𝕜
hA : Balanced 𝕜 A
ha : 1 ≤ ‖a‖
⊢ A ⊆ a • A
state_after: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝⁶ : NormedField 𝕜
inst✝⁵ : NormedRing 𝕝
inst✝⁴ : NormedSpace 𝕜 𝕝
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : SMulWithZero 𝕝 E
inst✝ : IsScalarTower 𝕜 𝕝 E
s t u v A B : Set E
x : E
a b : 𝕜
hA : Balanced 𝕜 A
ha : ‖1‖ ≤ ‖a‖
⊢ A ⊆ a • A

tactic: simpa using hA.smul_mono ha
state_before: 𝕜 : Type u_1
𝕝 : Type u_2
E : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝⁶ : NormedField 𝕜
inst✝⁵ : NormedRing 𝕝
inst✝⁴ : NormedSpace 𝕜 𝕝
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : SMulWithZero 𝕝 E
inst✝ : IsScalarTower 𝕜 𝕝 E
s t u v A B : Set E
x : E
a b : 𝕜
hA : Balanced 𝕜 A
ha : ‖1‖ ≤ ‖a‖
⊢ A ⊆ a • A
state_after: no goals
Theorem: deriv_circleMap_eq_zero_iff
File: Mathlib/MeasureTheory/Integral/CircleIntegral.lean

tactic: simp [I_ne_zero]
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
c : ℂ
R θ : ℝ
⊢ deriv (circleMap c R) θ = 0 ↔ R = 0
state_after: no goals
Theorem: Equiv.Perm.mem_support
File: Mathlib/GroupTheory/Perm/Support.lean

tactic: rw [support, mem_filter, and_iff_right (mem_univ x)]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
x : α
⊢ x ∈ f.support ↔ f x ≠ x
state_after: no goals
Theorem: CategoryTheory.Subgroupoid.map_objs_eq
File: Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean

tactic: ext x
state_before: C : Type u
inst✝¹ : Groupoid C
S : Subgroupoid C
D : Type u_1
inst✝ : Groupoid D
φ : C ⥤ D
hφ : Function.Injective φ.obj
⊢ (map φ hφ S).objs = φ.obj '' S.objs
state_after: case h
C : Type u
inst✝¹ : Groupoid C
S : Subgroupoid C
D : Type u_1
inst✝ : Groupoid D
φ : C ⥤ D
hφ : Function.Injective φ.obj
x : D
⊢ x ∈ (map φ hφ S).objs ↔ x ∈ φ.obj '' S.objs

tactic: convert mem_map_objs_iff S φ hφ x
state_before: case h
C : Type u
inst✝¹ : Groupoid C
S : Subgroupoid C
D : Type u_1
inst✝ : Groupoid D
φ : C ⥤ D
hφ : Function.Injective φ.obj
x : D
⊢ x ∈ (map φ hφ S).objs ↔ x ∈ φ.obj '' S.objs
state_after: no goals
Theorem: Sum.forall_sum
File: .lake/packages/batteries/Batteries/Data/Sum/Lemmas.lean

tactic: refine ⟨fun h fa fb => h _, fun h fab => ?_⟩
state_before: α : Type u_1
β : Type u_2
γ : α ⊕ β → Sort u_3
p : ((ab : α ⊕ β) → γ ab) → Prop
⊢ (∀ (fab : (ab : α ⊕ β) → γ ab), p fab) ↔
    ∀ (fa : (val : α) → γ (inl val)) (fb : (val : β) → γ (inr val)), p fun t => rec fa fb t
state_after: α : Type u_1
β : Type u_2
γ : α ⊕ β → Sort u_3
p : ((ab : α ⊕ β) → γ ab) → Prop
h : ∀ (fa : (val : α) → γ (inl val)) (fb : (val : β) → γ (inr val)), p fun t => rec fa fb t
fab : (ab : α ⊕ β) → γ ab
⊢ p fab

tactic: have h1 : fab = Sum.rec (fun a => fab (Sum.inl a)) (fun b => fab (Sum.inr b)) := by
  ext ab; cases ab <;> rfl
state_before: α : Type u_1
β : Type u_2
γ : α ⊕ β → Sort u_3
p : ((ab : α ⊕ β) → γ ab) → Prop
h : ∀ (fa : (val : α) → γ (inl val)) (fb : (val : β) → γ (inr val)), p fun t => rec fa fb t
fab : (ab : α ⊕ β) → γ ab
⊢ p fab
state_after: α : Type u_1
β : Type u_2
γ : α ⊕ β → Sort u_3
p : ((ab : α ⊕ β) → γ ab) → Prop
h : ∀ (fa : (val : α) → γ (inl val)) (fb : (val : β) → γ (inr val)), p fun t => rec fa fb t
fab : (ab : α ⊕ β) → γ ab
h1 : fab = fun t => rec (fun a => fab (inl a)) (fun b => fab (inr b)) t
⊢ p fab

tactic: rw [h1]
state_before: α : Type u_1
β : Type u_2
γ : α ⊕ β → Sort u_3
p : ((ab : α ⊕ β) → γ ab) → Prop
h : ∀ (fa : (val : α) → γ (inl val)) (fb : (val : β) → γ (inr val)), p fun t => rec fa fb t
fab : (ab : α ⊕ β) → γ ab
h1 : fab = fun t => rec (fun a => fab (inl a)) (fun b => fab (inr b)) t
⊢ p fab
state_after: α : Type u_1
β : Type u_2
γ : α ⊕ β → Sort u_3
p : ((ab : α ⊕ β) → γ ab) → Prop
h : ∀ (fa : (val : α) → γ (inl val)) (fb : (val : β) → γ (inr val)), p fun t => rec fa fb t
fab : (ab : α ⊕ β) → γ ab
h1 : fab = fun t => rec (fun a => fab (inl a)) (fun b => fab (inr b)) t
⊢ p fun t => rec (fun a => fab (inl a)) (fun b => fab (inr b)) t

tactic: exact h _ _
state_before: α : Type u_1
β : Type u_2
γ : α ⊕ β → Sort u_3
p : ((ab : α ⊕ β) → γ ab) → Prop
h : ∀ (fa : (val : α) → γ (inl val)) (fb : (val : β) → γ (inr val)), p fun t => rec fa fb t
fab : (ab : α ⊕ β) → γ ab
h1 : fab = fun t => rec (fun a => fab (inl a)) (fun b => fab (inr b)) t
⊢ p fun t => rec (fun a => fab (inl a)) (fun b => fab (inr b)) t
state_after: no goals

tactic: ext ab
state_before: α : Type u_1
β : Type u_2
γ : α ⊕ β → Sort u_3
p : ((ab : α ⊕ β) → γ ab) → Prop
h : ∀ (fa : (val : α) → γ (inl val)) (fb : (val : β) → γ (inr val)), p fun t => rec fa fb t
fab : (ab : α ⊕ β) → γ ab
⊢ fab = fun t => rec (fun a => fab (inl a)) (fun b => fab (inr b)) t
state_after: case h
α : Type u_1
β : Type u_2
γ : α ⊕ β → Sort u_3
p : ((ab : α ⊕ β) → γ ab) → Prop
h : ∀ (fa : (val : α) → γ (inl val)) (fb : (val : β) → γ (inr val)), p fun t => rec fa fb t
fab : (ab : α ⊕ β) → γ ab
ab : α ⊕ β
⊢ fab ab = rec (fun a => fab (inl a)) (fun b => fab (inr b)) ab

tactic: cases ab <;> rfl
state_before: case h
α : Type u_1
β : Type u_2
γ : α ⊕ β → Sort u_3
p : ((ab : α ⊕ β) → γ ab) → Prop
h : ∀ (fa : (val : α) → γ (inl val)) (fb : (val : β) → γ (inr val)), p fun t => rec fa fb t
fab : (ab : α ⊕ β) → γ ab
ab : α ⊕ β
⊢ fab ab = rec (fun a => fab (inl a)) (fun b => fab (inr b)) ab
state_after: no goals
Theorem: lp.inner_single_right
File: Mathlib/Analysis/InnerProductSpace/l2Space.lean

tactic: simpa [inner_conj_symm] using congr_arg conj (@inner_single_left _ 𝕜 _ _ _ _ i a f)
state_before: ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : RCLike 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type u_4
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
i : ι
a : G i
f : ↥(lp G 2)
⊢ ⟪f, lp.single 2 i a⟫_𝕜 = ⟪↑f i, a⟫_𝕜
state_after: no goals
Theorem: Configuration.sum_lineCount_eq_sum_pointCount
File: Mathlib/Combinatorics/Configuration.lean

tactic: simp only [lineCount, pointCount, Nat.card_eq_fintype_card, ← Fintype.card_sigma]
state_before: P : Type u_1
L : Type u_2
inst✝² : Membership P L
inst✝¹ : Fintype P
inst✝ : Fintype L
⊢ ∑ p : P, lineCount L p = ∑ l : L, pointCount P l
state_after: P : Type u_1
L : Type u_2
inst✝² : Membership P L
inst✝¹ : Fintype P
inst✝ : Fintype L
⊢ Fintype.card ((i : P) × { l // i ∈ l }) = Fintype.card ((i : L) × { p // p ∈ i })

tactic: apply Fintype.card_congr
state_before: P : Type u_1
L : Type u_2
inst✝² : Membership P L
inst✝¹ : Fintype P
inst✝ : Fintype L
⊢ Fintype.card ((i : P) × { l // i ∈ l }) = Fintype.card ((i : L) × { p // p ∈ i })
state_after: case f
P : Type u_1
L : Type u_2
inst✝² : Membership P L
inst✝¹ : Fintype P
inst✝ : Fintype L
⊢ (i : P) × { l // i ∈ l } ≃ (i : L) × { p // p ∈ i }
Theorem: OrderIso.infIrredUpperSet_symm_apply
File: Mathlib/Order/Birkhoff.lean

tactic: classical
obtain ⟨s, hs⟩ := s
obtain ⟨a, rfl⟩ := infIrred_iff_of_finite.1 hs
cases nonempty_fintype α
have : LocallyFiniteOrder α := Fintype.toLocallyFiniteOrder
simp [symm_apply_eq]
state_before: α : Type u_1
inst✝³ : SemilatticeInf α
inst✝² : OrderTop α
inst✝¹ : Finite α
s : { s // InfIrred s }
inst✝ : Fintype ↥↑s
⊢ infIrredUpperSet.symm s = (↑↑s).toFinset.inf id
state_after: no goals

tactic: obtain ⟨s, hs⟩ := s
state_before: α : Type u_1
inst✝³ : SemilatticeInf α
inst✝² : OrderTop α
inst✝¹ : Finite α
s : { s // InfIrred s }
inst✝ : Fintype ↥↑s
⊢ infIrredUpperSet.symm s = (↑↑s).toFinset.inf id
state_after: case mk
α : Type u_1
inst✝³ : SemilatticeInf α
inst✝² : OrderTop α
inst✝¹ : Finite α
s : UpperSet α
hs : InfIrred s
inst✝ : Fintype ↥↑⟨s, hs⟩
⊢ infIrredUpperSet.symm ⟨s, hs⟩ = (↑↑⟨s, hs⟩).toFinset.inf id

tactic: obtain ⟨a, rfl⟩ := infIrred_iff_of_finite.1 hs
state_before: case mk
α : Type u_1
inst✝³ : SemilatticeInf α
inst✝² : OrderTop α
inst✝¹ : Finite α
s : UpperSet α
hs : InfIrred s
inst✝ : Fintype ↥↑⟨s, hs⟩
⊢ infIrredUpperSet.symm ⟨s, hs⟩ = (↑↑⟨s, hs⟩).toFinset.inf id
state_after: case mk.intro
α : Type u_1
inst✝³ : SemilatticeInf α
inst✝² : OrderTop α
inst✝¹ : Finite α
a : α
hs : InfIrred (UpperSet.Ici a)
inst✝ : Fintype ↥↑⟨UpperSet.Ici a, hs⟩
⊢ infIrredUpperSet.symm ⟨UpperSet.Ici a, hs⟩ = (↑↑⟨UpperSet.Ici a, hs⟩).toFinset.inf id

tactic: cases nonempty_fintype α
state_before: case mk.intro
α : Type u_1
inst✝³ : SemilatticeInf α
inst✝² : OrderTop α
inst✝¹ : Finite α
a : α
hs : InfIrred (UpperSet.Ici a)
inst✝ : Fintype ↥↑⟨UpperSet.Ici a, hs⟩
⊢ infIrredUpperSet.symm ⟨UpperSet.Ici a, hs⟩ = (↑↑⟨UpperSet.Ici a, hs⟩).toFinset.inf id
state_after: case mk.intro.intro
α : Type u_1
inst✝³ : SemilatticeInf α
inst✝² : OrderTop α
inst✝¹ : Finite α
a : α
hs : InfIrred (UpperSet.Ici a)
inst✝ : Fintype ↥↑⟨UpperSet.Ici a, hs⟩
val✝ : Fintype α
⊢ infIrredUpperSet.symm ⟨UpperSet.Ici a, hs⟩ = (↑↑⟨UpperSet.Ici a, hs⟩).toFinset.inf id

tactic: have : LocallyFiniteOrder α := Fintype.toLocallyFiniteOrder
state_before: case mk.intro.intro
α : Type u_1
inst✝³ : SemilatticeInf α
inst✝² : OrderTop α
inst✝¹ : Finite α
a : α
hs : InfIrred (UpperSet.Ici a)
inst✝ : Fintype ↥↑⟨UpperSet.Ici a, hs⟩
val✝ : Fintype α
⊢ infIrredUpperSet.symm ⟨UpperSet.Ici a, hs⟩ = (↑↑⟨UpperSet.Ici a, hs⟩).toFinset.inf id
state_after: case mk.intro.intro
α : Type u_1
inst✝³ : SemilatticeInf α
inst✝² : OrderTop α
inst✝¹ : Finite α
a : α
hs : InfIrred (UpperSet.Ici a)
inst✝ : Fintype ↥↑⟨UpperSet.Ici a, hs⟩
val✝ : Fintype α
this : LocallyFiniteOrder α
⊢ infIrredUpperSet.symm ⟨UpperSet.Ici a, hs⟩ = (↑↑⟨UpperSet.Ici a, hs⟩).toFinset.inf id

tactic: simp [symm_apply_eq]
state_before: case mk.intro.intro
α : Type u_1
inst✝³ : SemilatticeInf α
inst✝² : OrderTop α
inst✝¹ : Finite α
a : α
hs : InfIrred (UpperSet.Ici a)
inst✝ : Fintype ↥↑⟨UpperSet.Ici a, hs⟩
val✝ : Fintype α
this : LocallyFiniteOrder α
⊢ infIrredUpperSet.symm ⟨UpperSet.Ici a, hs⟩ = (↑↑⟨UpperSet.Ici a, hs⟩).toFinset.inf id
state_after: no goals
Theorem: UpperSet.compl_sInf
File: Mathlib/Order/UpperLower/Basic.lean

tactic: simp only [coe_compl, coe_sInf, compl_iUnion₂, LowerSet.coe_iInf₂]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝ : LE α
s t : UpperSet α
a : α
S : Set (UpperSet α)
⊢ ↑(sInf S).compl = ↑(⨅ s ∈ S, s.compl)
state_after: no goals
Theorem: Finset.singleton_inter_of_mem
File: Mathlib/Data/Finset/Basic.lean

tactic: rw [insert_inter_of_mem H, empty_inter]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s✝ s₁ s₂ t t₁ t₂ u v : Finset α
a✝ b a : α
s : Finset α
H : a ∈ s
⊢ insert a ∅ ∩ s = insert a ∅
state_after: no goals
Theorem: OrderEmbedding.image_Ico
File: Mathlib/Order/Interval/Set/OrdConnected.lean

tactic: rw [← e.preimage_Ico, image_preimage_eq_inter_range,
  inter_eq_left.2 <| Ico_subset_Icc_self.trans <| he.out ⟨_, rfl⟩ ⟨_, rfl⟩]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
e : α ↪o β
he : (range ⇑e).OrdConnected
x y : α
⊢ ⇑e '' Ico x y = Ico (e x) (e y)
state_after: no goals
Theorem: Real.add_one_le_exp_of_nonneg
File: Mathlib/Data/Complex/Exponential.lean

tactic: rcases eq_or_lt_of_le hx with (rfl | h)
state_before: x✝ y x : ℝ
hx : 0 ≤ x
⊢ x + 1 ≤ rexp x
state_after: case inl
x y : ℝ
hx : 0 ≤ 0
⊢ 0 + 1 ≤ rexp 0

case inr
x✝ y x : ℝ
hx : 0 ≤ x
h : 0 < x
⊢ x + 1 ≤ rexp x

tactic: exact (add_one_lt_exp_of_pos h).le
state_before: case inr
x✝ y x : ℝ
hx : 0 ≤ x
h : 0 < x
⊢ x + 1 ≤ rexp x
state_after: no goals

tactic: simp
state_before: case inl
x y : ℝ
hx : 0 ≤ 0
⊢ 0 + 1 ≤ rexp 0
state_after: no goals
Theorem: Complex.Gamma_integrand_interval_integrable
File: Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean

tactic: rw [intervalIntegrable_iff_integrableOn_Ioc_of_le hX]
state_before: s : ℂ
X : ℝ
hs : 0 < s.re
hX : 0 ≤ X
⊢ IntervalIntegrable (fun x => ↑(rexp (-x)) * ↑x ^ (s - 1)) volume 0 X
state_after: s : ℂ
X : ℝ
hs : 0 < s.re
hX : 0 ≤ X
⊢ IntegrableOn (fun x => ↑(rexp (-x)) * ↑x ^ (s - 1)) (Ioc 0 X) volume

tactic: exact IntegrableOn.mono_set (GammaIntegral_convergent hs) Ioc_subset_Ioi_self
state_before: s : ℂ
X : ℝ
hs : 0 < s.re
hX : 0 ≤ X
⊢ IntegrableOn (fun x => ↑(rexp (-x)) * ↑x ^ (s - 1)) (Ioc 0 X) volume
state_after: no goals
Theorem: Matrix.cramer_one
File: Mathlib/LinearAlgebra/Matrix/Adjugate.lean

tactic: refine LinearMap.pi_ext' (fun (i : n) => LinearMap.ext_ring (funext (fun (j : n) => ?_)))
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
⊢ cramer 1 = 1
state_after: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
i j : n
⊢ (cramer 1 ∘ₗ LinearMap.single i) 1 j = (1 ∘ₗ LinearMap.single i) 1 j

tactic: convert congr_fun (cramer_row_self (1 : Matrix n n α) (Pi.single i 1) i _) j
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
i j : n
⊢ (cramer 1 ∘ₗ LinearMap.single i) 1 j = (1 ∘ₗ LinearMap.single i) 1 j
state_after: case h.e'_3.h.e'_1
m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
i j : n
⊢ 1 = det 1

m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
i j : n
⊢ ∀ (j : n), Pi.single i 1 j = 1 j i

tactic: simp
state_before: case h.e'_3.h.e'_1
m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
i j : n
⊢ 1 = det 1
state_after: no goals

tactic: intro j
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
i j : n
⊢ ∀ (j : n), Pi.single i 1 j = 1 j i
state_after: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
i j✝ j : n
⊢ Pi.single i 1 j = 1 j i

tactic: rw [Matrix.one_eq_pi_single, Pi.single_comm]
state_before: m : Type u
n : Type v
α : Type w
inst✝⁴ : DecidableEq n
inst✝³ : Fintype n
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
A : Matrix n n α
b : n → α
i j✝ j : n
⊢ Pi.single i 1 j = 1 j i
state_after: no goals
Theorem: SetTheory.PGame.Numeric.left_lt_right
File: Mathlib/SetTheory/Surreal/Basic.lean

tactic: cases x
state_before: x : PGame
o : x.Numeric
i : x.LeftMoves
j : x.RightMoves
⊢ x.moveLeft i < x.moveRight j
state_after: case mk
α✝ β✝ : Type u_1
a✝¹ : α✝ → PGame
a✝ : β✝ → PGame
o : (PGame.mk α✝ β✝ a✝¹ a✝).Numeric
i : (PGame.mk α✝ β✝ a✝¹ a✝).LeftMoves
j : (PGame.mk α✝ β✝ a✝¹ a✝).RightMoves
⊢ (PGame.mk α✝ β✝ a✝¹ a✝).moveLeft i < (PGame.mk α✝ β✝ a✝¹ a✝).moveRight j

tactic: exact o.1 i j
state_before: case mk
α✝ β✝ : Type u_1
a✝¹ : α✝ → PGame
a✝ : β✝ → PGame
o : (PGame.mk α✝ β✝ a✝¹ a✝).Numeric
i : (PGame.mk α✝ β✝ a✝¹ a✝).LeftMoves
j : (PGame.mk α✝ β✝ a✝¹ a✝).RightMoves
⊢ (PGame.mk α✝ β✝ a✝¹ a✝).moveLeft i < (PGame.mk α✝ β✝ a✝¹ a✝).moveRight j
state_after: no goals
Theorem: ChainComplex.quasiIsoAt₀_iff
File: Mathlib/Algebra/Homology/QuasiIso.lean

tactic: simp
state_before: ι✝ : Type u_1
ι : Type u_2
C : Type u
inst✝⁵ : Category.{v, u} C
inst✝⁴ : HasZeroMorphisms C
c : ComplexShape ι
K✝ L✝ M K' L' : HomologicalComplex C c
K L : ChainComplex C ℕ
f : K ⟶ L
inst✝³ : HasHomology K 0
inst✝² : HasHomology L 0
inst✝¹ : (sc' K 1 0 0).HasHomology
inst✝ : (sc' L 1 0 0).HasHomology
⊢ (ComplexShape.down ℕ).prev 0 = 1
state_after: no goals

tactic: simp
state_before: ι✝ : Type u_1
ι : Type u_2
C : Type u
inst✝⁵ : Category.{v, u} C
inst✝⁴ : HasZeroMorphisms C
c : ComplexShape ι
K✝ L✝ M K' L' : HomologicalComplex C c
K L : ChainComplex C ℕ
f : K ⟶ L
inst✝³ : HasHomology K 0
inst✝² : HasHomology L 0
inst✝¹ : (sc' K 1 0 0).HasHomology
inst✝ : (sc' L 1 0 0).HasHomology
⊢ (ComplexShape.down ℕ).next 0 = 0
state_after: no goals
Theorem: Equiv.Perm.IsCycle.cycleOf_eq
File: Mathlib/GroupTheory/Perm/Cycle/Factors.lean

tactic: rw [h.cycleOf_apply]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
f g : Perm α
x y✝ : α
inst✝¹ : DecidableRel f.SameCycle
inst✝ : DecidableRel g.SameCycle
hf : f.IsCycle
hx : f x ≠ x
y : α
h : f.SameCycle x y
⊢ (f.cycleOf x) y = f y
state_after: no goals

tactic: rw [cycleOf_apply_of_not_sameCycle h,
  Classical.not_not.1 (mt ((isCycle_iff_sameCycle hx).1 hf).2 h)]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
f g : Perm α
x y✝ : α
inst✝¹ : DecidableRel f.SameCycle
inst✝ : DecidableRel g.SameCycle
hf : f.IsCycle
hx : f x ≠ x
y : α
h : ¬f.SameCycle x y
⊢ (f.cycleOf x) y = f y
state_after: no goals
Theorem: Polynomial.reverse_neg
File: Mathlib/Algebra/Polynomial/Reverse.lean

tactic: rw [reverse, reverse, reflect_neg, natDegree_neg]
state_before: R : Type u_1
inst✝ : Ring R
f : R[X]
⊢ (-f).reverse = -f.reverse
state_after: no goals
Theorem: Subgroup.disjoint_def
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: simp only [Disjoint, SetLike.le_def, mem_inf, mem_bot, and_imp]
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁴ : Group G
inst✝³ : Group G'
inst✝² : Group G''
A : Type u_4
inst✝¹ : AddGroup A
N : Type u_5
inst✝ : Group N
H₁ H₂ : Subgroup G
⊢ H₁ ⊓ H₂ ≤ ⊥ ↔ ∀ {x : G}, x ∈ H₁ → x ∈ H₂ → x = 1
state_after: no goals