tasksource/leandojo huggingface dataset:
Theorem: Metric.cthickening_eq_iInter_thickening'
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

tactic: refine' (subset_iInter₂ fun ε hε => _).antisymm _
state_before: ι : Sort ?u.141817
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ✝ ε : ℝ
s✝ t : Set α
x : α
δ : ℝ
δ_nn : 0 ≤ δ
s : Set ℝ
hsδ : s ⊆ Ioi δ
hs : ∀ (ε : ℝ), δ < ε → Set.Nonempty (s ∩ Ioc δ ε)
E : Set α
⊢ cthickening δ E = ⋂ (ε : ℝ) (_ : ε ∈ s), thickening ε E

tactic: obtain ⟨ε', -, hε'⟩ := hs ε (hsδ hε)
state_before: case refine'_1
ι : Sort ?u.141817
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ✝ ε✝ : ℝ
s✝ t : Set α
x : α
δ : ℝ
δ_nn : 0 ≤ δ
s : Set ℝ
hsδ : s ⊆ Ioi δ
hs : ∀ (ε : ℝ), δ < ε → Set.Nonempty (s ∩ Ioc δ ε)
E : Set α
ε : ℝ
hε : ε ∈ s
⊢ cthickening δ E ⊆ thickening ε E

tactic: have ss := cthickening_subset_thickening' (lt_of_le_of_lt δ_nn hε'.1) hε'.1 E
state_before: case refine'_1.intro.intro
ι : Sort ?u.141817
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ✝ ε✝ : ℝ
s✝ t : Set α
x : α
δ : ℝ
δ_nn : 0 ≤ δ
s : Set ℝ
hsδ : s ⊆ Ioi δ
hs : ∀ (ε : ℝ), δ < ε → Set.Nonempty (s ∩ Ioc δ ε)
E : Set α
ε : ℝ
hε : ε ∈ s
ε' : ℝ
hε' : ε' ∈ Ioc δ ε
⊢ cthickening δ E ⊆ thickening ε E

