tasksource/leandojo huggingface dataset:
Theorem: MeasureTheory.AEEqFun.coeFn_comp₂Measurable
File: Mathlib/MeasureTheory/Function/AEEqFun.lean

tactic: rw [comp₂Measurable_eq_mk]
state_before: α : Type u_4
β : Type u_2
γ : Type u_1
δ : Type u_3
inst✝¹⁵ : MeasurableSpace α
μ ν : Measure α
inst✝¹⁴ : TopologicalSpace β
inst✝¹³ : TopologicalSpace γ
inst✝¹² : TopologicalSpace δ
inst✝¹¹ : MeasurableSpace β
inst✝¹⁰ : PseudoMetrizableSpace β
inst✝⁹ : BorelSpace β
inst✝⁸ : SecondCountableTopology β
inst✝⁷ : MeasurableSpace γ
inst✝⁶ : PseudoMetrizableSpace γ
inst✝⁵ : BorelSpace γ
inst✝⁴ : SecondCountableTopology γ
inst✝³ : MeasurableSpace δ
inst✝² : PseudoMetrizableSpace δ
inst✝¹ : OpensMeasurableSpace δ
inst✝ : SecondCountableTopology δ
g : β → γ → δ
hg : Measurable (uncurry g)
f₁ : α →ₘ[μ] β
f₂ : α →ₘ[μ] γ
⊢ ↑(comp₂Measurable g hg f₁ f₂) =ᵐ[μ] fun a => g (↑f₁ a) (↑f₂ a)

tactic: apply coeFn_mk
state_before: α : Type u_4
β : Type u_2
γ : Type u_1
δ : Type u_3
inst✝¹⁵ : MeasurableSpace α
μ ν : Measure α
inst✝¹⁴ : TopologicalSpace β
inst✝¹³ : TopologicalSpace γ
inst✝¹² : TopologicalSpace δ
inst✝¹¹ : MeasurableSpace β
inst✝¹⁰ : PseudoMetrizableSpace β
inst✝⁹ : BorelSpace β
inst✝⁸ : SecondCountableTopology β
inst✝⁷ : MeasurableSpace γ
inst✝⁶ : PseudoMetrizableSpace γ
inst✝⁵ : BorelSpace γ
inst✝⁴ : SecondCountableTopology γ
inst✝³ : MeasurableSpace δ
inst✝² : PseudoMetrizableSpace δ
inst✝¹ : OpensMeasurableSpace δ
inst✝ : SecondCountableTopology δ
g : β → γ → δ
hg : Measurable (uncurry g)
f₁ : α →ₘ[μ] β
f₂ : α →ₘ[μ] γ
⊢ ↑(mk (fun a => g (↑f₁ a) (↑f₂ a)) (_ : AEStronglyMeasurable (uncurry g ∘ fun x => (↑f₁ x, ↑f₂ x)) μ)) =ᵐ[μ] fun a =>
    g (↑f₁ a) (↑f₂ a)
Theorem: Finset.sup'_biUnion
File: Mathlib/Data/Finset/Lattice.lean

tactic: simp [@forall_swap _ β]
state_before: F : Type ?u.252750
α : Type u_3
β : Type u_1
γ : Type u_2
ι : Type ?u.252762
κ : Type ?u.252765
inst✝¹ : SemilatticeSup α
s✝ : Finset β
H : Finset.Nonempty s✝
f : β → α
inst✝ : DecidableEq β
s : Finset γ
Hs : Finset.Nonempty s
t : γ → Finset β
Ht : ∀ (b : γ), Finset.Nonempty (t b)
c : α
⊢ sup' (Finset.biUnion s t) (_ : Finset.Nonempty (Finset.biUnion s t)) f ≤ c ↔
    (sup' s Hs fun b => sup' (t b) (_ : Finset.Nonempty (t b)) f) ≤ c
Theorem: ContDiff.contDiffBump
File: Mathlib/Analysis/Calculus/BumpFunctionInner.lean

tactic: rw [contDiff_iff_contDiffAt] at *
state_before: E : Type u_1
X : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : NormedAddCommGroup X
inst✝¹ : NormedSpace ℝ X
inst✝ : HasContDiffBump E
c✝ : E
f✝ : ContDiffBump c✝
x : E
n : ℕ∞
c g : X → E
f : (x : X) → ContDiffBump (c x)
hc : ContDiff ℝ n c
hr : ContDiff ℝ n fun x => (f x).rIn
hR : ContDiff ℝ n fun x => (f x).rOut
hg : ContDiff ℝ n g
⊢ ContDiff ℝ n fun x => ↑(f x) (g x)

