tasksource/leandojo huggingface dataset:
Theorem: MeasureTheory.integral_coe_le_of_lintegral_coe_le
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: by_cases hf : Integrable (fun a => (f a : ℝ)) μ
state_before: α : Type u_1
E : Type ?u.1091665
F : Type ?u.1091668
𝕜 : Type ?u.1091671
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1094362
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ≥0
b : ℝ≥0
h : (∫⁻ (a : α), ↑(f a) ∂μ) ≤ ↑b
⊢ (∫ (a : α), ↑(f a) ∂μ) ≤ ↑b

tactic: exact (lintegral_coe_le_coe_iff_integral_le hf).1 h
state_before: case pos
α : Type u_1
E : Type ?u.1091665
F : Type ?u.1091668
𝕜 : Type ?u.1091671
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1094362
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ≥0
b : ℝ≥0
h : (∫⁻ (a : α), ↑(f a) ∂μ) ≤ ↑b
hf : Integrable fun a => ↑(f a)
⊢ (∫ (a : α), ↑(f a) ∂μ) ≤ ↑b

tactic: rw [integral_undef hf]
state_before: case neg
α : Type u_1
E : Type ?u.1091665
F : Type ?u.1091668
𝕜 : Type ?u.1091671
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1094362
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ≥0
b : ℝ≥0
h : (∫⁻ (a : α), ↑(f a) ∂μ) ≤ ↑b
hf : ¬Integrable fun a => ↑(f a)
⊢ (∫ (a : α), ↑(f a) ∂μ) ≤ ↑b

tactic: exact b.2
state_before: case neg
α : Type u_1
E : Type ?u.1091665
F : Type ?u.1091668
𝕜 : Type ?u.1091671
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1094362
inst✝¹ : TopologicalSpace X
inst✝ : FirstCountableTopology X
f : α → ℝ≥0
b : ℝ≥0
h : (∫⁻ (a : α), ↑(f a) ∂μ) ≤ ↑b
hf : ¬Integrable fun a => ↑(f a)
⊢ 0 ≤ ↑b
Theorem: Nat.frequently_atTop_iff_infinite
File: Mathlib/Order/Filter/Cofinite.lean

tactic: rw [← Nat.cofinite_eq_atTop, frequently_cofinite_iff_infinite]
state_before: ι : Type ?u.6949
α : Type ?u.6952
β : Type ?u.6955
l : Filter α
p : ℕ → Prop
⊢ (∃ᶠ (n : ℕ) in atTop, p n) ↔ Set.Infinite {n | p n}
Theorem: nhdsWithin_sUnion
File: Mathlib/Topology/ContinuousOn.lean

tactic: rw [sUnion_eq_biUnion, nhdsWithin_biUnion hS]
state_before: α : Type u_1
β : Type ?u.16439
γ : Type ?u.16442
δ : Type ?u.16445
inst✝ : TopologicalSpace α
S : Set (Set α)
hS : Set.Finite S
a : α
⊢ 𝓝[⋃₀ S] a = ⨆ (s : Set α) (_ : s ∈ S), 𝓝[s] a
Theorem: Ideal.span_singleton_neg
File: Mathlib/RingTheory/Ideal/Basic.lean

tactic: ext
state_before: α : Type u
β : Type v
inst✝ : Ring α
I : Ideal α
a b x : α
⊢ span {-x} = span {x}

