tasksource/leandojo huggingface dataset:
Theorem: Filter.isCountablyGenerated_seq
File: Mathlib/Order/Filter/Bases.lean

tactic: use range x, countable_range x
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.110071
ι : Type ?u.110074
ι' : Sort ?u.110077
inst✝ : Countable β
x : β → Set α
⊢ IsCountablyGenerated (⨅ (i : β), 𝓟 (x i))

tactic: rw [generate_eq_biInf, iInf_range]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.110071
ι : Type ?u.110074
ι' : Sort ?u.110077
inst✝ : Countable β
x : β → Set α
⊢ (⨅ (i : β), 𝓟 (x i)) = generate (range x)
Theorem: HasFDerivWithinAt.smul_const
File: Mathlib/Analysis/Calculus/FDeriv/Mul.lean

tactic: simpa only [smul_zero, zero_add] using hc.smul (hasFDerivWithinAt_const f x s)
state_before: 𝕜 : Type u_1
inst✝¹² : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
F : Type u_4
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
G : Type ?u.579358
inst✝⁷ : NormedAddCommGroup G
inst✝⁶ : NormedSpace 𝕜 G
G' : Type ?u.579453
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
𝕜' : Type u_3
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
c : E → 𝕜'
c' : E →L[𝕜] 𝕜'
hc : HasFDerivWithinAt c c' s x
f : F
⊢ HasFDerivWithinAt (fun y => c y • f) (smulRight c' f) s x
Theorem: cmp_swap
File: Mathlib/Order/Compare.lean

tactic: unfold cmp cmpUsing
state_before: α : Type u_1
β : Type ?u.12785
inst✝¹ : Preorder α
inst✝ : DecidableRel fun x x_1 => x < x_1
a b : α
⊢ swap (cmp a b) = cmp b a

tactic: by_cases h : a < b <;> by_cases h₂ : b < a <;> simp [h, h₂, Ordering.swap]
state_before: α : Type u_1
β : Type ?u.12785
inst✝¹ : Preorder α
inst✝ : DecidableRel fun x x_1 => x < x_1
a b : α
⊢ swap (if (fun x x_1 => x < x_1) a b then lt else if (fun x x_1 => x < x_1) b a then gt else eq) =
    if (fun x x_1 => x < x_1) b a then lt else if (fun x x_1 => x < x_1) a b then gt else eq

tactic: exact lt_asymm h h₂
state_before: case pos
α : Type u_1
β : Type ?u.12785
inst✝¹ : Preorder α
inst✝ : DecidableRel fun x x_1 => x < x_1
a b : α
h : a < b
h₂ : b < a
⊢ False
Theorem: ZMod.val_one_eq_one_mod
File: Mathlib/Data/ZMod/Basic.lean

tactic: rw [← Nat.cast_one, val_nat_cast]
state_before: n : ℕ
⊢ val 1 = 1 % n
Theorem: IsROrC.ofReal_mul_im
File: Mathlib/Data/IsROrC/Basic.lean

tactic: simp only [add_zero, ofReal_im, zero_mul, ofReal_re, mul_im]
state_before: K : Type u_1
E : Type ?u.2038230
inst✝ : IsROrC K
r : ℝ
z : K
⊢ ↑im (↑r * z) = r * ↑im z
Theorem: convergent_eqv_pure
File: Mathlib/Topology/StoneCech.lean

tactic: skip
state_before: α : Type u
inst✝ : TopologicalSpace α
u : Ultrafilter α
x : α
ux : ↑u ≤ 𝓝 x
γ : Type u
tγ : TopologicalSpace γ
h₁ : T2Space γ
h₂ : CompactSpace γ
f : α → γ
hf : Continuous f
⊢ Ultrafilter.extend f u = Ultrafilter.extend f (pure x)

tactic: trans f x
state_before: α : Type u
inst✝ : TopologicalSpace α
u : Ultrafilter α
x : α
ux : ↑u ≤ 𝓝 x
γ : Type u
tγ : TopologicalSpace γ
h₁ : T2Space γ
h₂ : CompactSpace γ
f : α → γ
hf : Continuous f
⊢ Ultrafilter.extend f u = Ultrafilter.extend f (pure x)

tactic: swap
state_before: α : Type u
inst✝ : TopologicalSpace α
u : Ultrafilter α
x : α
ux : ↑u ≤ 𝓝 x
γ : Type u
tγ : TopologicalSpace γ
h₁ : T2Space γ
h₂ : CompactSpace γ
f : α → γ
hf : Continuous f
⊢ Ultrafilter.extend f u = f x

α : Type u
inst✝ : TopologicalSpace α
u : Ultrafilter α
x : α
ux : ↑u ≤ 𝓝 x
γ : Type u
tγ : TopologicalSpace γ
h₁ : T2Space γ
h₂ : CompactSpace γ
f : α → γ
hf : Continuous f
⊢ f x = Ultrafilter.extend f (pure x)

tactic: symm
state_before: α : Type u
inst✝ : TopologicalSpace α
u : Ultrafilter α
x : α
ux : ↑u ≤ 𝓝 x
γ : Type u
tγ : TopologicalSpace γ
h₁ : T2Space γ
h₂ : CompactSpace γ
f : α → γ
hf : Continuous f
⊢ f x = Ultrafilter.extend f (pure x)

α : Type u
inst✝ : TopologicalSpace α
u : Ultrafilter α
x : α
ux : ↑u ≤ 𝓝 x
γ : Type u
tγ : TopologicalSpace γ
h₁ : T2Space γ
h₂ : CompactSpace γ
f : α → γ
hf : Continuous f
⊢ Ultrafilter.extend f u = f x

tactic: all_goals refine' ultrafilter_extend_eq_iff.mpr (le_trans (map_mono _) (hf.tendsto _))
state_before: α : Type u
inst✝ : TopologicalSpace α
u : Ultrafilter α
x : α
ux : ↑u ≤ 𝓝 x
γ : Type u
tγ : TopologicalSpace γ
h₁ : T2Space γ
h₂ : CompactSpace γ
f : α → γ
hf : Continuous f
⊢ Ultrafilter.extend f (pure x) = f x

α : Type u
inst✝ : TopologicalSpace α
u : Ultrafilter α
x : α
ux : ↑u ≤ 𝓝 x
γ : Type u
tγ : TopologicalSpace γ
h₁ : T2Space γ
h₂ : CompactSpace γ
f : α → γ
hf : Continuous f
⊢ Ultrafilter.extend f u = f x

tactic: refine' ultrafilter_extend_eq_iff.mpr (le_trans (map_mono _) (hf.tendsto _))
state_before: α : Type u
inst✝ : TopologicalSpace α
u : Ultrafilter α
x : α
ux : ↑u ≤ 𝓝 x
γ : Type u
tγ : TopologicalSpace γ
h₁ : T2Space γ
h₂ : CompactSpace γ
f : α → γ
hf : Continuous f
⊢ Ultrafilter.extend f u = f x

tactic: apply pure_le_nhds
state_before: α : Type u
inst✝ : TopologicalSpace α
u : Ultrafilter α
x : α
ux : ↑u ≤ 𝓝 x
γ : Type u
tγ : TopologicalSpace γ
h₁ : T2Space γ
h₂ : CompactSpace γ
f : α → γ
hf : Continuous f
⊢ ↑(pure x) ≤ 𝓝 x

tactic: exact ux
state_before: α : Type u
inst✝ : TopologicalSpace α
u : Ultrafilter α
x : α
ux : ↑u ≤ 𝓝 x
γ : Type u
tγ : TopologicalSpace γ
h₁ : T2Space γ
h₂ : CompactSpace γ
f : α → γ
hf : Continuous f
⊢ ↑u ≤ 𝓝 x
Theorem: Fin.univ_succAbove
File: Mathlib/Data/Fintype/Basic.lean

tactic: simp
state_before: α : Type ?u.106203
β : Type ?u.106206
γ : Type ?u.106209
n : ℕ
p : Fin (n + 1)
⊢ ¬p ∈ map (succAbove p).toEmbedding univ

tactic: simp [map_eq_image]
state_before: α : Type ?u.106203
β : Type ?u.106206
γ : Type ?u.106209
n : ℕ
p : Fin (n + 1)
⊢ univ = cons p (map (succAbove p).toEmbedding univ) (_ : ¬p ∈ map (succAbove p).toEmbedding univ)
Theorem: Ordinal.mul_le_right_iff_opow_omega_dvd
File: Mathlib/SetTheory/Ordinal/FixedPoint.lean

tactic: rw [← mul_eq_right_iff_opow_omega_dvd]
state_before: a b : Ordinal
ha : 0 < a
⊢ a * b ≤ b ↔ a ^ ω ∣ b

tactic: exact (mul_isNormal ha).le_iff_eq
state_before: a b : Ordinal
ha : 0 < a
⊢ a * b ≤ b ↔ a * b = b
Theorem: Localization.neg_mk
File: Mathlib/RingTheory/Localization/Basic.lean

tactic: show Localization.neg (mk a b) = mk (-a) b
state_before: R : Type u_1
inst✝³ : CommRing R
M : Submonoid R
S : Type ?u.2960505
inst✝² : CommRing S
inst✝¹ : Algebra R S
P : Type ?u.2960742
inst✝ : CommRing P
a : R
b : { x // x ∈ M }
⊢ -mk a b = mk (-a) b

tactic: rw [Localization.neg_def]
state_before: R : Type u_1
inst✝³ : CommRing R
M : Submonoid R
S : Type ?u.2960505
inst✝² : CommRing S
inst✝¹ : Algebra R S
P : Type ?u.2960742
inst✝ : CommRing P
a : R
b : { x // x ∈ M }
⊢ Localization.neg (mk a b) = mk (-a) b

tactic: apply liftOn_mk
state_before: R : Type u_1
inst✝³ : CommRing R
M : Submonoid R
S : Type ?u.2960505
inst✝² : CommRing S
inst✝¹ : Algebra R S
P : Type ?u.2960742
inst✝ : CommRing P
a : R
b : { x // x ∈ M }
⊢ liftOn (mk a b) (fun a b => mk (-a) b)
      (_ : ∀ (a b : R) (c d : { x // x ∈ M }), ↑(r M) (a, c) (b, d) → mk (-a) c = mk (-b) d) =
    mk (-a) b
Theorem: fderivWithin_fderivWithin
File: Mathlib/Analysis/Calculus/FDeriv/Comp.lean

tactic: subst y
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_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.85620
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
g : F → G
f : E → F
x : E
y : F
s : Set E
t : Set F
hg : DifferentiableWithinAt 𝕜 g t y
hf : DifferentiableWithinAt 𝕜 f s x
h : MapsTo f s t
hxs : UniqueDiffWithinAt 𝕜 s x
hy : f x = y
v : E
⊢ ↑(fderivWithin 𝕜 g t y) (↑(fderivWithin 𝕜 f s x) v) = ↑(fderivWithin 𝕜 (g ∘ f) s x) v

tactic: rw [fderivWithin.comp x hg hf h hxs]
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_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.85620
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
g : F → G
f : E → F
x : E
s : Set E
t : Set F
hf : DifferentiableWithinAt 𝕜 f s x
h : MapsTo f s t
hxs : UniqueDiffWithinAt 𝕜 s x
v : E
hg : DifferentiableWithinAt 𝕜 g t (f x)
⊢ ↑(fderivWithin 𝕜 g t (f x)) (↑(fderivWithin 𝕜 f s x) v) = ↑(fderivWithin 𝕜 (g ∘ f) s x) v

tactic: rfl
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_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.85620
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
g : F → G
f : E → F
x : E
s : Set E
t : Set F
hf : DifferentiableWithinAt 𝕜 f s x
h : MapsTo f s t
hxs : UniqueDiffWithinAt 𝕜 s x
v : E
hg : DifferentiableWithinAt 𝕜 g t (f x)
⊢ ↑(fderivWithin 𝕜 g t (f x)) (↑(fderivWithin 𝕜 f s x) v) = ↑(comp (fderivWithin 𝕜 g t (f x)) (fderivWithin 𝕜 f s x)) v
Theorem: EMetric.diam_pair
File: Mathlib/Topology/MetricSpace/EMetricSpace.lean

tactic: simp only [iSup_singleton, diam_insert, diam_singleton, ENNReal.max_zero_right]
state_before: α : Type u
β : Type v
X : Type ?u.296438
inst✝ : PseudoEMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ≥0∞
s t : Set α
⊢ diam {x, y} = edist x y
Theorem: MvPolynomial.eval₂_assoc
File: Mathlib/Data/MvPolynomial/Basic.lean

tactic: show _ = eval₂Hom f g (eval₂ C q p)
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q✝ : MvPolynomial σ R
f : R →+* S₁
g : σ → S₁
q : S₂ → MvPolynomial σ R
p : MvPolynomial S₂ R
⊢ eval₂ f (fun t => eval₂ f g (q t)) p = eval₂ f g (eval₂ C q p)

tactic: rw [eval₂_comp_left (eval₂Hom f g)]
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q✝ : MvPolynomial σ R
f : R →+* S₁
g : σ → S₁
q : S₂ → MvPolynomial σ R
p : MvPolynomial S₂ R
⊢ eval₂ f (fun t => eval₂ f g (q t)) p = ↑(eval₂Hom f g) (eval₂ C q p)

tactic: congr with a
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q✝ : MvPolynomial σ R
f : R →+* S₁
g : σ → S₁
q : S₂ → MvPolynomial σ R
p : MvPolynomial S₂ R
⊢ eval₂ f (fun t => eval₂ f g (q t)) p = eval₂ (RingHom.comp (eval₂Hom f g) C) (↑(eval₂Hom f g) ∘ q) p

tactic: simp
state_before: case e_f.a
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a✝ a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p✝ q✝ : MvPolynomial σ R
f : R →+* S₁
g : σ → S₁
q : S₂ → MvPolynomial σ R
p : MvPolynomial S₂ R
a : R
⊢ ↑f a = ↑(RingHom.comp (eval₂Hom f g) C) a
Theorem: Set.biUnion_and'
File: Mathlib/Data/Set/Lattice.lean

tactic: simp only [iUnion_and, @iUnion_comm _ ι]
state_before: α : Type u_1
β : Type ?u.89841
γ : Type ?u.89844
ι : Sort u_2
ι' : Sort u_3
ι₂ : Sort ?u.89853
κ : ι → Sort ?u.89858
κ₁ : ι → Sort ?u.89863
κ₂ : ι → Sort ?u.89868
κ' : ι' → Sort ?u.89873
p : ι' → Prop
q : ι → ι' → Prop
s : (x : ι) → (y : ι') → p y ∧ q x y → Set α
⊢ (⋃ (x : ι) (y : ι') (h : p y ∧ q x y), s x y h) = ⋃ (y : ι') (hy : p y) (x : ι) (hx : q x y), s x y (_ : p y ∧ q x y)
Theorem: ContinuousWithinAt.of_dslope
File: Mathlib/Analysis/Calculus/Dslope.lean

tactic: have : ContinuousWithinAt (fun x => (x - a) • dslope f a x + f a) s b :=
  ((continuousWithinAt_id.sub continuousWithinAt_const).smul h).add continuousWithinAt_const
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
a b : 𝕜
s : Set 𝕜
h : ContinuousWithinAt (dslope f a) s b
⊢ ContinuousWithinAt f s b

tactic: simpa only [sub_smul_dslope, sub_add_cancel] using this
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝² : NontriviallyNormedField 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : 𝕜 → E
a b : 𝕜
s : Set 𝕜
h : ContinuousWithinAt (dslope f a) s b
this : ContinuousWithinAt (fun x => (x - a) • dslope f a x + f a) s b
⊢ ContinuousWithinAt f s b
Theorem: differentiableWithinAt_inter'
File: Mathlib/Analysis/Calculus/FDeriv/Basic.lean

tactic: simp only [DifferentiableWithinAt, hasFDerivWithinAt_inter' ht]
state_before: 𝕜 : Type u_2
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type ?u.307858
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.307953
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
ht : t ∈ 𝓝[s] x
⊢ DifferentiableWithinAt 𝕜 f (s ∩ t) x ↔ DifferentiableWithinAt 𝕜 f s x
Theorem: continuous_norm'
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: simpa using continuous_id.dist (continuous_const : Continuous fun _a => (1 : E))
state_before: 𝓕 : Type ?u.460050
𝕜 : Type ?u.460053
α : Type ?u.460056
ι : Type ?u.460059
κ : Type ?u.460062
E : Type u_1
F : Type ?u.460068
G : Type ?u.460071
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
inst✝ : SeminormedGroup G
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
⊢ Continuous fun a => ‖a‖
Theorem: Equiv.Perm.sigmaCongrRightHom_injective
File: Mathlib/GroupTheory/Perm/Basic.lean

tactic: intro x y h
state_before: α✝ : Type u
β✝ : Type v
α : Type u_1
β : α → Type u_2
⊢ Function.Injective ↑(sigmaCongrRightHom β)

tactic: ext (a b)
state_before: α✝ : Type u
β✝ : Type v
α : Type u_1
β : α → Type u_2
x y : (a : α) → Perm (β a)
h : ↑(sigmaCongrRightHom β) x = ↑(sigmaCongrRightHom β) y
⊢ x = y

tactic: simpa using Equiv.congr_fun h ⟨a, b⟩
state_before: case h.H
α✝ : Type u
β✝ : Type v
α : Type u_1
β : α → Type u_2
x y : (a : α) → Perm (β a)
h : ↑(sigmaCongrRightHom β) x = ↑(sigmaCongrRightHom β) y
a : α
b : β a
⊢ ↑(x a) b = ↑(y a) b
Theorem: measurableSet_region_between_cc
File: Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean

tactic: dsimp only [regionBetween, Icc, mem_setOf_eq, setOf_and]
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : MeasureTheory.Measure α
f g : α → ℝ
s : Set α
hf : Measurable f
hg : Measurable g
hs : MeasurableSet s
⊢ MeasurableSet {p | p.fst ∈ s ∧ p.snd ∈ Icc (f p.fst) (g p.fst)}

tactic: refine'
  MeasurableSet.inter _
    ((measurableSet_le (hf.comp measurable_fst) measurable_snd).inter
      (measurableSet_le measurable_snd (hg.comp measurable_fst)))
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : MeasureTheory.Measure α
f g : α → ℝ
s : Set α
hf : Measurable f
hg : Measurable g
hs : MeasurableSet s
⊢ MeasurableSet ({a | a.fst ∈ s} ∩ {a | a.snd ∈ {a_1 | f a.fst ≤ a_1} ∩ {a_1 | a_1 ≤ g a.fst}})

tactic: exact measurable_fst hs
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : MeasureTheory.Measure α
f g : α → ℝ
s : Set α
hf : Measurable f
hg : Measurable g
hs : MeasurableSet s
⊢ MeasurableSet {a | a.fst ∈ s}
Theorem: Finset.not_mem_of_mem_powerset_of_not_mem
File: Mathlib/Data/Finset/Powerset.lean

tactic: apply mt _ h
state_before: α : Type u_1
s✝ t✝ s t : Finset α
a : α
ht : t ∈ powerset s
h : ¬a ∈ s
⊢ ¬a ∈ t

tactic: apply mem_powerset.1 ht
state_before: α : Type u_1
s✝ t✝ s t : Finset α
a : α
ht : t ∈ powerset s
h : ¬a ∈ s
⊢ a ∈ t → a ∈ s
Theorem: Finite.card_subtype_lt
File: Mathlib/Data/Finite/Card.lean

tactic: haveI := Fintype.ofFinite α
state_before: α : Type u_1
β : Type ?u.6560
γ : Type ?u.6563
inst✝ : Finite α
p : α → Prop
x : α
hx : ¬p x
⊢ Nat.card { x // p x } < Nat.card α

tactic: simpa only [Nat.card_eq_fintype_card, gt_iff_lt] using Fintype.card_subtype_lt hx
state_before: α : Type u_1
β : Type ?u.6560
γ : Type ?u.6563
inst✝ : Finite α
p : α → Prop
x : α
hx : ¬p x
this : Fintype α
⊢ Nat.card { x // p x } < Nat.card α
Theorem: List.subperm_ext_iff
File: Mathlib/Data/List/Perm.lean

tactic: refine' ⟨fun h x _ => Subperm.count_le h x, fun h => _⟩
state_before: α : Type uu
β : Type vv
l₁✝ l₂✝ : List α
inst✝ : DecidableEq α
l₁ l₂ : List α
⊢ l₁ <+~ l₂ ↔ ∀ (x : α), x ∈ l₁ → count x l₁ ≤ count x l₂

tactic: suffices l₁ <+~ l₂.diff l₁ ++ l₁ by
  refine' this.trans (Perm.subperm _)
  exact perm_append_comm.trans (subperm_append_diff_self_of_count_le h)
state_before: α : Type uu
β : Type vv
l₁✝ l₂✝ : List α
inst✝ : DecidableEq α
l₁ l₂ : List α
h : ∀ (x : α), x ∈ l₁ → count x l₁ ≤ count x l₂
⊢ l₁ <+~ l₂

tactic: exact (subperm_append_right l₁).mpr nil_subperm
state_before: α : Type uu
β : Type vv
l₁✝ l₂✝ : List α
inst✝ : DecidableEq α
l₁ l₂ : List α
h : ∀ (x : α), x ∈ l₁ → count x l₁ ≤ count x l₂
⊢ l₁ <+~ List.diff l₂ l₁ ++ l₁

tactic: refine' this.trans (Perm.subperm _)
state_before: α : Type uu
β : Type vv
l₁✝ l₂✝ : List α
inst✝ : DecidableEq α
l₁ l₂ : List α
h : ∀ (x : α), x ∈ l₁ → count x l₁ ≤ count x l₂
this : l₁ <+~ List.diff l₂ l₁ ++ l₁
⊢ l₁ <+~ l₂

tactic: exact perm_append_comm.trans (subperm_append_diff_self_of_count_le h)
state_before: α : Type uu
β : Type vv
l₁✝ l₂✝ : List α
inst✝ : DecidableEq α
l₁ l₂ : List α
h : ∀ (x : α), x ∈ l₁ → count x l₁ ≤ count x l₂
this : l₁ <+~ List.diff l₂ l₁ ++ l₁
⊢ List.diff l₂ l₁ ++ l₁ ~ l₂
Theorem: List.forall_mem_singleton
File: Std/Data/List/Lemmas.lean

tactic: simp only [mem_singleton, forall_eq]
state_before: α : Type u_1
p : α → Prop
a : α
⊢ (∀ (x : α), x ∈ [a] → p x) ↔ p a
Theorem: Nat.even_iff
File: Mathlib/Data/Nat/Parity.lean

tactic: simp [← two_mul, hm]
state_before: m✝ n : ℕ
x✝ : Even n
m : ℕ
hm : n = m + m
⊢ n % 2 = 0

tactic: simp [← two_mul, h]
state_before: m n : ℕ
h : n % 2 = 0
⊢ n % 2 + 2 * (n / 2) = n / 2 + n / 2
Theorem: List.isInfix.filter
File: Std/Data/List/Lemmas.lean

tactic: obtain ⟨xs, ys, rfl⟩ := h
state_before: α : Type u_1
p : α → Bool
l₁ l₂ : List α
h : l₁ <:+: l₂
⊢ List.filter p l₁ <:+: List.filter p l₂

tactic: rw [filter_append, filter_append]
state_before: case intro.intro
α : Type u_1
p : α → Bool
l₁ xs ys : List α
⊢ List.filter p l₁ <:+: List.filter p (xs ++ l₁ ++ ys)

tactic: apply infix_append _
state_before: case intro.intro
α : Type u_1
p : α → Bool
l₁ xs ys : List α
⊢ List.filter p l₁ <:+: List.filter p xs ++ List.filter p l₁ ++ List.filter p ys
Theorem: pow_le_pow'
File: Mathlib/Algebra/GroupPower/Order.lean

tactic: rw [← hk, pow_add]
state_before: β : Type ?u.15072
A : Type ?u.15075
G : Type ?u.15078
M : Type u_1
R : Type ?u.15084
inst✝² : Monoid M
inst✝¹ : Preorder M
inst✝ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
x a : M
n m : ℕ
ha : 1 ≤ a
h : n ≤ m
k : ℕ
hk : n + k = m
⊢ a ^ n * a ^ k = a ^ m
Theorem: Int.add_sub_assoc
File: Std/Data/Int/Lemmas.lean

tactic: rw [Int.sub_eq_add_neg, Int.add_assoc, ← Int.sub_eq_add_neg]
state_before: a b c : Int
⊢ a + b - c = a + (b - c)
Theorem: Matrix.eval_det
File: Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean

tactic: rw [Polynomial.eval, ← coe_eval₂RingHom, RingHom.map_det]
state_before: R : Type u
inst✝³ : CommRing R
n G : Type v
inst✝² : DecidableEq n
inst✝¹ : Fintype n
α β : Type v
inst✝ : DecidableEq α
M✝ : Matrix n n R
M : Matrix n n R[X]
r : R
⊢ eval r (det M) = det (eval (↑(scalar n) r) (↑matPolyEquiv M))

tactic: apply congr_arg det
state_before: R : Type u
inst✝³ : CommRing R
n G : Type v
inst✝² : DecidableEq n
inst✝¹ : Fintype n
α β : Type v
inst✝ : DecidableEq α
M✝ : Matrix n n R
M : Matrix n n R[X]
r : R
⊢ det (↑(RingHom.mapMatrix (eval₂RingHom (RingHom.id R) r)) M) = det (eval (↑(scalar n) r) (↑matPolyEquiv M))

tactic: ext
state_before: R : Type u
inst✝³ : CommRing R
n G : Type v
inst✝² : DecidableEq n
inst✝¹ : Fintype n
α β : Type v
inst✝ : DecidableEq α
M✝ : Matrix n n R
M : Matrix n n R[X]
r : R
⊢ ↑(RingHom.mapMatrix (eval₂RingHom (RingHom.id R) r)) M = eval (↑(scalar n) r) (↑matPolyEquiv M)

tactic: symm
state_before: case a.h
R : Type u
inst✝³ : CommRing R
n G : Type v
inst✝² : DecidableEq n
inst✝¹ : Fintype n
α β : Type v
inst✝ : DecidableEq α
M✝ : Matrix n n R
M : Matrix n n R[X]
r : R
i✝ x✝ : n
⊢ ↑(RingHom.mapMatrix (eval₂RingHom (RingHom.id R) r)) M i✝ x✝ = eval (↑(scalar n) r) (↑matPolyEquiv M) i✝ x✝

tactic: exact matPolyEquiv_eval _ _ _ _
state_before: case a.h
R : Type u
inst✝³ : CommRing R
n G : Type v
inst✝² : DecidableEq n
inst✝¹ : Fintype n
α β : Type v
inst✝ : DecidableEq α
M✝ : Matrix n n R
M : Matrix n n R[X]
r : R
i✝ x✝ : n
⊢ eval (↑(scalar n) r) (↑matPolyEquiv M) i✝ x✝ = ↑(RingHom.mapMatrix (eval₂RingHom (RingHom.id R) r)) M i✝ x✝
Theorem: Int.odd_iff
File: Mathlib/Data/Int/Parity.lean

tactic: rw [hm, add_emod]
state_before: m✝ n : ℤ
x✝ : Odd n
m : ℤ
hm : n = 2 * m + 1
⊢ n % 2 = 1

tactic: norm_num
state_before: m✝ n : ℤ
x✝ : Odd n
m : ℤ
hm : n = 2 * m + 1
⊢ (2 * m % 2 + 1 % 2) % 2 = 1

tactic: rw [h]
state_before: m n : ℤ
h : n % 2 = 1
⊢ n % 2 + 2 * (n / 2) = 2 * (n / 2) + 1

tactic: abel
state_before: m n : ℤ
h : n % 2 = 1
⊢ 1 + 2 * (n / 2) = 2 * (n / 2) + 1
Theorem: upperClosure_sUnion
File: Mathlib/Order/UpperLower/Basic.lean

tactic: simp_rw [sUnion_eq_biUnion, upperClosure_iUnion]
state_before: α : Type u_1
β : Type ?u.162324
γ : Type ?u.162327
ι : Sort ?u.162330
κ : ι → Sort ?u.162335
inst✝¹ : Preorder α
inst✝ : Preorder β
s t : Set α
x : α
S : Set (Set α)
⊢ upperClosure (⋃₀ S) = ⨅ (s : Set α) (_ : s ∈ S), upperClosure s
Theorem: sup_inf_self
File: Mathlib/Order/Lattice.lean

tactic: simp
state_before: α : Type u
β : Type v
inst✝ : Lattice α
a b c d : α
⊢ a ⊔ a ⊓ b = a
Theorem: MeasureTheory.lintegral_nnnorm_eq_of_ae_nonneg
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: apply lintegral_congr_ae
state_before: α : Type u_1
β : Type ?u.296013
γ : Type ?u.296016
δ : Type ?u.296019
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ
h_nonneg : 0 ≤ᵐ[μ] f
⊢ (∫⁻ (x : α), ↑‖f x‖₊ ∂μ) = ∫⁻ (x : α), ENNReal.ofReal (f x) ∂μ

tactic: filter_upwards [h_nonneg]with x hx
state_before: case h
α : Type u_1
β : Type ?u.296013
γ : Type ?u.296016
δ : Type ?u.296019
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ
h_nonneg : 0 ≤ᵐ[μ] f
⊢ (fun a => ↑‖f a‖₊) =ᵐ[μ] fun a => ENNReal.ofReal (f a)

tactic: rw [Real.nnnorm_of_nonneg hx, ENNReal.ofReal_eq_coe_nnreal hx]
state_before: case h
α : Type u_1
β : Type ?u.296013
γ : Type ?u.296016
δ : Type ?u.296019
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ
h_nonneg : 0 ≤ᵐ[μ] f
x : α
hx : OfNat.ofNat 0 x ≤ f x
⊢ ↑‖f x‖₊ = ENNReal.ofReal (f x)
Theorem: Polynomial.IsRoot.of_map
File: Mathlib/Data/Polynomial/Eval.lean

tactic: rwa [IsRoot, ← (injective_iff_map_eq_zero' f).mp hf, ← eval₂_hom, ← eval_map]
state_before: R✝ : Type u
S : Type v
T : Type w
ι : Type y
a b : R✝
m n : ℕ
inst✝² : CommSemiring R✝
inst✝¹ : CommSemiring S
f✝ : R✝ →+* S
R : Type u_1
inst✝ : CommRing R
f : R →+* S
x : R
p : R[X]
h : IsRoot (Polynomial.map f p) (↑f x)
hf : Function.Injective ↑f
⊢ IsRoot p x
Theorem: or_or_distrib_left
File: Std/Logic.lean

tactic: rw [or_or_or_comm, or_self]
state_before: a b c : Prop
⊢ a ∨ b ∨ c ↔ (a ∨ b) ∨ a ∨ c