tasksource/leandojo huggingface dataset:
Theorem: continuousOn_update_iff
File: Mathlib/Topology/Separation.lean

tactic: rw [ContinuousOn, ← and_forall_ne x, and_comm]
state_before: α : Type u
β : Type v
inst✝³ : TopologicalSpace α
inst✝² : T1Space α
inst✝¹ : DecidableEq α
inst✝ : TopologicalSpace β
f : α → β
s : Set α
x : α
y : β
⊢ ContinuousOn (update f x y) s ↔ ContinuousOn f (s \ {x}) ∧ (x ∈ s → Tendsto f (𝓝[s \ {x}] x) (𝓝 y))

tactic: refine' and_congr ⟨fun H z hz => _, fun H z hzx hzs => _⟩ (forall_congr' fun _ => _)
state_before: α : Type u
β : Type v
inst✝³ : TopologicalSpace α
inst✝² : T1Space α
inst✝¹ : DecidableEq α
inst✝ : TopologicalSpace β
f : α → β
s : Set α
x : α
y : β
⊢ (∀ (b : α), b ≠ x → b ∈ s → ContinuousWithinAt (update f x y) s b) ∧ (x ∈ s → ContinuousWithinAt (update f x y) s x) ↔
    ContinuousOn f (s \ {x}) ∧ (x ∈ s → Tendsto f (𝓝[s \ {x}] x) (𝓝 y))

tactic: specialize H z hz.2 hz.1
state_before: case refine'_1
α : Type u
β : Type v
inst✝³ : TopologicalSpace α
inst✝² : T1Space α
inst✝¹ : DecidableEq α
inst✝ : TopologicalSpace β
f : α → β
s : Set α
x : α
y : β
H : ∀ (b : α), b ≠ x → b ∈ s → ContinuousWithinAt (update f x y) s b
z : α
hz : z ∈ s \ {x}
⊢ ContinuousWithinAt f (s \ {x}) z

tactic: rw [continuousWithinAt_update_of_ne hz.2] at H
state_before: case refine'_1
α : Type u
β : Type v
inst✝³ : TopologicalSpace α
inst✝² : T1Space α
inst✝¹ : DecidableEq α
inst✝ : TopologicalSpace β
f : α → β
s : Set α
x : α
y : β
z : α
hz : z ∈ s \ {x}
H : ContinuousWithinAt (update f x y) s z
⊢ ContinuousWithinAt f (s \ {x}) z

tactic: exact H.mono (diff_subset _ _)
state_before: case refine'_1
α : Type u
β : Type v
inst✝³ : TopologicalSpace α
inst✝² : T1Space α
inst✝¹ : DecidableEq α
inst✝ : TopologicalSpace β
f : α → β
s : Set α
x : α
y : β
z : α
hz : z ∈ s \ {x}
H : ContinuousWithinAt f s z
⊢ ContinuousWithinAt f (s \ {x}) z

tactic: rw [continuousWithinAt_update_of_ne hzx]
state_before: case refine'_2
α : Type u
β : Type v
inst✝³ : TopologicalSpace α
inst✝² : T1Space α
inst✝¹ : DecidableEq α
inst✝ : TopologicalSpace β
f : α → β
s : Set α
x : α
y : β
H : ContinuousOn f (s \ {x})
z : α
hzx : z ≠ x
hzs : z ∈ s
⊢ ContinuousWithinAt (update f x y) s z

tactic: refine' (H z ⟨hzs, hzx⟩).mono_of_mem (inter_mem_nhdsWithin _ _)
state_before: case refine'_2
α : Type u
β : Type v
inst✝³ : TopologicalSpace α
inst✝² : T1Space α
inst✝¹ : DecidableEq α
inst✝ : TopologicalSpace β
f : α → β
s : Set α
x : α
y : β
H : ContinuousOn f (s \ {x})
z : α
hzx : z ≠ x
hzs : z ∈ s
⊢ ContinuousWithinAt f s z

tactic: exact isOpen_ne.mem_nhds hzx
state_before: case refine'_2
α : Type u
β : Type v
inst✝³ : TopologicalSpace α
inst✝² : T1Space α
inst✝¹ : DecidableEq α
inst✝ : TopologicalSpace β
f : α → β
s : Set α
x : α
y : β
H : ContinuousOn f (s \ {x})
z : α
hzx : z ≠ x
hzs : z ∈ s
⊢ (fun a => a ∈ {x} → False) ∈ 𝓝 z