tactic: exact ss.trans (thickening_mono hε'.2 E)
state_before: case refine'_1.intro.intro
ι : Sort ?u.141817
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ✝ ε✝ : ℝ
s✝ t : Set α
x : α
δ : ℝ
δ_nn : 0 ≤ δ
s : Set ℝ
hsδ : s ⊆ Ioi δ
hs : ∀ (ε : ℝ), δ < ε → Set.Nonempty (s ∩ Ioc δ ε)
E : Set α
ε : ℝ
hε : ε ∈ s
ε' : ℝ
hε' : ε' ∈ Ioc δ ε
ss : cthickening δ E ⊆ thickening ε' E
⊢ cthickening δ E ⊆ thickening ε E

tactic: rw [cthickening_eq_iInter_cthickening' s hsδ hs E]
state_before: case refine'_2
ι : Sort ?u.141817
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ✝ ε : ℝ
s✝ t : Set α
x : α
δ : ℝ
δ_nn : 0 ≤ δ
s : Set ℝ
hsδ : s ⊆ Ioi δ
hs : ∀ (ε : ℝ), δ < ε → Set.Nonempty (s ∩ Ioc δ ε)
E : Set α
⊢ (⋂ (i : ℝ) (_ : i ∈ s), thickening i E) ⊆ cthickening δ E

tactic: exact iInter₂_mono fun ε _ => thickening_subset_cthickening ε E
state_before: case refine'_2
ι : Sort ?u.141817
α : Type u
β : Type v
inst✝ : PseudoEMetricSpace α
δ✝ ε : ℝ
s✝ t : Set α
x : α
δ : ℝ
δ_nn : 0 ≤ δ
s : Set ℝ
hsδ : s ⊆ Ioi δ
hs : ∀ (ε : ℝ), δ < ε → Set.Nonempty (s ∩ Ioc δ ε)
E : Set α
⊢ (⋂ (i : ℝ) (_ : i ∈ s), thickening i E) ⊆ ⋂ (ε : ℝ) (_ : ε ∈ s), cthickening ε E
Theorem: MeasureTheory.HasFiniteIntegral.min_zero
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: simp [abs_le, neg_le, neg_le_abs_self, abs_eq_max_neg, le_total]
state_before: α : Type u_1
β : Type ?u.753960
γ : Type ?u.753963
δ : Type ?u.753966
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ
hf : HasFiniteIntegral f
x : α
⊢ ‖min (f x) 0‖ ≤ ‖f x‖
Theorem: Ordinal.cof_bsup_le
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: rw [← o.card.lift_id]
state_before: α : Type ?u.41243
r : α → α → Prop
o : Ordinal
f : (a : Ordinal) → a < o → Ordinal
⊢ (∀ (i : Ordinal) (h : i < o), f i h < bsup o f) → cof (bsup o f) ≤ card o

tactic: exact cof_bsup_le_lift
state_before: α : Type ?u.41243
r : α → α → Prop
o : Ordinal
f : (a : Ordinal) → a < o → Ordinal
⊢ (∀ (i : Ordinal) (h : i < o), f i h < bsup o f) → cof (bsup o f) ≤ Cardinal.lift (card o)
Theorem: gronwallBound_continuous_ε
File: Mathlib/Analysis/ODE/Gronwall.lean

tactic: by_cases hK : K = 0
state_before: E : Type ?u.31491
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type ?u.31587
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
δ K x : ℝ
⊢ Continuous fun ε => gronwallBound δ K ε x

tactic: simp only [gronwallBound_K0, hK]
state_before: case pos
E : Type ?u.31491
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type ?u.31587
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
δ K x : ℝ
hK : K = 0
⊢ Continuous fun ε => gronwallBound δ K ε x

tactic: exact continuous_const.add (continuous_id.mul continuous_const)
state_before: case pos
E : Type ?u.31491
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type ?u.31587
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
δ K x : ℝ
hK : K = 0
⊢ Continuous fun ε => δ + ε * x

tactic: simp only [gronwallBound_of_K_ne_0 hK]
state_before: case neg
E : Type ?u.31491
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type ?u.31587
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
δ K x : ℝ
hK : ¬K = 0
⊢ Continuous fun ε => gronwallBound δ K ε x

tactic: exact continuous_const.add ((continuous_id.mul continuous_const).mul continuous_const)
state_before: case neg
E : Type ?u.31491
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type ?u.31587
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
δ K x : ℝ
hK : ¬K = 0
⊢ Continuous fun ε => δ * exp (K * x) + ε / K * (exp (K * x) - 1)
Theorem: Set.image2_iInter₂_subset_left
File: Mathlib/Data/Set/Lattice.lean

tactic: simp_rw [image2_subset_iff, mem_iInter]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort ?u.253222
ι₂ : Sort ?u.253225
κ : ι → Sort u_5
κ₁ : ι → Sort ?u.253235
κ₂ : ι → Sort ?u.253240
κ' : ι' → Sort ?u.253245
f : α → β → γ
s✝ : Set α
t✝ : Set β
s : (i : ι) → κ i → Set α
t : Set β
⊢ image2 f (⋂ (i : ι) (j : κ i), s i j) t ⊆ ⋂ (i : ι) (j : κ i), image2 f (s i j) t

tactic: exact fun x hx y hy i j => mem_image2_of_mem (hx _ _) hy
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort ?u.253222
ι₂ : Sort ?u.253225
κ : ι → Sort u_5
κ₁ : ι → Sort ?u.253235
κ₂ : ι → Sort ?u.253240
κ' : ι' → Sort ?u.253245
f : α → β → γ
s✝ : Set α
t✝ : Set β
s : (i : ι) → κ i → Set α
t : Set β
⊢ ∀ (x : α),
    (∀ (i : ι) (i_1 : κ i), x ∈ s i i_1) → ∀ (y : β), y ∈ t → ∀ (i : ι) (i_1 : κ i), f x y ∈ image2 f (s i i_1) t
Theorem: Set.prod_iUnion₂
File: Mathlib/Data/Set/Lattice.lean

tactic: simp_rw [prod_iUnion]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.228853
ι : Sort u_3
ι' : Sort ?u.228859
ι₂ : Sort ?u.228862
κ : ι → Sort u_4
κ₁ : ι → Sort ?u.228872
κ₂ : ι → Sort ?u.228877
κ' : ι' → Sort ?u.228882
s : Set α
t : (i : ι) → κ i → Set β
⊢ (s ×ˢ ⋃ (i : ι) (j : κ i), t i j) = ⋃ (i : ι) (j : κ i), s ×ˢ t i j
Theorem: WittVector.ghostFun_add
File: Mathlib/RingTheory/WittVector/Basic.lean

tactic: ghost_fun_tac X 0 + X 1, ![x.coeff, y.coeff]
state_before: p : ℕ
R : Type u_1
S : Type ?u.661694
T : Type ?u.661697
hp : Fact (Nat.Prime p)
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : CommRing T
α : Type ?u.661712
β : Type ?u.661715
x y : 𝕎 R
⊢ WittVector.ghostFun (x + y) = WittVector.ghostFun x + WittVector.ghostFun y
Theorem: spectrum.map_pow_of_nonempty
File: Mathlib/FieldTheory/IsAlgClosed/Spectrum.lean

tactic: simpa only [aeval_X_pow, eval_pow, eval_X] using map_polynomial_aeval_of_nonempty a (X ^ n) ha
state_before: 𝕜 : Type u
A : Type v
inst✝³ : Field 𝕜
inst✝² : Ring A
inst✝¹ : Algebra 𝕜 A
inst✝ : IsAlgClosed 𝕜
a : A
ha : Set.Nonempty (σ a)
n : ℕ
⊢ σ (a ^ n) = (fun x => x ^ n) '' σ a
Theorem: SimpleGraph.Subgraph.iInf_adj
File: Mathlib/Combinatorics/SimpleGraph/Subgraph.lean

tactic: simp [iInf]
state_before: ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : Subgraph G
a b : V
f : ι → Subgraph G
⊢ Adj (⨅ (i : ι), f i) a b ↔ (∀ (i : ι), Adj (f i) a b) ∧ SimpleGraph.Adj G a b
Theorem: Units.add_eq_mul_one_add_div
File: Mathlib/Algebra/Ring/Units.lean

tactic: rw [mul_add, mul_one, ← mul_assoc, Units.mul_inv, one_mul]
state_before: α : Type u
β : Type v
γ : Type w
R : Type x
inst✝ : Semiring R
a : Rˣ
b : R
⊢ ↑a + b = ↑a * (1 + ↑a⁻¹ * b)
Theorem: BoundedContinuousFunction.nndist_eq
File: Mathlib/Topology/ContinuousFunction/Bounded.lean

tactic: rw [val_eq_coe, coe_sInf, coe_image]
state_before: F : Type ?u.302706
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : PseudoMetricSpace β
inst✝ : PseudoMetricSpace γ
f g : α →ᵇ β
x : α
C : ℝ
⊢ sInf {C | 0 ≤ C ∧ ∀ (x : α), dist (↑f x) (↑g x) ≤ C} = ↑(sInf {C | ∀ (x : α), nndist (↑f x) (↑g x) ≤ C})

tactic: simp_rw [mem_setOf_eq, ← NNReal.coe_le_coe, coe_mk, exists_prop, coe_nndist]
state_before: F : Type ?u.302706
α : Type u
β : Type v
γ : Type w
inst✝² : TopologicalSpace α
inst✝¹ : PseudoMetricSpace β
inst✝ : PseudoMetricSpace γ
f g : α →ᵇ β
x : α
C : ℝ
⊢ sInf {C | 0 ≤ C ∧ ∀ (x : α), dist (↑f x) (↑g x) ≤ C} =
    sInf {x | ∃ h, { val := x, property := h } ∈ {C | ∀ (x : α), nndist (↑f x) (↑g x) ≤ C}}
Theorem: TypeVec.prod_id
File: Mathlib/Data/TypeVec.lean

tactic: intros
state_before: n : ℕ
⊢ ∀ {n : ℕ} {α β : TypeVec n}, (id ⊗' id) = id

tactic: ext (i a)
state_before: n n✝ : ℕ
α✝ β✝ : TypeVec n✝
⊢ (id ⊗' id) = id

tactic: induction' i with _ _ _ i_ih
state_before: case a.h
n n✝ : ℕ
α✝ β✝ : TypeVec n✝
i : Fin2 n✝
a : (α✝ ⊗ β✝) i
⊢ (id ⊗' id) i a = id i a

tactic: cases a
state_before: case a.h.fz
n n✝¹ : ℕ
α✝¹ β✝¹ : TypeVec n✝¹
i : Fin2 n✝¹
a✝ : (α✝¹ ⊗ β✝¹) i
n✝ : ℕ
α✝ β✝ : TypeVec (succ n✝)
a : (α✝ ⊗ β✝) Fin2.fz
⊢ (id ⊗' id) Fin2.fz a = id Fin2.fz a

tactic: rfl
state_before: case a.h.fz.mk
n n✝¹ : ℕ
α✝¹ β✝¹ : TypeVec n✝¹
i : Fin2 n✝¹
a : (α✝¹ ⊗ β✝¹) i
n✝ : ℕ
α✝ β✝ : TypeVec (succ n✝)
fst✝ : last α✝
snd✝ : last β✝
⊢ (id ⊗' id) Fin2.fz (fst✝, snd✝) = id Fin2.fz (fst✝, snd✝)

tactic: apply i_ih
state_before: case a.h.fs
n n✝¹ : ℕ
α✝¹ β✝¹ : TypeVec n✝¹
i : Fin2 n✝¹
a✝¹ : (α✝¹ ⊗ β✝¹) i
n✝ : ℕ
a✝ : Fin2 n✝
i_ih : ∀ {α β : TypeVec n✝} (a : (α ⊗ β) a✝), (id ⊗' id) a✝ a = id a✝ a
α✝ β✝ : TypeVec (succ n✝)
a : (α✝ ⊗ β✝) (Fin2.fs a✝)
⊢ (id ⊗' id) (Fin2.fs a✝) a = id (Fin2.fs a✝) a
Theorem: Stream'.WSeq.think_equiv
File: Mathlib/Data/Seq/WSeq.lean

tactic: unfold Equiv
state_before: α : Type u
β : Type v
γ : Type w
s : WSeq α
⊢ think s ~ʷ s

tactic: simp
state_before: α : Type u
β : Type v
γ : Type w
s : WSeq α
⊢ LiftRel (fun x x_1 => x = x_1) (think s) s

tactic: apply Equiv.refl
state_before: α : Type u
β : Type v
γ : Type w
s : WSeq α
⊢ LiftRel (fun x x_1 => x = x_1) s s
Theorem: Finset.sum_card_inter_le
File: Mathlib/Algebra/BigOperators/Order.lean

tactic: refine' le_trans _ (s.sum_le_card_nsmul _ _ h)
state_before: ι : Type ?u.102009
α : Type u_1
β : Type ?u.102015
M : Type ?u.102018
N : Type ?u.102021
G : Type ?u.102024
k : Type ?u.102027
R : Type ?u.102030
inst✝ : DecidableEq α
s : Finset α
B : Finset (Finset α)
n : ℕ
h : ∀ (a : α), a ∈ s → card (filter ((fun x x_1 => x ∈ x_1) a) B) ≤ n
⊢ ∑ t in B, card (s ∩ t) ≤ card s * n

tactic: simp_rw [← filter_mem_eq_inter, card_eq_sum_ones, sum_filter]
state_before: ι : Type ?u.102009
α : Type u_1
β : Type ?u.102015
M : Type ?u.102018
N : Type ?u.102021
G : Type ?u.102024
k : Type ?u.102027
R : Type ?u.102030
inst✝ : DecidableEq α
s : Finset α
B : Finset (Finset α)
n : ℕ
h : ∀ (a : α), a ∈ s → card (filter ((fun x x_1 => x ∈ x_1) a) B) ≤ n
⊢ ∑ t in B, card (s ∩ t) ≤ ∑ x in s, card (filter ((fun x x_1 => x ∈ x_1) x) B)

tactic: exact sum_comm.le
state_before: ι : Type ?u.102009
α : Type u_1
β : Type ?u.102015
M : Type ?u.102018
N : Type ?u.102021
G : Type ?u.102024
k : Type ?u.102027
R : Type ?u.102030
inst✝ : DecidableEq α
s : Finset α
B : Finset (Finset α)
n : ℕ
h : ∀ (a : α), a ∈ s → card (filter ((fun x x_1 => x ∈ x_1) a) B) ≤ n
⊢ (∑ x in B, ∑ a in s, if a ∈ x then 1 else 0) ≤ ∑ x in s, ∑ a in B, if x ∈ a then 1 else 0
Theorem: Filter.mem_comap'
File: Mathlib/Order/Filter/Basic.lean

tactic: rwa [hx]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.224114
ι : Sort x
f : α → β
l : Filter β
p : α → Prop
s : Set α
x✝ : s ∈ comap f l
t : Set β
ht : t ∈ l
hts : f ⁻¹' t ⊆ s
y : β
hy : y ∈ t
x : α
hx : f x = y
⊢ f x ∈ t
Theorem: YoungDiagram.mem_iff_lt_colLen
File: Mathlib/Combinatorics/Young/YoungDiagram.lean

tactic: rw [← rowLen_transpose, ← mem_iff_lt_rowLen]
state_before: μ : YoungDiagram
i j : ℕ
⊢ (i, j) ∈ μ ↔ i < colLen μ j

tactic: simp
state_before: μ : YoungDiagram
i j : ℕ
⊢ (i, j) ∈ μ ↔ (j, i) ∈ transpose μ
Theorem: sbtw_midpoint_of_ne
File: Mathlib/Analysis/Convex/Between.lean

tactic: have h : midpoint R x y ≠ x := by simp [h]
state_before: R : Type u_2
V : Type u_3
V' : Type ?u.631338
P : Type u_1
P' : Type ?u.631344
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y : P
h : x ≠ y
⊢ Sbtw R x (midpoint R x y) y

tactic: convert sbtw_pointReflection_of_ne R h
state_before: R : Type u_2
V : Type u_3
V' : Type ?u.631338
P : Type u_1
P' : Type ?u.631344
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y : P
h✝ : x ≠ y
h : midpoint R x y ≠ x
⊢ Sbtw R x (midpoint R x y) y

tactic: rw [pointReflection_midpoint_left]
state_before: case h.e'_10
R : Type u_2
V : Type u_3
V' : Type ?u.631338
P : Type u_1
P' : Type ?u.631344
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y : P
h✝ : x ≠ y
h : midpoint R x y ≠ x
⊢ y = ↑(pointReflection R (midpoint R x y)) x

tactic: simp [h]
state_before: R : Type u_2
V : Type u_3
V' : Type ?u.631338
P : Type u_1
P' : Type ?u.631344
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y : P
h : x ≠ y
⊢ midpoint R x y ≠ x
Theorem: MeasureTheory.SimpleFunc.lintegral_eq_of_measure_preimage
File: Mathlib/MeasureTheory/Function/SimpleFunc.lean

tactic: simp only [lintegral, ← H]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.900789
δ : Type ?u.900792
m : MeasurableSpace α
μ ν✝ : Measure α
inst✝ : MeasurableSpace β
f : α →ₛ ℝ≥0∞
g : β →ₛ ℝ≥0∞
ν : Measure β
H : ∀ (y : ℝ≥0∞), ↑↑μ (↑f ⁻¹' {y}) = ↑↑ν (↑g ⁻¹' {y})
⊢ lintegral f μ = lintegral g ν

tactic: apply lintegral_eq_of_subset
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.900789
δ : Type ?u.900792
m : MeasurableSpace α
μ ν✝ : Measure α
inst✝ : MeasurableSpace β
f : α →ₛ ℝ≥0∞
g : β →ₛ ℝ≥0∞
ν : Measure β
H : ∀ (y : ℝ≥0∞), ↑↑μ (↑f ⁻¹' {y}) = ↑↑ν (↑g ⁻¹' {y})
⊢ ∑ x in SimpleFunc.range f, x * ↑↑μ (↑f ⁻¹' {x}) = ∑ x in SimpleFunc.range g, x * ↑↑μ (↑f ⁻¹' {x})

tactic: simp only [H]
state_before: case hs
α : Type u_2
β : Type u_1
γ : Type ?u.900789
δ : Type ?u.900792
m : MeasurableSpace α
μ ν✝ : Measure α
inst✝ : MeasurableSpace β
f : α →ₛ ℝ≥0∞
g : β →ₛ ℝ≥0∞
ν : Measure β
H : ∀ (y : ℝ≥0∞), ↑↑μ (↑f ⁻¹' {y}) = ↑↑ν (↑g ⁻¹' {y})
⊢ ∀ (x : α), ↑f x ≠ 0 → ↑↑μ (↑f ⁻¹' {↑f x}) ≠ 0 → ↑f x ∈ SimpleFunc.range g

tactic: intros
state_before: case hs
α : Type u_2
β : Type u_1
γ : Type ?u.900789
δ : Type ?u.900792
m : MeasurableSpace α
μ ν✝ : Measure α
inst✝ : MeasurableSpace β
f : α →ₛ ℝ≥0∞
g : β →ₛ ℝ≥0∞
ν : Measure β
H : ∀ (y : ℝ≥0∞), ↑↑μ (↑f ⁻¹' {y}) = ↑↑ν (↑g ⁻¹' {y})
⊢ ∀ (x : α), ↑f x ≠ 0 → ↑↑ν (↑g ⁻¹' {↑f x}) ≠ 0 → ↑f x ∈ SimpleFunc.range g

tactic: exact mem_range_of_measure_ne_zero ‹_›
state_before: case hs
α : Type u_2
β : Type u_1
γ : Type ?u.900789
δ : Type ?u.900792
m : MeasurableSpace α
μ ν✝ : Measure α
inst✝ : MeasurableSpace β
f : α →ₛ ℝ≥0∞
g : β →ₛ ℝ≥0∞
ν : Measure β
H : ∀ (y : ℝ≥0∞), ↑↑μ (↑f ⁻¹' {y}) = ↑↑ν (↑g ⁻¹' {y})
x✝ : α
a✝¹ : ↑f x✝ ≠ 0
a✝ : ↑↑ν (↑g ⁻¹' {↑f x✝}) ≠ 0
⊢ ↑f x✝ ∈ SimpleFunc.range g
Theorem: two_smul
File: Mathlib/Algebra/Module/Basic.lean

tactic: rw [← one_add_one_eq_two, add_smul, one_smul]
state_before: α : Type ?u.15019
R : Type u_2
k : Type ?u.15025
S : Type ?u.15028
M : Type u_1
M₂ : Type ?u.15034
M₃ : Type ?u.15037
ι : Type ?u.15040
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
r s : R
x y : M
⊢ 2 • x = x + x
Theorem: List.orderedInsert_length
File: Mathlib/Data/List/Sort.lean

tactic: dsimp [orderedInsert]
state_before: α : Type uu
r : α → α → Prop
inst✝ : DecidableRel r
hd : α
tl : List α
a : α
⊢ length (orderedInsert r a (hd :: tl)) = length (hd :: tl) + 1

tactic: split_ifs <;> simp [orderedInsert_length tl]
state_before: α : Type uu
r : α → α → Prop
inst✝ : DecidableRel r
hd : α
tl : List α
a : α
⊢ length (if r a hd then a :: hd :: tl else hd :: orderedInsert r a tl) = Nat.succ (length tl) + 1
Theorem: Pell.xn_add
File: Mathlib/NumberTheory/PellMatiyasevic.lean

tactic: injection pellZd_add a1 m n with h _
state_before: a : ℕ
a1 : 1 < a
m n : ℕ
⊢ xn a1 (m + n) = xn a1 m * xn a1 n + Pell.d a1 * yn a1 m * yn a1 n

tactic: zify
state_before: a : ℕ
a1 : 1 < a
m n : ℕ
h : ↑(xn a1 (m + n)) = (pellZd a1 m).re * (pellZd a1 n).re + ↑(Pell.d a1) * (pellZd a1 m).im * (pellZd a1 n).im
im_eq✝ : ↑(yn a1 (m + n)) = (pellZd a1 m).re * (pellZd a1 n).im + (pellZd a1 m).im * (pellZd a1 n).re
⊢ xn a1 (m + n) = xn a1 m * xn a1 n + Pell.d a1 * yn a1 m * yn a1 n

tactic: rw [h]
state_before: a : ℕ
a1 : 1 < a
m n : ℕ
h : ↑(xn a1 (m + n)) = (pellZd a1 m).re * (pellZd a1 n).re + ↑(Pell.d a1) * (pellZd a1 m).im * (pellZd a1 n).im
im_eq✝ : ↑(yn a1 (m + n)) = (pellZd a1 m).re * (pellZd a1 n).im + (pellZd a1 m).im * (pellZd a1 n).re
⊢ ↑(xn a1 (m + n)) = ↑(xn a1 m) * ↑(xn a1 n) + ↑(Pell.d a1) * ↑(yn a1 m) * ↑(yn a1 n)

tactic: simp [pellZd]
state_before: a : ℕ
a1 : 1 < a
m n : ℕ
h : ↑(xn a1 (m + n)) = (pellZd a1 m).re * (pellZd a1 n).re + ↑(Pell.d a1) * (pellZd a1 m).im * (pellZd a1 n).im
im_eq✝ : ↑(yn a1 (m + n)) = (pellZd a1 m).re * (pellZd a1 n).im + (pellZd a1 m).im * (pellZd a1 n).re
⊢ (pellZd a1 m).re * (pellZd a1 n).re + ↑(Pell.d a1) * (pellZd a1 m).im * (pellZd a1 n).im =
    ↑(xn a1 m) * ↑(xn a1 n) + ↑(Pell.d a1) * ↑(yn a1 m) * ↑(yn a1 n)
Theorem: Complex.circleIntegral_eq_zero_of_differentiable_on_off_countable
File: Mathlib/Analysis/Complex/CauchyIntegral.lean

tactic: rcases h0.eq_or_lt with (rfl | h0)
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
R : ℝ
h0 : 0 ≤ R
f : ℂ → E
c : ℂ
s : Set ℂ
hs : Set.Countable s
hc : ContinuousOn f (closedBall c R)
hd : ∀ (z : ℂ), z ∈ ball c R \ s → DifferentiableAt ℂ f z
⊢ (∮ (z : ℂ) in C(c, R), f z) = 0

tactic: calc
  (∮ z in C(c, R), f z) = ∮ z in C(c, R), (z - c)⁻¹ • (z - c) • f z :=
    (circleIntegral.integral_sub_inv_smul_sub_smul _ _ _ _).symm
  _ = (2 * ↑π * I : ℂ) • (c - c) • f c :=
    (circleIntegral_sub_center_inv_smul_of_differentiable_on_off_countable h0 hs
      ((continuousOn_id.sub continuousOn_const).smul hc) fun z hz =>
      (differentiableAt_id.sub_const _).smul (hd z hz))
  _ = 0 := by rw [sub_self, zero_smul, smul_zero]
state_before: case inr
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
R : ℝ
h0✝ : 0 ≤ R
f : ℂ → E
c : ℂ
s : Set ℂ
hs : Set.Countable s
hc : ContinuousOn f (closedBall c R)
hd : ∀ (z : ℂ), z ∈ ball c R \ s → DifferentiableAt ℂ f z
h0 : 0 < R
⊢ (∮ (z : ℂ) in C(c, R), f z) = 0

tactic: apply circleIntegral.integral_radius_zero
state_before: case inl
E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
f : ℂ → E
c : ℂ
s : Set ℂ
hs : Set.Countable s
h0 : 0 ≤ 0
hc : ContinuousOn f (closedBall c 0)
hd : ∀ (z : ℂ), z ∈ ball c 0 \ s → DifferentiableAt ℂ f z
⊢ (∮ (z : ℂ) in C(c, 0), f z) = 0

tactic: rw [sub_self, zero_smul, smul_zero]
state_before: E : Type u
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
R : ℝ
h0✝ : 0 ≤ R
f : ℂ → E
c : ℂ
s : Set ℂ
hs : Set.Countable s
hc : ContinuousOn f (closedBall c R)
hd : ∀ (z : ℂ), z ∈ ball c R \ s → DifferentiableAt ℂ f z
h0 : 0 < R
⊢ (2 * ↑π * I) • (c - c) • f c = 0
Theorem: Finset.stronglyMeasurable_prod
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

tactic: simpa only [← Finset.prod_apply] using s.stronglyMeasurable_prod' hf
state_before: α : Type u_2
β : Type ?u.131099
γ : Type ?u.131102
ι✝ : Type ?u.131105
inst✝³ : Countable ι✝
f✝ g : α → β
M : Type u_3
inst✝² : CommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : ContinuousMul M
m : MeasurableSpace α
ι : Type u_1
f : ι → α → M
s : Finset ι
hf : ∀ (i : ι), i ∈ s → StronglyMeasurable (f i)
⊢ StronglyMeasurable fun a => ∏ i in s, f i a
Theorem: CategoryTheory.Adjunction.homEquiv_naturality_right
File: Mathlib/CategoryTheory/Adjunction/Basic.lean

tactic: rw [homEquiv_unit, G.map_comp, ← assoc, ← homEquiv_unit]
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
F : C ⥤ D
G : D ⥤ C
adj : F ⊣ G
X' X : C
Y Y' : D
f : F.obj X ⟶ Y
g : Y ⟶ Y'
⊢ ↑(homEquiv adj X Y') (f ≫ g) = ↑(homEquiv adj X Y) f ≫ G.map g
Theorem: MeasureTheory.L1.integrable_coeFn
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: rw [← memℒp_one_iff_integrable]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.1281080
δ : Type ?u.1281083
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : { x // x ∈ Lp β 1 }
⊢ Integrable ↑↑f

tactic: exact Lp.memℒp f
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.1281080
δ : Type ?u.1281083
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : { x // x ∈ Lp β 1 }
⊢ Memℒp (↑↑f) 1
Theorem: map_equiv_removeNone
File: Mathlib/GroupTheory/Perm/Option.lean

tactic: ext1 x
state_before: α : Type u_1
inst✝ : DecidableEq α
σ : Perm (Option α)
⊢ optionCongr (removeNone σ) = swap none (↑σ none) * σ

tactic: simpa using this
state_before: case H
α : Type u_1
inst✝ : DecidableEq α
σ : Perm (Option α)
x : Option α
this : Option.map (↑(removeNone σ)) x = ↑(swap none (↑σ none)) (↑σ x)
⊢ ↑(optionCongr (removeNone σ)) x = ↑(swap none (↑σ none) * σ) x

tactic: cases' x with x
state_before: α : Type u_1
inst✝ : DecidableEq α
σ : Perm (Option α)
x : Option α
⊢ Option.map (↑(removeNone σ)) x = ↑(swap none (↑σ none)) (↑σ x)

tactic: simp
state_before: case none
α : Type u_1
inst✝ : DecidableEq α
σ : Perm (Option α)
⊢ Option.map (↑(removeNone σ)) none = ↑(swap none (↑σ none)) (↑σ none)

tactic: cases h : σ (some _)
state_before: case some
α : Type u_1
inst✝ : DecidableEq α
σ : Perm (Option α)
x : α
⊢ Option.map (↑(removeNone σ)) (some x) = ↑(swap none (↑σ none)) (↑σ (some x))

tactic: simp [removeNone_none _ h]
state_before: case some.none
α : Type u_1
inst✝ : DecidableEq α
σ : Perm (Option α)
x : α
h : ↑σ (some x) = none
⊢ Option.map (↑(removeNone σ)) (some x) = ↑(swap none (↑σ none)) none

tactic: have hn : σ (some x) ≠ none := by simp [h]
state_before: case some.some
α : Type u_1
inst✝ : DecidableEq α
σ : Perm (Option α)
x val✝ : α
h : ↑σ (some x) = some val✝
⊢ Option.map (↑(removeNone σ)) (some x) = ↑(swap none (↑σ none)) (some val✝)

tactic: have hσn : σ (some x) ≠ σ none := σ.injective.ne (by simp)
state_before: case some.some
α : Type u_1
inst✝ : DecidableEq α
σ : Perm (Option α)
x val✝ : α
h : ↑σ (some x) = some val✝
hn : ↑σ (some x) ≠ none
⊢ Option.map (↑(removeNone σ)) (some x) = ↑(swap none (↑σ none)) (some val✝)

tactic: simp [removeNone_some _ ⟨_, h⟩, ← h, swap_apply_of_ne_of_ne hn hσn]
state_before: case some.some
α : Type u_1
inst✝ : DecidableEq α
σ : Perm (Option α)
x val✝ : α
h : ↑σ (some x) = some val✝
hn : ↑σ (some x) ≠ none
hσn : ↑σ (some x) ≠ ↑σ none
⊢ Option.map (↑(removeNone σ)) (some x) = ↑(swap none (↑σ none)) (some val✝)

tactic: simp [h]
state_before: α : Type u_1
inst✝ : DecidableEq α
σ : Perm (Option α)
x val✝ : α
h : ↑σ (some x) = some val✝
⊢ ↑σ (some x) ≠ none

tactic: simp
state_before: α : Type u_1
inst✝ : DecidableEq α
σ : Perm (Option α)
x val✝ : α
h : ↑σ (some x) = some val✝
hn : ↑σ (some x) ≠ none
⊢ some x ≠ none
Theorem: Submodule.range_fst
File: Mathlib/LinearAlgebra/Prod.lean

tactic: rw [range_eq_map, ← prod_top, prod_map_fst]
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
M₅ : Type ?u.320573
M₆ : Type ?u.320576
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : AddCommMonoid M₂
inst✝¹ : Module R M
inst✝ : Module R M₂
p : Submodule R M
q : Submodule R M₂
⊢ range (fst R M M₂) = ⊤
Theorem: Stream'.WSeq.dropn_nil
File: Mathlib/Data/Seq/WSeq.lean

tactic: induction n <;> simp [*, drop]
state_before: α : Type u
β : Type v
γ : Type w
n : ℕ
⊢ drop nil n = nil