tactic: exact fun x => (hc x).contDiffBump (hr x) (hR x) (hg x)
state_before: E : Type u_1
X : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : NormedAddCommGroup X
inst✝¹ : NormedSpace ℝ X
inst✝ : HasContDiffBump E
c✝ : E
f✝ : ContDiffBump c✝
x : E
n : ℕ∞
c g : X → E
f : (x : X) → ContDiffBump (c x)
hc : ∀ (x : X), ContDiffAt ℝ n c x
hr : ∀ (x : X), ContDiffAt ℝ n (fun x => (f x).rIn) x
hR : ∀ (x : X), ContDiffAt ℝ n (fun x => (f x).rOut) x
hg : ∀ (x : X), ContDiffAt ℝ n g x
⊢ ∀ (x : X), ContDiffAt ℝ n (fun x => ↑(f x) (g x)) x
Theorem: ENNReal.mul_div_mul_right
File: Mathlib/Data/Real/ENNReal.lean

tactic: rw [div_eq_mul_inv, div_eq_mul_inv, ENNReal.mul_inv (Or.inr hc') (Or.inr hc), mul_mul_mul_comm,
  ENNReal.mul_inv_cancel hc hc', mul_one]
state_before: α : Type ?u.261241
β : Type ?u.261244
a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
a b : ℝ≥0∞
hc : c ≠ 0
hc' : c ≠ ⊤
⊢ a * c / (b * c) = a / b
Theorem: Set.inter_singleton_nonempty
File: Mathlib/Data/Set/Basic.lean

tactic: rw [inter_comm, singleton_inter_nonempty]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s s₁ s₂ t t₁ t₂ u : Set α
⊢ Set.Nonempty (s ∩ {a}) ↔ a ∈ s
Theorem: intervalIntegral.integral_const_of_cdf
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: simp only [sub_smul, ← set_integral_const]
state_before: ι : Type ?u.16319140
𝕜 : Type ?u.16319143
E : Type u_1
F : Type ?u.16319149
A : Type ?u.16319152
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b c✝ d : ℝ
f g : ℝ → E
μ : MeasureTheory.Measure ℝ
inst✝ : IsFiniteMeasure μ
c : E
⊢ (∫ (x : ℝ) in a..b, c ∂μ) = (ENNReal.toReal (↑↑μ (Iic b)) - ENNReal.toReal (↑↑μ (Iic a))) • c

tactic: refine' (integral_Iic_sub_Iic _ _).symm <;>
  simp only [integrableOn_const, measure_lt_top, or_true_iff]
state_before: ι : Type ?u.16319140
𝕜 : Type ?u.16319143
E : Type u_1
F : Type ?u.16319149
A : Type ?u.16319152
inst✝³ : NormedAddCommGroup E
inst✝² : CompleteSpace E
inst✝¹ : NormedSpace ℝ E
a b c✝ d : ℝ
f g : ℝ → E
μ : MeasureTheory.Measure ℝ
inst✝ : IsFiniteMeasure μ
c : E
⊢ (∫ (x : ℝ) in a..b, c ∂μ) = (∫ (x : ℝ) in Iic b, c ∂μ) - ∫ (x : ℝ) in Iic a, c ∂μ
Theorem: Mathlib.Meta.NormNum.isNat_minFac_2
File: Mathlib/Tactic/NormNum/Prime.lean

tactic: rw [cast_ofNat, minFac_eq_two_iff, Nat.dvd_iff_mod_eq_zero, h]
state_before: a : ℕ
h : a % 2 = 0
⊢ minFac a = ↑2
Theorem: Stream'.WSeq.liftRel_destruct
File: Mathlib/Data/Seq/WSeq.lean

tactic: refine' Computation.LiftRel.imp _ _ _ (h2 h1)
state_before: α : Type u
β : Type v
γ : Type w
R✝ : α → β → Prop
s : WSeq α
t : WSeq β
R : WSeq α → WSeq β → Prop
h1 : R s t
h2 : ∀ {s : WSeq α} {t : WSeq β}, R s t → Computation.LiftRel (LiftRelO R✝ R) (destruct s) (destruct t)
⊢ Computation.LiftRel (LiftRelO R✝ (LiftRel R✝)) (destruct s) (destruct t)

tactic: apply LiftRelO.imp_right
state_before: α : Type u
β : Type v
γ : Type w
R✝ : α → β → Prop
s : WSeq α
t : WSeq β
R : WSeq α → WSeq β → Prop
h1 : R s t
h2 : ∀ {s : WSeq α} {t : WSeq β}, R s t → Computation.LiftRel (LiftRelO R✝ R) (destruct s) (destruct t)
⊢ ∀ {a : Option (α × WSeq α)} {b : Option (β × WSeq β)}, LiftRelO R✝ R a b → LiftRelO R✝ (LiftRel R✝) a b

tactic: exact fun s' t' h' => ⟨R, h', @h2⟩
state_before: case H
α : Type u
β : Type v
γ : Type w
R✝ : α → β → Prop
s : WSeq α
t : WSeq β
R : WSeq α → WSeq β → Prop
h1 : R s t
h2 : ∀ {s : WSeq α} {t : WSeq β}, R s t → Computation.LiftRel (LiftRelO R✝ R) (destruct s) (destruct t)
⊢ ∀ (s : WSeq α) (t : WSeq β), R s t → LiftRel R✝ s t
Theorem: PowerSeries.exp_pow_eq_rescale_exp
File: Mathlib/RingTheory/PowerSeries/WellKnown.lean

tactic: induction' k with k h
state_before: A : Type u_1
inst✝¹ : CommRing A
inst✝ : Algebra ℚ A
k : ℕ
⊢ exp A ^ k = ↑(rescale ↑k) (exp A)

tactic: simp only [rescale_zero, constantCoeff_exp, Function.comp_apply, map_one, cast_zero, zero_eq,
  pow_zero (exp A), coe_comp]
state_before: case zero
A : Type u_1
inst✝¹ : CommRing A
inst✝ : Algebra ℚ A
⊢ exp A ^ zero = ↑(rescale ↑zero) (exp A)

tactic: simpa only [succ_eq_add_one, cast_add, ← exp_mul_exp_eq_exp_add (k : A), ← h, cast_one,
id_apply, rescale_one] using pow_succ' (exp A) k
state_before: case succ
A : Type u_1
inst✝¹ : CommRing A
inst✝ : Algebra ℚ A
k : ℕ
h : exp A ^ k = ↑(rescale ↑k) (exp A)
⊢ exp A ^ succ k = ↑(rescale ↑(succ k)) (exp A)
Theorem: locallyConvexSpace_inf
File: Mathlib/Topology/Algebra/Module/LocallyConvex.lean

tactic: rw [inf_eq_iInf]
state_before: ι : Sort ?u.45006
𝕜 : Type u_2
E : Type u_1
F : Type ?u.45015
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : Module 𝕜 E
inst✝¹ : AddCommMonoid F
inst✝ : Module 𝕜 F
t₁ t₂ : TopologicalSpace E
h₁ : LocallyConvexSpace 𝕜 E
h₂ : LocallyConvexSpace 𝕜 E
⊢ LocallyConvexSpace 𝕜 E

tactic: refine' locallyConvexSpace_iInf fun b => _
state_before: ι : Sort ?u.45006
𝕜 : Type u_2
E : Type u_1
F : Type ?u.45015
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : Module 𝕜 E
inst✝¹ : AddCommMonoid F
inst✝ : Module 𝕜 F
t₁ t₂ : TopologicalSpace E
h₁ : LocallyConvexSpace 𝕜 E
h₂ : LocallyConvexSpace 𝕜 E
⊢ LocallyConvexSpace 𝕜 E

tactic: cases b <;> assumption
state_before: ι : Sort ?u.45006
𝕜 : Type u_2
E : Type u_1
F : Type ?u.45015
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : Module 𝕜 E
inst✝¹ : AddCommMonoid F
inst✝ : Module 𝕜 F
t₁ t₂ : TopologicalSpace E
h₁ : LocallyConvexSpace 𝕜 E
h₂ : LocallyConvexSpace 𝕜 E
b : Bool
⊢ LocallyConvexSpace 𝕜 E
Theorem: Nat.lxor'_eq_zero
File: Mathlib/Data/Nat/Bitwise.lean

tactic: rw [← lxor'_self n, lxor'_right_inj, eq_comm]
state_before: n m : ℕ
⊢ lxor' n m = 0 ↔ n = m
Theorem: Ideal.eq_top_of_norm_lt_one
File: Mathlib/Analysis/NormedSpace/Units.lean

tactic: simpa only [show u.inv * x = 1 by simp] using I.mul_mem_left u.inv hxI
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
I : Ideal R
x : R
hxI : x ∈ I
hx : ‖1 - x‖ < 1
u : Rˣ := Units.oneSub (1 - x) hx
⊢ 1 ∈ I

tactic: simp
state_before: R : Type u_1
inst✝¹ : NormedRing R
inst✝ : CompleteSpace R
I : Ideal R
x : R
hxI : x ∈ I
hx : ‖1 - x‖ < 1
u : Rˣ := Units.oneSub (1 - x) hx
⊢ u.inv * x = 1
Theorem: CategoryTheory.IsPushout.of_hasBinaryCoproduct
File: Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean

tactic: convert @of_is_coproduct _ _ 0 X Y _ (colimit.isColimit _) HasZeroObject.zeroIsInitial
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✝² : HasBinaryCoproduct X Y
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
⊢ IsPushout 0 0 coprod.inl coprod.inr
Theorem: convexHull_toCone_isLeast
File: Mathlib/Analysis/Convex/Cone/Basic.lean

tactic: convert (convex_convexHull 𝕜 s).toCone_isLeast using 1
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.183431
G : Type ?u.183434
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s : Set E
⊢ IsLeast {t | s ⊆ ↑t} (Convex.toCone (↑(convexHull 𝕜).toOrderHom s) (_ : Convex 𝕜 (↑(convexHull 𝕜).toOrderHom s)))

tactic: ext t
state_before: case h.e'_3
𝕜 : Type u_2
E : Type u_1
F : Type ?u.183431
G : Type ?u.183434
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s : Set E
⊢ {t | s ⊆ ↑t} = {t | ↑(convexHull 𝕜).toOrderHom s ⊆ ↑t}

tactic: exact ⟨fun h => convexHull_min h t.convex, (subset_convexHull 𝕜 s).trans⟩
state_before: case h.e'_3.h
𝕜 : Type u_2
E : Type u_1
F : Type ?u.183431
G : Type ?u.183434
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s : Set E
t : ConvexCone 𝕜 E
⊢ t ∈ {t | s ⊆ ↑t} ↔ t ∈ {t | ↑(convexHull 𝕜).toOrderHom s ⊆ ↑t}
Theorem: List.Lex.ne_iff
File: Mathlib/Data/List/Lex.lean

tactic: classical
exact Decidable.List.Lex.ne_iff H
state_before: α : Type u
l₁ l₂ : List α
H : length l₁ ≤ length l₂
⊢ Lex (fun x x_1 => x ≠ x_1) l₁ l₂ ↔ l₁ ≠ l₂

tactic: exact Decidable.List.Lex.ne_iff H
state_before: α : Type u
l₁ l₂ : List α
H : length l₁ ≤ length l₂
⊢ Lex (fun x x_1 => x ≠ x_1) l₁ l₂ ↔ l₁ ≠ l₂
Theorem: gauge_neg_set_eq_gauge_neg
File: Mathlib/Analysis/Convex/Gauge.lean

tactic: rw [← gauge_neg_set_neg, neg_neg]
state_before: 𝕜 : Type ?u.44037
E : Type u_1
F : Type ?u.44043
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
x : E
⊢ gauge (-s) x = gauge s (-x)
Theorem: Associated.prime
File: Mathlib/Algebra/Associated.lean

tactic: simp [hv, hu.symm]
state_before: α : Type u_1
β : Type ?u.209427
γ : Type ?u.209430
δ : Type ?u.209433
inst✝ : CommMonoidWithZero α
p q : α
h : p ~ᵤ q
hp : Prime p
u : αˣ
hu : p * ↑u = q
x✝ : IsUnit q
v : αˣ
hv : ↑v = q
⊢ ↑(v * u⁻¹) = p

tactic: simp [Units.mul_right_dvd]
state_before: α : Type u_1
β : Type ?u.209427
γ : Type ?u.209430
δ : Type ?u.209433
inst✝ : CommMonoidWithZero α
p q : α
h : p ~ᵤ q
hp : Prime p
u : αˣ
hu : p * ↑u = q
⊢ ∀ (a b : α), p * ↑u ∣ a * b → p * ↑u ∣ a ∨ p * ↑u ∣ b

tactic: intro a b
state_before: α : Type u_1
β : Type ?u.209427
γ : Type ?u.209430
δ : Type ?u.209433
inst✝ : CommMonoidWithZero α
p q : α
h : p ~ᵤ q
hp : Prime p
u : αˣ
hu : p * ↑u = q
⊢ ∀ (a b : α), p ∣ a * b → p ∣ a ∨ p ∣ b

tactic: exact hp.dvd_or_dvd
state_before: α : Type u_1
β : Type ?u.209427
γ : Type ?u.209430
δ : Type ?u.209433
inst✝ : CommMonoidWithZero α
p q : α
h : p ~ᵤ q
hp : Prime p
u : αˣ
hu : p * ↑u = q
a b : α
⊢ p ∣ a * b → p ∣ a ∨ p ∣ b
Theorem: Fin.predAbove_below
File: Mathlib/Data/Fin/Basic.lean

tactic: have : i ≤ castSucc (last n) := h.trans p.le_last
state_before: n m : ℕ
p : Fin (n + 1)
i : Fin (n + 2)
h : i ≤ ↑castSucc p
⊢ predAbove p i = castPred i

tactic: simp [predAbove, castPred, h.not_lt, this.not_lt]
state_before: n m : ℕ
p : Fin (n + 1)
i : Fin (n + 2)
h : i ≤ ↑castSucc p
this : i ≤ ↑castSucc (last n)
⊢ predAbove p i = castPred i
Theorem: Nat.ModEq.of_div
File: Mathlib/Data/Nat/ModEq.lean

tactic: convert h.mul_left' c <;> rwa [Nat.mul_div_cancel']
state_before: m n a b c d : ℕ
h : a / c ≡ b / c [MOD m / c]
ha✝¹ : c ∣ a
ha✝ : c ∣ b
ha : c ∣ m
⊢ a ≡ b [MOD m]
Theorem: PartENat.add_top
File: Mathlib/Data/Nat/PartENat.lean

tactic: rw [add_comm, top_add]
state_before: x : PartENat
⊢ x + ⊤ = ⊤
Theorem: ENNReal.toReal_lt_toReal
File: Mathlib/Data/Real/ENNReal.lean

tactic: lift a to ℝ≥0 using ha
state_before: α : Type ?u.796547
β : Type ?u.796550
a b c d : ℝ≥0∞
r p q : ℝ≥0
ha : a ≠ ⊤
hb : b ≠ ⊤
⊢ ENNReal.toReal a < ENNReal.toReal b ↔ a < b

tactic: lift b to ℝ≥0 using hb
state_before: case intro
α : Type ?u.796547
β : Type ?u.796550
b c d : ℝ≥0∞
r p q : ℝ≥0
hb : b ≠ ⊤
a : ℝ≥0
⊢ ENNReal.toReal ↑a < ENNReal.toReal b ↔ ↑a < b

tactic: norm_cast
state_before: case intro.intro
α : Type ?u.796547
β : Type ?u.796550
c d : ℝ≥0∞
r p q a b : ℝ≥0
⊢ ENNReal.toReal ↑a < ENNReal.toReal ↑b ↔ ↑a < ↑b
Theorem: MvPolynomial.degrees_zero
File: Mathlib/Data/MvPolynomial/Variables.lean

tactic: rw [← C_0]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.30093
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
⊢ degrees 0 = 0

tactic: exact degrees_C 0
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.30093
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
⊢ degrees (↑C 0) = 0
Theorem: Finsupp.prod_ite_eq'
File: Mathlib/Algebra/BigOperators/Finsupp.lean

tactic: dsimp [Finsupp.prod]
state_before: α : Type u_1
ι : Type ?u.70555
γ : Type ?u.70558
A : Type ?u.70561
B : Type ?u.70564
C : Type ?u.70567
inst✝⁶ : AddCommMonoid A
inst✝⁵ : AddCommMonoid B
inst✝⁴ : AddCommMonoid C
t : ι → A → C
h0 : ∀ (i : ι), t i 0 = 0
h1 : ∀ (i : ι) (x y : A), t i (x + y) = t i x + t i y
s : Finset α
f✝ : α → ι →₀ A
i : ι
g : ι →₀ A
k : ι → A → γ → B
x : γ
β : Type ?u.73697
M : Type u_2
M' : Type ?u.73703
N : Type u_3
P : Type ?u.73709
G : Type ?u.73712
H : Type ?u.73715
R : Type ?u.73718
S : Type ?u.73721
inst✝³ : Zero M
inst✝² : Zero M'
inst✝¹ : CommMonoid N
inst✝ : DecidableEq α
f : α →₀ M
a : α
b : α → M → N
⊢ (prod f fun x v => if x = a then b x v else 1) = if a ∈ f.support then b a (↑f a) else 1

tactic: rw [f.support.prod_ite_eq']
state_before: α : Type u_1
ι : Type ?u.70555
γ : Type ?u.70558
A : Type ?u.70561
B : Type ?u.70564
C : Type ?u.70567
inst✝⁶ : AddCommMonoid A
inst✝⁵ : AddCommMonoid B
inst✝⁴ : AddCommMonoid C
t : ι → A → C
h0 : ∀ (i : ι), t i 0 = 0
h1 : ∀ (i : ι) (x y : A), t i (x + y) = t i x + t i y
s : Finset α
f✝ : α → ι →₀ A
i : ι
g : ι →₀ A
k : ι → A → γ → B
x : γ
β : Type ?u.73697
M : Type u_2
M' : Type ?u.73703
N : Type u_3
P : Type ?u.73709
G : Type ?u.73712
H : Type ?u.73715
R : Type ?u.73718
S : Type ?u.73721
inst✝³ : Zero M
inst✝² : Zero M'
inst✝¹ : CommMonoid N
inst✝ : DecidableEq α
f : α →₀ M
a : α
b : α → M → N
⊢ (∏ a_1 in f.support, if a_1 = a then b a_1 (↑f a_1) else 1) = if a ∈ f.support then b a (↑f a) else 1
Theorem: WfDvdMonoid.of_wellFounded_associates
File: Mathlib/RingTheory/UniqueFactorizationDomain.lean

tactic: convert h
state_before: α : Type u_1
inst✝ : CancelCommMonoidWithZero α
h : WellFounded fun x x_1 => x < x_1
⊢ WellFounded DvdNotUnit

tactic: ext
state_before: case h.e'_2.h.h.h.e
α : Type u_1
inst✝ : CancelCommMonoidWithZero α
h : WellFounded fun x x_1 => x < x_1
x✝¹ x✝ : Associates α
⊢ DvdNotUnit = LT.lt

tactic: exact Associates.dvdNotUnit_iff_lt
state_before: case h.e'_2.h.h.h.e.h.h.a
α : Type u_1
inst✝ : CancelCommMonoidWithZero α
h : WellFounded fun x x_1 => x < x_1
x✝³ x✝² x✝¹ x✝ : Associates α
⊢ DvdNotUnit x✝¹ x✝ ↔ x✝¹ < x✝
Theorem: Ordinal.principal_mul_of_le_two
File: Mathlib/SetTheory/Ordinal/Principal.lean

tactic: rcases lt_or_eq_of_le ho with (ho | rfl)
state_before: o : Ordinal
ho : o ≤ 2
⊢ Principal (fun x x_1 => x * x_1) o

tactic: have h₂ : succ (1 : Ordinal) = 2 := by simp
state_before: case inl
o : Ordinal
ho✝ : o ≤ 2
ho : o < 2
⊢ Principal (fun x x_1 => x * x_1) o

tactic: rw [← h₂, lt_succ_iff] at ho
state_before: case inl
o : Ordinal
ho✝ : o ≤ 2
ho : o < 2
h₂ : succ 1 = 2
⊢ Principal (fun x x_1 => x * x_1) o

tactic: rcases lt_or_eq_of_le ho with (ho | rfl)
state_before: case inl
o : Ordinal
ho✝ : o ≤ 2
ho : o ≤ 1
h₂ : succ 1 = 2
⊢ Principal (fun x x_1 => x * x_1) o

tactic: simp
state_before: o : Ordinal
ho✝ : o ≤ 2
ho : o < 2
⊢ succ 1 = 2

tactic: rw [lt_one_iff_zero.1 ho]
state_before: case inl.inl
o : Ordinal
ho✝¹ : o ≤ 2
ho✝ : o ≤ 1
h₂ : succ 1 = 2
ho : o < 1
⊢ Principal (fun x x_1 => x * x_1) o

tactic: exact principal_zero
state_before: case inl.inl
o : Ordinal
ho✝¹ : o ≤ 2
ho✝ : o ≤ 1
h₂ : succ 1 = 2
ho : o < 1
⊢ Principal (fun x x_1 => x * x_1) 0

tactic: exact principal_mul_one
state_before: case inl.inr
h₂ : succ 1 = 2
ho✝ : 1 ≤ 2
ho : 1 ≤ 1
⊢ Principal (fun x x_1 => x * x_1) 1

tactic: exact principal_mul_two
state_before: case inr
ho : 2 ≤ 2
⊢ Principal (fun x x_1 => x * x_1) 2
Theorem: ContinuousLinearMap.op_norm_comp_le
File: Mathlib/Analysis/NormedSpace/OperatorNorm.lean

tactic: rw [mul_assoc]
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type u_6
E : Type u_3
Eₗ : Type ?u.662276
F : Type u_4
Fₗ : Type ?u.662282
G : Type u_5
Gₗ : Type ?u.662288
𝓕 : Type ?u.662291
inst✝¹⁷ : SeminormedAddCommGroup E
inst✝¹⁶ : SeminormedAddCommGroup Eₗ
inst✝¹⁵ : SeminormedAddCommGroup F
inst✝¹⁴ : SeminormedAddCommGroup Fₗ
inst✝¹³ : SeminormedAddCommGroup G
inst✝¹² : SeminormedAddCommGroup Gₗ
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NontriviallyNormedField 𝕜₂
inst✝⁹ : NontriviallyNormedField 𝕜₃
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 Eₗ
inst✝⁶ : NormedSpace 𝕜₂ F
inst✝⁵ : NormedSpace 𝕜 Fₗ
inst✝⁴ : NormedSpace 𝕜₃ G
inst✝³ : NormedSpace 𝕜 Gₗ
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : RingHomIsometric σ₁₂
inst✝ : RingHomIsometric σ₂₃
f✝ g : E →SL[σ₁₂] F
h : F →SL[σ₂₃] G
x✝ : E
f : E →SL[σ₁₂] F
x : E
⊢ ‖↑(comp h f) x‖ ≤ ‖h‖ * ‖f‖ * ‖x‖

tactic: exact h.le_op_norm_of_le (f.le_op_norm x)
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕜₃ : Type u_6
E : Type u_3
Eₗ : Type ?u.662276
F : Type u_4
Fₗ : Type ?u.662282
G : Type u_5
Gₗ : Type ?u.662288
𝓕 : Type ?u.662291
inst✝¹⁷ : SeminormedAddCommGroup E
inst✝¹⁶ : SeminormedAddCommGroup Eₗ
inst✝¹⁵ : SeminormedAddCommGroup F
inst✝¹⁴ : SeminormedAddCommGroup Fₗ
inst✝¹³ : SeminormedAddCommGroup G
inst✝¹² : SeminormedAddCommGroup Gₗ
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NontriviallyNormedField 𝕜₂
inst✝⁹ : NontriviallyNormedField 𝕜₃
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 Eₗ
inst✝⁶ : NormedSpace 𝕜₂ F
inst✝⁵ : NormedSpace 𝕜 Fₗ
inst✝⁴ : NormedSpace 𝕜₃ G
inst✝³ : NormedSpace 𝕜 Gₗ
σ₁₂ : 𝕜 →+* 𝕜₂
σ₂₃ : 𝕜₂ →+* 𝕜₃
σ₁₃ : 𝕜 →+* 𝕜₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : RingHomIsometric σ₁₂
inst✝ : RingHomIsometric σ₂₃
f✝ g : E →SL[σ₁₂] F
h : F →SL[σ₂₃] G
x✝ : E
f : E →SL[σ₁₂] F
x : E
⊢ ‖↑(comp h f) x‖ ≤ ‖h‖ * (‖f‖ * ‖x‖)
Theorem: MeasureTheory.set_integral_eq_integral_of_ae_compl_eq_zero
File: Mathlib/MeasureTheory/Integral/SetIntegral.lean

tactic: symm
state_before: α : Type u_1
β : Type ?u.99624
E : Type u_2
F : Type ?u.99630
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
l l' : Filter α
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
h : ∀ᵐ (x : α) ∂μ, ¬x ∈ s → f x = 0
⊢ (∫ (x : α) in s, f x ∂μ) = ∫ (x : α), f x ∂μ

tactic: nth_rw 1 [← integral_univ]
state_before: α : Type u_1
β : Type ?u.99624
E : Type u_2
F : Type ?u.99630
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
l l' : Filter α
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
h : ∀ᵐ (x : α) ∂μ, ¬x ∈ s → f x = 0
⊢ (∫ (x : α), f x ∂μ) = ∫ (x : α) in s, f x ∂μ

tactic: apply set_integral_eq_of_subset_of_ae_diff_eq_zero nullMeasurableSet_univ (subset_univ _)
state_before: α : Type u_1
β : Type ?u.99624
E : Type u_2
F : Type ?u.99630
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
l l' : Filter α
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
h : ∀ᵐ (x : α) ∂μ, ¬x ∈ s → f x = 0
⊢ (∫ (x : α) in univ, f x ∂μ) = ∫ (x : α) in s, f x ∂μ

tactic: filter_upwards [h] with x hx h'x using hx h'x.2
state_before: α : Type u_1
β : Type ?u.99624
E : Type u_2
F : Type ?u.99630
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
l l' : Filter α
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
h : ∀ᵐ (x : α) ∂μ, ¬x ∈ s → f x = 0
⊢ ∀ᵐ (x : α) ∂μ, x ∈ univ \ s → f x = 0
Theorem: List.drop_take_succ_eq_cons_get
File: Mathlib/Data/List/Join.lean

tactic: induction' L with head tail ih
state_before: α : Type u_1
β : Type ?u.7170
L : List α
i : Fin (length L)
⊢ drop (↑i) (take (↑i + 1) L) = [get L i]

tactic: rcases i with ⟨_ | i, hi⟩
state_before: case cons
α : Type u_1
β : Type ?u.7170
L : List α
i✝ : Fin (length L)
head : α
tail : List α
ih : ∀ (i : Fin (length tail)), drop (↑i) (take (↑i + 1) tail) = [get tail i]
i : Fin (length (head :: tail))
⊢ drop (↑i) (take (↑i + 1) (head :: tail)) = [get (head :: tail) i]

tactic: exact (Nat.not_succ_le_zero i i.isLt).elim
state_before: case nil
α : Type u_1
β : Type ?u.7170
L : List α
i✝ : Fin (length L)
i : Fin (length [])
⊢ drop (↑i) (take (↑i + 1) []) = [get [] i]

tactic: simp
state_before: case cons.mk.zero
α : Type u_1
β : Type ?u.7170
L : List α
i : Fin (length L)
head : α
tail : List α
ih : ∀ (i : Fin (length tail)), drop (↑i) (take (↑i + 1) tail) = [get tail i]
hi : Nat.zero < length (head :: tail)
⊢ drop (↑{ val := Nat.zero, isLt := hi }) (take (↑{ val := Nat.zero, isLt := hi } + 1) (head :: tail)) =
    [get (head :: tail) { val := Nat.zero, isLt := hi }]

tactic: simpa using ih ⟨i, Nat.lt_of_succ_lt_succ hi⟩
state_before: case cons.mk.succ
α : Type u_1
β : Type ?u.7170
L : List α
i✝ : Fin (length L)
head : α
tail : List α
ih : ∀ (i : Fin (length tail)), drop (↑i) (take (↑i + 1) tail) = [get tail i]
i : ℕ
hi : Nat.succ i < length (head :: tail)
⊢ drop (↑{ val := Nat.succ i, isLt := hi }) (take (↑{ val := Nat.succ i, isLt := hi } + 1) (head :: tail)) =
    [get (head :: tail) { val := Nat.succ i, isLt := hi }]
Theorem: LatticeOrderedCommGroup.mabs_mul_le
File: Mathlib/Algebra/Order/LatticeGroup.lean

tactic: apply sup_le
state_before: α : Type u
inst✝² : Lattice α
inst✝¹ : CommGroup α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
⊢ abs (a * b) ≤ abs a * abs b

tactic: exact mul_le_mul' (le_mabs a) (le_mabs b)
state_before: case a
α : Type u
inst✝² : Lattice α
inst✝¹ : CommGroup α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
⊢ a * b ≤ abs a * abs b

tactic: rw [mul_inv]
state_before: case a
α : Type u
inst✝² : Lattice α
inst✝¹ : CommGroup α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
⊢ (a * b)⁻¹ ≤ abs a * abs b

tactic: exact mul_le_mul' (inv_le_abs _) (inv_le_abs _)
state_before: case a
α : Type u
inst✝² : Lattice α
inst✝¹ : CommGroup α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
⊢ a⁻¹ * b⁻¹ ≤ abs a * abs b