tactic: exact continuousWithinAt_update_same
state_before: case refine'_3
α : Type u
β : Type v
inst✝³ : TopologicalSpace α
inst✝² : T1Space α
inst✝¹ : DecidableEq α
inst✝ : TopologicalSpace β
f : α → β
s : Set α
x : α
y : β
x✝ : x ∈ s
⊢ ContinuousWithinAt (update f x y) s x ↔ Tendsto f (𝓝[s \ {x}] x) (𝓝 y)
Theorem: Asymptotics.isBigO_neg_left
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simp only [IsBigO_def]
state_before: α : Type u_1
β : Type ?u.134622
E : Type ?u.134625
F : Type u_3
G : Type ?u.134631
E' : Type u_2
F' : Type ?u.134637
G' : Type ?u.134640
E'' : Type ?u.134643
F'' : Type ?u.134646
G'' : Type ?u.134649
R : Type ?u.134652
R' : Type ?u.134655
𝕜 : Type ?u.134658
𝕜' : Type ?u.134661
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 α
⊢ (fun x => -f' x) =O[l] g ↔ f' =O[l] g

tactic: exact exists_congr fun _ => isBigOWith_neg_left
state_before: α : Type u_1
β : Type ?u.134622
E : Type ?u.134625
F : Type u_3
G : Type ?u.134631
E' : Type u_2
F' : Type ?u.134637
G' : Type ?u.134640
E'' : Type ?u.134643
F'' : Type ?u.134646
G'' : Type ?u.134649
R : Type ?u.134652
R' : Type ?u.134655
𝕜 : Type ?u.134658
𝕜' : Type ?u.134661
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 α
⊢ (∃ c, IsBigOWith c l (fun x => -f' x) g) ↔ ∃ c, IsBigOWith c l f' g
Theorem: ProbabilityTheory.indepSet_empty_right
File: Mathlib/Probability/Independence/Basic.lean

tactic: simp only [IndepSet, generateFrom_singleton_empty]
state_before: Ω : Type u_1
ι : Type ?u.648825
m : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
s : Set Ω
⊢ IndepSet s ∅

tactic: exact indep_bot_right _
state_before: Ω : Type u_1
ι : Type ?u.648825
m : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
inst✝ : IsProbabilityMeasure μ
s : Set Ω
⊢ Indep (generateFrom {s}) ⊥
Theorem: SimpleGraph.dist_comm_aux
File: Mathlib/Combinatorics/SimpleGraph/Metric.lean

tactic: obtain ⟨p, hp⟩ := h.symm.exists_walk_of_dist
state_before: V : Type u_1
G : SimpleGraph V
u v : V
h : Reachable G u v
⊢ dist G u v ≤ dist G v u

tactic: rw [← hp, ← Walk.length_reverse]
state_before: case intro
V : Type u_1
G : SimpleGraph V
u v : V
h : Reachable G u v
p : Walk G v u
hp : Walk.length p = dist G v u
⊢ dist G u v ≤ dist G v u

tactic: apply dist_le
state_before: case intro
V : Type u_1
G : SimpleGraph V
u v : V
h : Reachable G u v
p : Walk G v u
hp : Walk.length p = dist G v u
⊢ dist G u v ≤ Walk.length (Walk.reverse p)
Theorem: MulAction.mem_orbit_smul
File: Mathlib/GroupTheory/GroupAction/Basic.lean

tactic: simp only [orbit_smul, mem_orbit_self]
state_before: α : Type u
β : Type v
γ : Type w
inst✝¹ : Group α
inst✝ : MulAction α β
g : α
a : β
⊢ a ∈ orbit α (g • a)
Theorem: OrthonormalBasis.det_to_matrix_orthonormalBasis_real
File: Mathlib/Analysis/InnerProductSpace/PiL2.lean

tactic: rw [← sq_eq_one_iff]
state_before: ι : Type u_2
ι' : Type ?u.1554527
𝕜 : Type ?u.1554530
inst✝¹⁰ : IsROrC 𝕜
E : Type ?u.1554536
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : InnerProductSpace 𝕜 E
E' : Type ?u.1554556
inst✝⁷ : NormedAddCommGroup E'
inst✝⁶ : InnerProductSpace 𝕜 E'
F : Type u_1
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace ℝ F
F' : Type ?u.1554594
inst✝³ : NormedAddCommGroup F'
inst✝² : InnerProductSpace ℝ F'
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
a b : OrthonormalBasis ι ℝ F
⊢ ↑(Basis.det (OrthonormalBasis.toBasis a)) ↑b = 1 ∨ ↑(Basis.det (OrthonormalBasis.toBasis a)) ↑b = -1

tactic: simpa [unitary, sq] using Matrix.det_of_mem_unitary (a.toMatrix_orthonormalBasis_mem_unitary b)
state_before: ι : Type u_2
ι' : Type ?u.1554527
𝕜 : Type ?u.1554530
inst✝¹⁰ : IsROrC 𝕜
E : Type ?u.1554536
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : InnerProductSpace 𝕜 E
E' : Type ?u.1554556
inst✝⁷ : NormedAddCommGroup E'
inst✝⁶ : InnerProductSpace 𝕜 E'
F : Type u_1
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace ℝ F
F' : Type ?u.1554594
inst✝³ : NormedAddCommGroup F'
inst✝² : InnerProductSpace ℝ F'
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
a b : OrthonormalBasis ι ℝ F
⊢ ↑(Basis.det (OrthonormalBasis.toBasis a)) ↑b ^ 2 = 1
Theorem: nndist_div_left
File: Mathlib/Topology/MetricSpace/IsometricSMul.lean

tactic: simp [div_eq_mul_inv]
state_before: M : Type u
G : Type v
X : Type w
inst✝³ : Group G
inst✝² : PseudoMetricSpace G
inst✝¹ : IsometricSMul G G
inst✝ : IsometricSMul Gᵐᵒᵖ G
a b c : G
⊢ nndist (a / b) (a / c) = nndist b c
Theorem: Equiv.Perm.sign_inv
File: Mathlib/GroupTheory/Perm/Sign.lean

tactic: rw [MonoidHom.map_inv sign f, Int.units_inv_eq_self]
state_before: α : Type u
β : Type v
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f : Perm α
⊢ ↑sign f⁻¹ = ↑sign f
Theorem: Real.map_volume_mul_right
File: Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean

tactic: simpa only [mul_comm] using Real.map_volume_mul_left h
state_before: ι : Type ?u.2209033
inst✝ : Fintype ι
a : ℝ
h : a ≠ 0
⊢ Measure.map (fun x => x * a) volume = ofReal (abs a⁻¹) • volume
Theorem: Polynomial.iterate_derivative_X_pow_eq_C_mul
File: Mathlib/Data/Polynomial/Derivative.lean

tactic: rw [iterate_derivative_X_pow_eq_nat_cast_mul n k, C_eq_nat_cast]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n✝ : ℕ
inst✝ : CommSemiring R
n k : ℕ
⊢ (↑derivative^[k]) (X ^ n) = ↑C ↑(Nat.descFactorial n k) * X ^ (n - k)
Theorem: Equiv.Perm.one_lt_card_support_of_ne_one
File: Mathlib/GroupTheory/Perm/Support.lean

tactic: simp_rw [one_lt_card_iff, mem_support, ← not_or]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g f : Perm α
h : f ≠ 1
⊢ 1 < card (support f)

tactic: contrapose! h
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g f : Perm α
h : f ≠ 1
⊢ ∃ a b, ¬(↑f a = a ∨ ↑f b = b ∨ a = b)

tactic: ext a
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g f : Perm α
h : ∀ (a b : α), ↑f a = a ∨ ↑f b = b ∨ a = b
⊢ f = 1

tactic: specialize h (f a) a
state_before: case H
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g f : Perm α
h : ∀ (a b : α), ↑f a = a ∨ ↑f b = b ∨ a = b
a : α
⊢ ↑f a = ↑1 a

tactic: rwa [apply_eq_iff_eq, or_self_iff, or_self_iff] at h
state_before: case H
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g f : Perm α
a : α
h : ↑f (↑f a) = ↑f a ∨ ↑f a = a ∨ ↑f a = a
⊢ ↑f a = ↑1 a
Theorem: FirstOrder.Language.BoundedFormula.realize_inf
File: Mathlib/ModelTheory/Semantics.lean

tactic: simp [Inf.inf, Realize]
state_before: L : Language
L' : Language
M : Type w
N : Type ?u.31660
P : Type ?u.31663
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
n l : ℕ
φ ψ : BoundedFormula L α l
θ : BoundedFormula L α (Nat.succ l)
v : α → M
xs : Fin l → M
⊢ Realize (φ ⊓ ψ) v xs ↔ Realize φ v xs ∧ Realize ψ v xs

tactic: tauto
state_before: L : Language
L' : Language
M : Type w
N : Type ?u.31660
P : Type ?u.31663
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
n l : ℕ
φ ψ : BoundedFormula L α l
θ : BoundedFormula L α (Nat.succ l)
v : α → M
xs : Fin l → M
⊢ (Realize φ v xs → Realize ψ v xs → False) → False ↔ Realize φ v xs ∧ Realize ψ v xs
Theorem: Stream'.WSeq.destruct_join
File: Mathlib/Data/Seq/WSeq.lean

tactic: apply
  Computation.eq_of_bisim
    (fun c1 c2 =>
      c1 = c2 ∨ ∃ S, c1 = destruct (join S) ∧ c2 = (destruct S).bind destruct_join.aux)
    _ (Or.inr ⟨S, rfl, rfl⟩)
state_before: α : Type u
β : Type v
γ : Type w
S : WSeq (WSeq α)
⊢ destruct (join S) = Computation.bind (destruct S) destruct_join.aux

tactic: intro c1 c2 h
state_before: α : Type u
β : Type v
γ : Type w
S : WSeq (WSeq α)
⊢ Computation.IsBisimulation fun c1 c2 =>
    c1 = c2 ∨ ∃ S, c1 = destruct (join S) ∧ c2 = Computation.bind (destruct S) destruct_join.aux

tactic: cases c.destruct <;> simp
state_before: α : Type u
β : Type v
γ : Type w
S : WSeq (WSeq α)
c1 c2 : Computation (Option (α × WSeq α))
h : c1 = c2 ∨ ∃ S, c1 = destruct (join S) ∧ c2 = Computation.bind (destruct S) destruct_join.aux
c : Computation (Option (α × WSeq α))
⊢ Computation.BisimO
    (fun c1 c2 => c1 = c2 ∨ ∃ S, c1 = destruct (join S) ∧ c2 = Computation.bind (destruct S) destruct_join.aux)
    (Computation.destruct c) (Computation.destruct c)

tactic: induction' S using WSeq.recOn with s S S <;> simp
state_before: α : Type u
β : Type v
γ : Type w
S✝ : WSeq (WSeq α)
c1 c2 : Computation (Option (α × WSeq α))
h : c1 = c2 ∨ ∃ S, c1 = destruct (join S) ∧ c2 = Computation.bind (destruct S) destruct_join.aux
S : WSeq (WSeq α)
⊢ Computation.BisimO
    (fun c1 c2 => c1 = c2 ∨ ∃ S, c1 = destruct (join S) ∧ c2 = Computation.bind (destruct S) destruct_join.aux)
    (Computation.destruct (destruct (join S))) (Computation.destruct (Computation.bind (destruct S) destruct_join.aux))

tactic: refine' Or.inr ⟨S, rfl, rfl⟩
state_before: case h3
α : Type u
β : Type v
γ : Type w
S✝ : WSeq (WSeq α)
c1 c2 : Computation (Option (α × WSeq α))
h : c1 = c2 ∨ ∃ S, c1 = destruct (join S) ∧ c2 = Computation.bind (destruct S) destruct_join.aux
S : WSeq (WSeq α)
⊢ (destruct (join S) =
      Computation.bind (destruct S) fun x =>
        match x with
        | none => Computation.pure none
        | some (s, S) => Computation.think (destruct (append s (join S)))) ∨
    ∃ S_1,
      destruct (join S) = destruct (join S_1) ∧
        (Computation.bind (destruct S) fun x =>
            match x with
            | none => Computation.pure none
            | some (s, S) => Computation.think (destruct (append s (join S)))) =
          Computation.bind (destruct S_1) fun x =>
            match x with
            | none => Computation.pure none
            | some (s, S) => Computation.think (destruct (append s (join S)))
Theorem: MeasureTheory.snorm'_smul_measure
File: Mathlib/MeasureTheory/Function/LpSeminorm.lean

tactic: rw [snorm', lintegral_smul_measure, ENNReal.mul_rpow_of_nonneg, snorm']
state_before: α : Type u_1
E : Type ?u.1990359
F : Type u_2
G : Type ?u.1990365
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ
hp : 0 ≤ p
f : α → F
c : ℝ≥0∞
⊢ snorm' f p (c • μ) = c ^ (1 / p) * snorm' f p μ

tactic: simp [hp]
state_before: case hz
α : Type u_1
E : Type ?u.1990359
F : Type u_2
G : Type ?u.1990365
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ
hp : 0 ≤ p
f : α → F
c : ℝ≥0∞
⊢ 0 ≤ 1 / p
Theorem: Vector.tail_map
File: Mathlib/Data/Vector/Basic.lean

tactic: obtain ⟨a, v', h⟩ := Vector.exists_eq_cons v
state_before: n : ℕ
α : Type u_2
β : Type u_1
v : Vector α (n + 1)
f : α → β
⊢ tail (map f v) = map f (tail v)

tactic: rw [h, map_cons, tail_cons, tail_cons]
state_before: case intro.intro
n : ℕ
α : Type u_2
β : Type u_1
v : Vector α (n + 1)
f : α → β
a : α
v' : Vector α n
h : v = a ::ᵥ v'
⊢ tail (map f v) = map f (tail v)
Theorem: Real.arccos_le_pi_div_two
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean

tactic: simp [arccos]
state_before: x : ℝ
⊢ arccos x ≤ π / 2 ↔ 0 ≤ x
Theorem: IsOpen.closure_div
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: simp_rw [div_eq_mul_inv, ht.inv.closure_mul]
state_before: α : Type u
β : Type v
G : Type w
H : Type x
inst✝² : TopologicalSpace α
inst✝¹ : Group α
inst✝ : TopologicalGroup α
s✝ t : Set α
ht : IsOpen t
s : Set α
⊢ closure s / t = s / t
Theorem: Set.biUnion_diff_biUnion_subset
File: Mathlib/Data/Set/Lattice.lean

tactic: simp only [diff_subset_iff, ← biUnion_union]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.298193
ι : Sort ?u.298196
ι' : Sort ?u.298199
ι₂ : Sort ?u.298202
κ : ι → Sort ?u.298207
κ₁ : ι → Sort ?u.298212
κ₂ : ι → Sort ?u.298217
κ' : ι' → Sort ?u.298222
t : α → Set β
s₁ s₂ : Set α
⊢ ((⋃ (x : α) (_ : x ∈ s₁), t x) \ ⋃ (x : α) (_ : x ∈ s₂), t x) ⊆ ⋃ (x : α) (_ : x ∈ s₁ \ s₂), t x

tactic: apply biUnion_subset_biUnion_left
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.298193
ι : Sort ?u.298196
ι' : Sort ?u.298199
ι₂ : Sort ?u.298202
κ : ι → Sort ?u.298207
κ₁ : ι → Sort ?u.298212
κ₂ : ι → Sort ?u.298217
κ' : ι' → Sort ?u.298222
t : α → Set β
s₁ s₂ : Set α
⊢ (⋃ (x : α) (_ : x ∈ s₁), t x) ⊆ ⋃ (x : α) (_ : x ∈ s₂ ∪ s₁ \ s₂), t x

tactic: rw [union_diff_self]
state_before: case h
α : Type u_1
β : Type u_2
γ : Type ?u.298193
ι : Sort ?u.298196
ι' : Sort ?u.298199
ι₂ : Sort ?u.298202
κ : ι → Sort ?u.298207
κ₁ : ι → Sort ?u.298212
κ₂ : ι → Sort ?u.298217
κ' : ι' → Sort ?u.298222
t : α → Set β
s₁ s₂ : Set α
⊢ s₁ ⊆ s₂ ∪ s₁ \ s₂

tactic: apply subset_union_right
state_before: case h
α : Type u_1
β : Type u_2
γ : Type ?u.298193
ι : Sort ?u.298196
ι' : Sort ?u.298199
ι₂ : Sort ?u.298202
κ : ι → Sort ?u.298207
κ₁ : ι → Sort ?u.298212
κ₂ : ι → Sort ?u.298217
κ' : ι' → Sort ?u.298222
t : α → Set β
s₁ s₂ : Set α
⊢ s₁ ⊆ s₂ ∪ s₁
Theorem: Sym2.perm_card_two_iff
File: Mathlib/Data/Sym/Sym2.lean

tactic: simp [← Multiset.coe_eq_coe, ← Multiset.cons_coe, Multiset.cons_eq_cons]
state_before: α : Type u_1
β : Type ?u.49466
γ : Type ?u.49469
a₁ b₁ a₂ b₂ : α
⊢ [a₁, b₁] ~ [a₂, b₂] → a₁ = a₂ ∧ b₁ = b₂ ∨ a₁ = b₂ ∧ b₁ = a₂

tactic: aesop
state_before: α : Type u_1
β : Type ?u.49466
γ : Type ?u.49469
a₁ b₁ a₂ b₂ : α
⊢ a₁ = a₂ ∧ b₁ = b₂ ∨ ¬a₁ = a₂ ∧ b₁ = a₂ ∧ b₂ = a₁ → a₁ = a₂ ∧ b₁ = b₂ ∨ a₁ = b₂ ∧ b₁ = a₂

tactic: rw [h₁, h₂]
state_before: α : Type u_1
β : Type ?u.49466
γ : Type ?u.49469
a₁ b₁ a₂ b₂ : α
h₁ : a₁ = b₂
h₂ : b₁ = a₂
⊢ [a₁, b₁] ~ [a₂, b₂]

tactic: first | done | apply List.Perm.swap'; rfl
state_before: α : Type u_1
β : Type ?u.49466
γ : Type ?u.49469
a₁ b₁ a₂ b₂ : α
h₁ : a₁ = b₂
h₂ : b₁ = a₂
⊢ [b₂, a₂] ~ [a₂, b₂]

tactic: done
state_before: α : Type u_1
β : Type ?u.49466
γ : Type ?u.49469
a₁ b₁ a₂ b₂ : α
h₁ : a₁ = b₂
h₂ : b₁ = a₂
⊢ [b₂, a₂] ~ [a₂, b₂]

tactic: apply List.Perm.swap'
state_before: α : Type u_1
β : Type ?u.49466
γ : Type ?u.49469
a₁ b₁ a₂ b₂ : α
h₁ : a₁ = b₂
h₂ : b₁ = a₂
⊢ [b₂, a₂] ~ [a₂, b₂]

tactic: rfl
state_before: case p
α : Type u_1
β : Type ?u.49466
γ : Type ?u.49469
a₁ b₁ a₂ b₂ : α
h₁ : a₁ = b₂
h₂ : b₁ = a₂
⊢ [] ~ []
Theorem: Ordinal.IsNormal.inj
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: simp only [le_antisymm_iff, H.le_iff]
state_before: α : Type ?u.110267
β : Type ?u.110270
γ : Type ?u.110273
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
f : Ordinal → Ordinal
H : IsNormal f
a b : Ordinal
⊢ f a = f b ↔ a = b
Theorem: List.modifyNthTail_modifyNthTail_same
File: Mathlib/Data/List/Basic.lean

tactic: rw [modifyNthTail_modifyNthTail_le n n l (le_refl n), tsub_self]
state_before: ι : Type ?u.108636
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
f g : List α → List α
n : ℕ
l : List α
⊢ modifyNthTail g n (modifyNthTail f n l) = modifyNthTail (g ∘ f) n l

tactic: rfl
state_before: ι : Type ?u.108636
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
f g : List α → List α
n : ℕ
l : List α
⊢ modifyNthTail (fun l => modifyNthTail g 0 (f l)) n l = modifyNthTail (g ∘ f) n l
Theorem: Filter.lift'_neBot_iff
File: Mathlib/Order/Filter/Lift.lean

tactic: simp only [principal_neBot_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.42346
ι : Sort ?u.42349
f f₁ f₂ : Filter α
h h₁ h₂ : Set α → Set β
hh : Monotone h
⊢ (∀ (s : Set α), s ∈ f → NeBot (𝓟 (h s))) ↔ ∀ (s : Set α), s ∈ f → Set.Nonempty (h s)
Theorem: CategoryTheory.OplaxNatTrans.whiskerRight_naturality_id
File: Mathlib/CategoryTheory/Bicategory/NaturalTransformation.lean

tactic: rw [← associator_naturality_middle, ← comp_whiskerRight_assoc, naturality_id]
state_before: B : Type u₁
inst✝¹ : Bicategory B
C : Type u₂
inst✝ : Bicategory C
F G H : OplaxFunctor B C
η : OplaxNatTrans F G
θ : OplaxNatTrans G H
a b c : B
a' : C
f : (↑G.toPrelaxFunctor).obj a ⟶ a'
⊢ naturality η (𝟙 a) ▷ f ≫
      (α_ (app η a) ((↑G.toPrelaxFunctor).map (𝟙 a)) f).hom ≫ app η a ◁ OplaxFunctor.mapId G a ▷ f =
    OplaxFunctor.mapId F a ▷ app η a ▷ f ≫
      (λ_ (app η a)).hom ▷ f ≫ (ρ_ (app η a)).inv ▷ f ≫ (α_ (app η a) (𝟙 ((↑G.toPrelaxFunctor).obj a)) f).hom

tactic: simp
state_before: B : Type u₁
inst✝¹ : Bicategory B
C : Type u₂
inst✝ : Bicategory C
F G H : OplaxFunctor B C
η : OplaxNatTrans F G
θ : OplaxNatTrans G H
a b c : B
a' : C
f : (↑G.toPrelaxFunctor).obj a ⟶ a'
⊢ (OplaxFunctor.mapId F a ▷ app η a ≫ (λ_ (app η a)).hom ≫ (ρ_ (app η a)).inv) ▷ f ≫
      (α_ (app η a) (𝟙 ((↑G.toPrelaxFunctor).obj a)) f).hom =
    OplaxFunctor.mapId F a ▷ app η a ▷ f ≫
      (λ_ (app η a)).hom ▷ f ≫ (ρ_ (app η a)).inv ▷ f ≫ (α_ (app η a) (𝟙 ((↑G.toPrelaxFunctor).obj a)) f).hom
Theorem: deriv.lhopital_zero_right_on_Ioo
File: Mathlib/Analysis/Calculus/LHopital.lean

tactic: have hdf : ∀ x ∈ Ioo a b, DifferentiableAt ℝ f x := fun x hx =>
  (hdf x hx).differentiableAt (Ioo_mem_nhds hx.1 hx.2)
state_before: a b : ℝ
hab : a < b
l : Filter ℝ
f f' g g' : ℝ → ℝ
hdf : DifferentiableOn ℝ f (Ioo a b)
hg' : ∀ (x : ℝ), x ∈ Ioo a b → deriv g x ≠ 0
hfa : Tendsto f (𝓝[Ioi a] a) (𝓝 0)
hga : Tendsto g (𝓝[Ioi a] a) (𝓝 0)
hdiv : Tendsto (fun x => deriv f x / deriv g x) (𝓝[Ioi a] a) l
⊢ Tendsto (fun x => f x / g x) (𝓝[Ioi a] a) l

tactic: have hdg : ∀ x ∈ Ioo a b, DifferentiableAt ℝ g x := fun x hx =>
  by_contradiction fun h => hg' x hx (deriv_zero_of_not_differentiableAt h)
state_before: a b : ℝ
hab : a < b
l : Filter ℝ
f f' g g' : ℝ → ℝ
hdf✝ : DifferentiableOn ℝ f (Ioo a b)
hg' : ∀ (x : ℝ), x ∈ Ioo a b → deriv g x ≠ 0
hfa : Tendsto f (𝓝[Ioi a] a) (𝓝 0)
hga : Tendsto g (𝓝[Ioi a] a) (𝓝 0)
hdiv : Tendsto (fun x => deriv f x / deriv g x) (𝓝[Ioi a] a) l
hdf : ∀ (x : ℝ), x ∈ Ioo a b → DifferentiableAt ℝ f x
⊢ Tendsto (fun x => f x / g x) (𝓝[Ioi a] a) l

tactic: exact HasDerivAt.lhopital_zero_right_on_Ioo hab (fun x hx => (hdf x hx).hasDerivAt)
  (fun x hx => (hdg x hx).hasDerivAt) hg' hfa hga hdiv
state_before: a b : ℝ
hab : a < b
l : Filter ℝ
f f' g g' : ℝ → ℝ
hdf✝ : DifferentiableOn ℝ f (Ioo a b)
hg' : ∀ (x : ℝ), x ∈ Ioo a b → deriv g x ≠ 0
hfa : Tendsto f (𝓝[Ioi a] a) (𝓝 0)
hga : Tendsto g (𝓝[Ioi a] a) (𝓝 0)
hdiv : Tendsto (fun x => deriv f x / deriv g x) (𝓝[Ioi a] a) l
hdf : ∀ (x : ℝ), x ∈ Ioo a b → DifferentiableAt ℝ f x
hdg : ∀ (x : ℝ), x ∈ Ioo a b → DifferentiableAt ℝ g x
⊢ Tendsto (fun x => f x / g x) (𝓝[Ioi a] a) l