tactic: simp only [mem_span_singleton']
state_before: case h
α : Type u
β : Type v
inst✝ : Ring α
I : Ideal α
a b x x✝ : α
⊢ x✝ ∈ span {-x} ↔ x✝ ∈ span {x}

tactic: exact ⟨fun ⟨y, h⟩ => ⟨-y, h ▸ neg_mul_comm y x⟩, fun ⟨y, h⟩ => ⟨-y, h ▸ neg_mul_neg y x⟩⟩
state_before: case h
α : Type u
β : Type v
inst✝ : Ring α
I : Ideal α
a b x x✝ : α
⊢ (∃ a, a * -x = x✝) ↔ ∃ a, a * x = x✝
Theorem: nonempty_embedding_to_cardinal
File: Mathlib/SetTheory/Ordinal/Basic.lean

tactic: rw [hx]
state_before: α : Type ?u.58
β : Type ?u.61
γ : Type ?u.64
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
σ : Type u
x✝ : Nonempty (Cardinal ↪ σ)
f : Cardinal → σ
hf : Injective f
g : σ → Cardinal := Function.invFun f
x : σ
hx : g x = 2 ^ sum g
this : g x ≤ sum g
⊢ g x > sum g

tactic: exact cantor _
state_before: α : Type ?u.58
β : Type ?u.61
γ : Type ?u.64
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
σ : Type u
x✝ : Nonempty (Cardinal ↪ σ)
f : Cardinal → σ
hf : Injective f
g : σ → Cardinal := Function.invFun f
x : σ
hx : g x = 2 ^ sum g
this : g x ≤ sum g
⊢ 2 ^ sum g > sum g
Theorem: CategoryTheory.IsPushout.zero_right
File: Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean

tactic: simp
state_before: C : Type u₁
inst✝² : Category C
Z X✝ Y P : C
f : Z ⟶ X✝
g : Z ⟶ Y
inl : X✝ ⟶ P
inr : Y ⟶ P
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
X : C
⊢ 0 ≫ 0 = 𝟙 X ≫ 0

tactic: have c :=
  @PushoutCocone.coequalizer_ext _ _ _ _ _ _ _ s _ 0 (𝟙 _) (by simp)
    (by simpa using PushoutCocone.condition s)
state_before: C : Type u₁
inst✝² : Category C
Z X✝ Y P : C
f : Z ⟶ X✝
g : Z ⟶ Y
inl : X✝ ⟶ P
inr : Y ⟶ P
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
X : C
s : Cocone (span 0 (𝟙 X))
⊢ ∀ (j : WalkingSpan), (PushoutCocone.mk 0 0 (_ : 0 ≫ 0 = 𝟙 X ≫ 0)).ι.app j ≫ (fun s => 0) s = s.ι.app j

tactic: dsimp at c
state_before: C : Type u₁
inst✝² : Category C
Z X✝ Y P : C
f : Z ⟶ X✝
g : Z ⟶ Y
inl : X✝ ⟶ P
inr : Y ⟶ P
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
X : C
s : Cocone (span 0 (𝟙 X))
c : ∀ (j : WalkingSpan), s.ι.app j ≫ 0 = s.ι.app j ≫ 𝟙 s.pt
⊢ ∀ (j : WalkingSpan), (PushoutCocone.mk 0 0 (_ : 0 ≫ 0 = 𝟙 X ≫ 0)).ι.app j ≫ (fun s => 0) s = s.ι.app j

tactic: simpa using c
state_before: C : Type u₁
inst✝² : Category C
Z X✝ Y P : C
f : Z ⟶ X✝
g : Z ⟶ Y
inl : X✝ ⟶ P
inr : Y ⟶ P
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
X : C
s : Cocone (span 0 (𝟙 X))
c : ∀ (j : WalkingSpan), s.ι.app j ≫ 0 = s.ι.app j ≫ 𝟙 s.pt
⊢ ∀ (j : WalkingSpan), (PushoutCocone.mk 0 0 (_ : 0 ≫ 0 = 𝟙 X ≫ 0)).ι.app j ≫ (fun s => 0) s = s.ι.app j

tactic: simp
state_before: C : Type u₁
inst✝² : Category C
Z X✝ Y P : C
f : Z ⟶ X✝
g : Z ⟶ Y
inl : X✝ ⟶ P
inr : Y ⟶ P
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
X : C
s : Cocone (span 0 (𝟙 X))
⊢ PushoutCocone.inl s ≫ 0 = PushoutCocone.inl s ≫ 𝟙 s.pt

tactic: simpa using PushoutCocone.condition s
state_before: C : Type u₁
inst✝² : Category C
Z X✝ Y P : C
f : Z ⟶ X✝
g : Z ⟶ Y
inl : X✝ ⟶ P
inr : Y ⟶ P
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
X : C
s : Cocone (span 0 (𝟙 X))
⊢ PushoutCocone.inr s ≫ 0 = PushoutCocone.inr s ≫ 𝟙 s.pt
Theorem: SimpleGraph.Subgraph.degree_eq_one_iff_unique_adj
File: Mathlib/Combinatorics/SimpleGraph/Subgraph.lean

tactic: rw [← finset_card_neighborSet_eq_degree, Finset.card_eq_one, Finset.singleton_iff_unique_mem]
state_before: ι : Sort ?u.206794
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : Subgraph G
a b : V
G' : Subgraph G
v : V
inst✝ : Fintype ↑(neighborSet G' v)
⊢ degree G' v = 1 ↔ ∃! w, Adj G' v w

tactic: simp only [Set.mem_toFinset, mem_neighborSet]
state_before: ι : Sort ?u.206794
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : Subgraph G
a b : V
G' : Subgraph G
v : V
inst✝ : Fintype ↑(neighborSet G' v)
⊢ (∃! a, a ∈ Set.toFinset (neighborSet G' v)) ↔ ∃! w, Adj G' v w
Theorem: Polynomial.div_tendsto_zero_of_degree_lt
File: Mathlib/Analysis/SpecialFunctions/Polynomials.lean

tactic: by_cases hP : P = 0
state_before: 𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
hdeg : degree P < degree Q
⊢ Tendsto (fun x => eval x P / eval x Q) atTop (𝓝 0)

tactic: rw [← natDegree_lt_natDegree_iff hP] at hdeg
state_before: case neg
𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
hdeg : degree P < degree Q
hP : ¬P = 0
⊢ Tendsto (fun x => eval x P / eval x Q) atTop (𝓝 0)

tactic: refine' (isEquivalent_atTop_div P Q).symm.tendsto_nhds _
state_before: case neg
𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
hdeg : natDegree P < natDegree Q
hP : ¬P = 0
⊢ Tendsto (fun x => eval x P / eval x Q) atTop (𝓝 0)

tactic: rw [← MulZeroClass.mul_zero]
state_before: case neg
𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
hdeg : natDegree P < natDegree Q
hP : ¬P = 0
⊢ Tendsto (fun x => leadingCoeff P / leadingCoeff Q * x ^ (↑(natDegree P) - ↑(natDegree Q))) atTop (𝓝 0)

tactic: refine' (tendsto_zpow_atTop_zero _).const_mul _
state_before: case neg
𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
hdeg : natDegree P < natDegree Q
hP : ¬P = 0
⊢ Tendsto (fun x => leadingCoeff P / leadingCoeff Q * x ^ (↑(natDegree P) - ↑(natDegree Q))) atTop (𝓝 (?neg✝ * 0))

case neg
𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
hdeg : natDegree P < natDegree Q
hP : ¬P = 0
⊢ 𝕜

tactic: linarith
state_before: case neg
𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
hdeg : natDegree P < natDegree Q
hP : ¬P = 0
⊢ ↑(natDegree P) - ↑(natDegree Q) < 0

tactic: simp [hP, tendsto_const_nhds]
state_before: case pos
𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
hdeg : degree P < degree Q
hP : P = 0
⊢ Tendsto (fun x => eval x P / eval x Q) atTop (𝓝 0)
Theorem: FirstOrder.Language.Formula.realize_equivSentence
File: Mathlib/ModelTheory/Semantics.lean

tactic: rw [← realize_equivSentence_symm_con M (equivSentence φ), _root_.Equiv.symm_apply_apply]
state_before: L : Language
L' : Language
M : Type w
N : Type ?u.259032
P : Type ?u.259035
inst✝⁴ : Structure L M
inst✝³ : Structure L N
inst✝² : Structure L P
α : Type u'
β : Type v'
n : ℕ
inst✝¹ : Structure (L[[α]]) M
inst✝ : LHom.IsExpansionOn (lhomWithConstants L α) M
φ : Formula L α
⊢ M ⊨ ↑equivSentence φ ↔ Realize φ fun a => ↑(Language.con L a)
Theorem: IsometryEquiv.preimage_closedBall
File: Mathlib/Topology/MetricSpace/Isometry.lean

tactic: rw [← h.isometry.preimage_closedBall (h.symm x) r, h.apply_symm_apply]
state_before: ι : Type ?u.1110676
α : Type u
β : Type v
γ : Type w
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
h✝ h : α ≃ᵢ β
x : β
r : ℝ
⊢ ↑h ⁻¹' Metric.closedBall x r = Metric.closedBall (↑(IsometryEquiv.symm h) x) r
Theorem: Finset.filter_eq
File: Mathlib/Data/Finset/Basic.lean

tactic: split_ifs with h
state_before: α : Type ?u.409796
β : Type u_1
γ : Type ?u.409802
p q : α → Prop
inst✝³ : DecidablePred p
inst✝² : DecidablePred q
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset β
b : β
⊢ filter (Eq b) s = if b ∈ s then {b} else ∅

tactic: ext
state_before: case inl
α : Type ?u.409796
β : Type u_1
γ : Type ?u.409802
p q : α → Prop
inst✝³ : DecidablePred p
inst✝² : DecidablePred q
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset β
b : β
h : b ∈ s
⊢ filter (Eq b) s = {b}

tactic: simp only [mem_filter, mem_singleton, decide_eq_true_eq]
state_before: case inl.a
α : Type ?u.409796
β : Type u_1
γ : Type ?u.409802
p q : α → Prop
inst✝³ : DecidablePred p
inst✝² : DecidablePred q
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset β
b : β
h : b ∈ s
a✝ : β
⊢ a✝ ∈ filter (Eq b) s ↔ a✝ ∈ {b}

tactic: refine ⟨fun h => h.2.symm, ?_⟩
state_before: case inl.a
α : Type ?u.409796
β : Type u_1
γ : Type ?u.409802
p q : α → Prop
inst✝³ : DecidablePred p
inst✝² : DecidablePred q
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset β
b : β
h : b ∈ s
a✝ : β
⊢ a✝ ∈ s ∧ b = a✝ ↔ a✝ = b

tactic: rintro rfl
state_before: case inl.a
α : Type ?u.409796
β : Type u_1
γ : Type ?u.409802
p q : α → Prop
inst✝³ : DecidablePred p
inst✝² : DecidablePred q
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset β
b : β
h : b ∈ s
a✝ : β
⊢ a✝ = b → a✝ ∈ s ∧ b = a✝

tactic: exact ⟨h, rfl⟩
state_before: case inl.a
α : Type ?u.409796
β : Type u_1
γ : Type ?u.409802
p q : α → Prop
inst✝³ : DecidablePred p
inst✝² : DecidablePred q
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset β
a✝ : β
h : a✝ ∈ s
⊢ a✝ ∈ s ∧ a✝ = a✝

tactic: ext
state_before: case inr
α : Type ?u.409796
β : Type u_1
γ : Type ?u.409802
p q : α → Prop
inst✝³ : DecidablePred p
inst✝² : DecidablePred q
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset β
b : β
h : ¬b ∈ s
⊢ filter (Eq b) s = ∅

tactic: simp only [mem_filter, not_and, iff_false_iff, not_mem_empty, decide_eq_true_eq]
state_before: case inr.a
α : Type ?u.409796
β : Type u_1
γ : Type ?u.409802
p q : α → Prop
inst✝³ : DecidablePred p
inst✝² : DecidablePred q
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset β
b : β
h : ¬b ∈ s
a✝ : β
⊢ a✝ ∈ filter (Eq b) s ↔ a✝ ∈ ∅

tactic: rintro m rfl
state_before: case inr.a
α : Type ?u.409796
β : Type u_1
γ : Type ?u.409802
p q : α → Prop
inst✝³ : DecidablePred p
inst✝² : DecidablePred q
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset β
b : β
h : ¬b ∈ s
a✝ : β
⊢ a✝ ∈ s → ¬b = a✝

tactic: exact h m
state_before: case inr.a
α : Type ?u.409796
β : Type u_1
γ : Type ?u.409802
p q : α → Prop
inst✝³ : DecidablePred p
inst✝² : DecidablePred q
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset β
b : β
h : ¬b ∈ s
m : b ∈ s
⊢ False
Theorem: Finset.fold_map
File: Mathlib/Data/Finset/Fold.lean

tactic: simp only [fold, map, Multiset.map_map]
state_before: α : Type u_2
β : Type u_3
γ : Type u_1
op : β → β → β
hc : IsCommutative β op
ha : IsAssociative β op
f : α → β
b : β
s✝ : Finset α
a : α
g : γ ↪ α
s : Finset γ
⊢ fold op b f (map g s) = fold op b (f ∘ ↑g) s
Theorem: sq_add_sq_mul_sq_add_sq
File: Mathlib/Algebra/GroupPower/Identities.lean

tactic: ring
state_before: R : Type u_1
inst✝ : CommRing R
a b x₁ x₂ x₃ x₄ x₅ x₆ x₇ x₈ y₁ y₂ y₃ y₄ y₅ y₆ y₇ y₈ n : R
⊢ (x₁ ^ 2 + x₂ ^ 2) * (y₁ ^ 2 + y₂ ^ 2) = (x₁ * y₁ - x₂ * y₂) ^ 2 + (x₁ * y₂ + x₂ * y₁) ^ 2
Theorem: AlgebraicTopology.DoldKan.MorphComponents.postComp_φ
File: Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean

tactic: unfold φ postComp
state_before: C : Type u_2
inst✝¹ : Category C
inst✝ : Preadditive C
X X' : SimplicialObject C
n : ℕ
Z Z' : C
f : MorphComponents X n Z
g : X' ⟶ X
h : Z ⟶ Z'
⊢ φ (postComp f h) = φ f ≫ h

tactic: simp only [add_comp, sum_comp, assoc]
state_before: C : Type u_2
inst✝¹ : Category C
inst✝ : Preadditive C
X X' : SimplicialObject C
n : ℕ
Z Z' : C
f : MorphComponents X n Z
g : X' ⟶ X
h : Z ⟶ Z'
⊢ HomologicalComplex.Hom.f PInfty (n + 1) ≫ { a := f.a ≫ h, b := fun i => b f i ≫ h }.a +
      ∑ i : Fin (n + 1),
        HomologicalComplex.Hom.f (P ↑i) (n + 1) ≫
          SimplicialObject.δ X (Fin.succ (↑Fin.rev i)) ≫ b { a := f.a ≫ h, b := fun i => b f i ≫ h } (↑Fin.rev i) =
    (HomologicalComplex.Hom.f PInfty (n + 1) ≫ f.a +
        ∑ i : Fin (n + 1),
          HomologicalComplex.Hom.f (P ↑i) (n + 1) ≫ SimplicialObject.δ X (Fin.succ (↑Fin.rev i)) ≫ b f (↑Fin.rev i)) ≫
      h
Theorem: Stream'.interleave_eq
File: Mathlib/Data/Stream/Init.lean

tactic: let t := tail s₁ ⋈ tail s₂
state_before: α : Type u
β : Type v
δ : Type w
s₁ s₂ : Stream' α
⊢ s₁ ⋈ s₂ = head s₁ :: head s₂ :: (tail s₁ ⋈ tail s₂)

tactic: show s₁ ⋈ s₂ = head s₁::head s₂::t
state_before: α : Type u
β : Type v
δ : Type w
s₁ s₂ : Stream' α
t : Stream' α := tail s₁ ⋈ tail s₂
⊢ s₁ ⋈ s₂ = head s₁ :: head s₂ :: (tail s₁ ⋈ tail s₂)

tactic: unfold interleave
state_before: α : Type u
β : Type v
δ : Type w
s₁ s₂ : Stream' α
t : Stream' α := tail s₁ ⋈ tail s₂
⊢ s₁ ⋈ s₂ = head s₁ :: head s₂ :: t

tactic: unfold corecOn
state_before: α : Type u
β : Type v
δ : Type w
s₁ s₂ : Stream' α
t : Stream' α := tail s₁ ⋈ tail s₂
⊢ (corecOn (s₁, s₂)
      (fun x =>
        match x with
        | (s₁, snd) => head s₁)
      fun x =>
      match x with
      | (s₁, s₂) => (s₂, tail s₁)) =
    head s₁ :: head s₂ :: t

tactic: rw [corec_eq]
state_before: α : Type u
β : Type v
δ : Type w
s₁ s₂ : Stream' α
t : Stream' α := tail s₁ ⋈ tail s₂
⊢ corec
      (fun x =>
        match x with
        | (s₁, snd) => head s₁)
      (fun x =>
        match x with
        | (s₁, s₂) => (s₂, tail s₁))
      (s₁, s₂) =
    head s₁ :: head s₂ :: t

tactic: dsimp
state_before: α : Type u
β : Type v
δ : Type w
s₁ s₂ : Stream' α
t : Stream' α := tail s₁ ⋈ tail s₂
⊢ (match (s₁, s₂) with
      | (s₁, snd) => head s₁) ::
      corec
        (fun x =>
          match x with
          | (s₁, snd) => head s₁)
        (fun x =>
          match x with
          | (s₁, s₂) => (s₂, tail s₁))
        (match (s₁, s₂) with
        | (s₁, s₂) => (s₂, tail s₁)) =
    head s₁ :: head s₂ :: t

tactic: rw [corec_eq]
state_before: α : Type u
β : Type v
δ : Type w
s₁ s₂ : Stream' α
t : Stream' α := tail s₁ ⋈ tail s₂
⊢ head s₁ :: corec (fun x => head x.fst) (fun x => (x.snd, tail x.fst)) (s₂, tail s₁) =
    head s₁ :: head s₂ :: (tail s₁ ⋈ tail s₂)

tactic: rfl
state_before: α : Type u
β : Type v
δ : Type w
s₁ s₂ : Stream' α
t : Stream' α := tail s₁ ⋈ tail s₂
⊢ head s₁ ::
      head (s₂, tail s₁).fst ::
        corec (fun x => head x.fst) (fun x => (x.snd, tail x.fst)) ((s₂, tail s₁).snd, tail (s₂, tail s₁).fst) =
    head s₁ :: head s₂ :: (tail s₁ ⋈ tail s₂)
Theorem: Finset.sdiff_union_erase_cancel
File: Mathlib/Data/Finset/Basic.lean

tactic: simp_rw [erase_eq, sdiff_union_sdiff_cancel hts (singleton_subset_iff.2 ha)]
state_before: α : Type u_1
β : Type ?u.267553
γ : Type ?u.267556
inst✝ : DecidableEq α
s t u v : Finset α
a b : α
hts : t ⊆ s
ha : a ∈ t
⊢ s \ t ∪ erase t a = erase s a
Theorem: MeasureTheory.SimpleFunc.pair_preimage_singleton
File: Mathlib/MeasureTheory/Function/SimpleFunc.lean

tactic: rw [← singleton_prod_singleton]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type ?u.64507
inst✝ : MeasurableSpace α
f : α →ₛ β
g : α →ₛ γ
b : β
c : γ
⊢ ↑(pair f g) ⁻¹' {(b, c)} = ↑f ⁻¹' {b} ∩ ↑g ⁻¹' {c}

tactic: exact pair_preimage _ _ _ _
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type ?u.64507
inst✝ : MeasurableSpace α
f : α →ₛ β
g : α →ₛ γ
b : β
c : γ
⊢ ↑(pair f g) ⁻¹' {b} ×ˢ {c} = ↑f ⁻¹' {b} ∩ ↑g ⁻¹' {c}
Theorem: iSup_le_iSup_of_partialSups_le_partialSups
File: Mathlib/Order/PartialSups.lean

tactic: rw [← iSup_partialSups_eq f, ← iSup_partialSups_eq g]
state_before: α : Type u_1
inst✝ : CompleteLattice α
f g : ℕ → α
h : partialSups f ≤ partialSups g
⊢ (⨆ (n : ℕ), f n) ≤ ⨆ (n : ℕ), g n

tactic: exact iSup_mono h
state_before: α : Type u_1
inst✝ : CompleteLattice α
f g : ℕ → α
h : partialSups f ≤ partialSups g
⊢ (⨆ (n : ℕ), ↑(partialSups f) n) ≤ ⨆ (n : ℕ), ↑(partialSups g) n
Theorem: Finset.empty_mem_ssubsets
File: Mathlib/Data/Finset/Powerset.lean

tactic: rw [mem_ssubsets, ssubset_iff_subset_ne]
state_before: α : Type u_1
s✝ t : Finset α
inst✝ : DecidableEq α
s : Finset α
h : Finset.Nonempty s
⊢ ∅ ∈ ssubsets s

tactic: exact ⟨empty_subset s, h.ne_empty.symm⟩
state_before: α : Type u_1
s✝ t : Finset α
inst✝ : DecidableEq α
s : Finset α
h : Finset.Nonempty s
⊢ ∅ ⊆ s ∧ ∅ ≠ s
Theorem: Subgroup.closure_inv
File: Mathlib/GroupTheory/Subgroup/Pointwise.lean

tactic: simp only [← toSubmonoid_eq, closure_toSubmonoid, inv_inv, union_comm]
state_before: α : Type ?u.8596
G : Type u_1
A : Type ?u.8602
S : Type ?u.8605
inst✝¹ : Group G
inst✝ : AddGroup A
s✝ s : Set G
⊢ closure s⁻¹ = closure s
Theorem: Finset.pairwise_cons'
File: Mathlib/Data/Finset/Basic.lean

tactic: simp only [pairwise_subtype_iff_pairwise_finset', Finset.coe_cons, Set.pairwise_insert,
  Finset.mem_coe, and_congr_right_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.549294
s : Finset α
a : α
ha : ¬a ∈ s
r : β → β → Prop
f : α → β
⊢ _root_.Pairwise (r on fun a_1 => f ↑a_1) ↔
    _root_.Pairwise (r on fun a => f ↑a) ∧ ∀ (b : α), b ∈ s → r (f a) (f b) ∧ r (f b) (f a)

tactic: exact fun _ =>
  ⟨fun h b hb =>
    h b hb <| by
      rintro rfl
      contradiction,
    fun h b hb _ => h b hb⟩
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.549294
s : Finset α
a : α
ha : ¬a ∈ s
r : β → β → Prop
f : α → β
⊢ Set.Pairwise (↑s) (r on f) →
    ((∀ (b : α), b ∈ s → a ≠ b → (r on f) a b ∧ (r on f) b a) ↔ ∀ (b : α), b ∈ s → r (f a) (f b) ∧ r (f b) (f a))

tactic: rintro rfl
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.549294
s : Finset α
a : α
ha : ¬a ∈ s
r : β → β → Prop
f : α → β
x✝ : Set.Pairwise (↑s) (r on f)
h : ∀ (b : α), b ∈ s → a ≠ b → (r on f) a b ∧ (r on f) b a
b : α
hb : b ∈ s
⊢ a ≠ b

tactic: contradiction
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.549294
s : Finset α
a : α
ha : ¬a ∈ s
r : β → β → Prop
f : α → β
x✝ : Set.Pairwise (↑s) (r on f)
h : ∀ (b : α), b ∈ s → a ≠ b → (r on f) a b ∧ (r on f) b a
hb : a ∈ s
⊢ False
Theorem: IsSquare.zpow
File: Mathlib/Algebra/Parity.lean

tactic: rintro ⟨a, rfl⟩
state_before: F : Type ?u.34433
α : Type u_1
β : Type ?u.34439
R : Type ?u.34442
inst✝ : DivisionMonoid α
a : α
n : ℤ
⊢ IsSquare a → IsSquare (a ^ n)

tactic: exact ⟨a ^ n, (Commute.refl _).mul_zpow _⟩
state_before: case intro
F : Type ?u.34433
α : Type u_1
β : Type ?u.34439
R : Type ?u.34442
inst✝ : DivisionMonoid α
n : ℤ
a : α
⊢ IsSquare ((a * a) ^ n)
Theorem: AlgebraicTopology.DoldKan.Isδ₀.iff
File: Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean

tactic: constructor
state_before: C : Type ?u.1149
inst✝¹ : Category C
inst✝ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ Δ' Δ'' : SimplexCategory
j : ℕ
i : Fin (j + 2)
⊢ Isδ₀ (SimplexCategory.δ i) ↔ i = 0

tactic: rintro ⟨_, h₂⟩
state_before: case mp
C : Type ?u.1149
inst✝¹ : Category C
inst✝ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ Δ' Δ'' : SimplexCategory
j : ℕ
i : Fin (j + 2)
⊢ Isδ₀ (SimplexCategory.δ i) → i = 0

tactic: by_contra h
state_before: case mp.intro
C : Type ?u.1149
inst✝¹ : Category C
inst✝ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ Δ' Δ'' : SimplexCategory
j : ℕ
i : Fin (j + 2)
left✝ : len [j + 1] = len [j] + 1
h₂ : ↑(Hom.toOrderHom (SimplexCategory.δ i)) 0 ≠ 0
⊢ i = 0

tactic: exact h₂ (Fin.succAbove_ne_zero_zero h)
state_before: case mp.intro
C : Type ?u.1149
inst✝¹ : Category C
inst✝ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ Δ' Δ'' : SimplexCategory
j : ℕ
i : Fin (j + 2)
left✝ : len [j + 1] = len [j] + 1
h₂ : ↑(Hom.toOrderHom (SimplexCategory.δ i)) 0 ≠ 0
h : ¬i = 0
⊢ False

tactic: rintro rfl
state_before: case mpr
C : Type ?u.1149
inst✝¹ : Category C
inst✝ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ Δ' Δ'' : SimplexCategory
j : ℕ
i : Fin (j + 2)
⊢ i = 0 → Isδ₀ (SimplexCategory.δ i)

tactic: exact ⟨rfl, by dsimp ; exact Fin.succ_ne_zero (0 : Fin (j + 1))⟩
state_before: case mpr
C : Type ?u.1149
inst✝¹ : Category C
inst✝ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ Δ' Δ'' : SimplexCategory
j : ℕ
⊢ Isδ₀ (SimplexCategory.δ 0)

tactic: dsimp
state_before: C : Type ?u.1149
inst✝¹ : Category C
inst✝ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ Δ' Δ'' : SimplexCategory
j : ℕ
⊢ ↑(Hom.toOrderHom (SimplexCategory.δ 0)) 0 ≠ 0

tactic: exact Fin.succ_ne_zero (0 : Fin (j + 1))
state_before: C : Type ?u.1149
inst✝¹ : Category C
inst✝ : Preadditive C
K K' : ChainComplex C ℕ
f : K ⟶ K'
Δ Δ' Δ'' : SimplexCategory
j : ℕ
⊢ ¬↑(Hom.toOrderHom (SimplexCategory.δ 0)) 0 = 0
Theorem: exists_countable_dense_bot_top
File: Mathlib/Topology/Bases.lean

tactic: simpa using dense_univ.exists_countable_dense_subset_bot_top
state_before: α : Type u_1
inst✝² : TopologicalSpace α
inst✝¹ : SeparableSpace α
inst✝ : PartialOrder α
⊢ ∃ s, Set.Countable s ∧ Dense s ∧ (∀ (x : α), IsBot x → x ∈ s) ∧ ∀ (x : α), IsTop x → x ∈ s
Theorem: norm_iteratedFDeriv_fderiv
File: Mathlib/Analysis/Calculus/ContDiffDef.lean

tactic: rw [iteratedFDeriv_succ_eq_comp_right, comp_apply, LinearIsometryEquiv.norm_map]
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n : ℕ
⊢ ‖iteratedFDeriv 𝕜 n (fderiv 𝕜 f) x‖ = ‖iteratedFDeriv 𝕜 (n + 1) f x‖
Theorem: Nat.prime_two
File: Mathlib/Data/Nat/Prime.lean

tactic: decide
state_before: ⊢ Prime 2