tasksource/leandojo huggingface dataset:
Theorem: MeasureTheory.Measure.finite_const_le_meas_of_disjoint_iUnion
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: by_contra con
state_before: α : Type u_2
β : Type ?u.734278
γ : Type ?u.734281
δ : Type ?u.734284
ι✝ : Type ?u.734287
R : Type ?u.734290
R' : Type ?u.734293
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
ε : ℝ≥0∞
ε_pos : 0 < ε
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
Union_As_finite : ↑↑μ (⋃ (i : ι), As i) ≠ ⊤
⊢ Set.Finite {i | ε ≤ ↑↑μ (As i)}

tactic: have aux :=
  lt_of_le_of_lt (tsum_meas_le_meas_iUnion_of_disjoint μ As_mble As_disj)
    (lt_top_iff_ne_top.mpr Union_As_finite)
state_before: α : Type u_2
β : Type ?u.734278
γ : Type ?u.734281
δ : Type ?u.734284
ι✝ : Type ?u.734287
R : Type ?u.734290
R' : Type ?u.734293
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
ε : ℝ≥0∞
ε_pos : 0 < ε
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
Union_As_finite : ↑↑μ (⋃ (i : ι), As i) ≠ ⊤
con : ¬Set.Finite {i | ε ≤ ↑↑μ (As i)}
⊢ False

tactic: exact con (ENNReal.finite_const_le_of_tsum_ne_top aux.ne ε_pos.ne.symm)
state_before: α : Type u_2
β : Type ?u.734278
γ : Type ?u.734281
δ : Type ?u.734284
ι✝ : Type ?u.734287
R : Type ?u.734290
R' : Type ?u.734293
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
ι : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
ε : ℝ≥0∞
ε_pos : 0 < ε
As : ι → Set α
As_mble : ∀ (i : ι), MeasurableSet (As i)
As_disj : Pairwise (Disjoint on As)
Union_As_finite : ↑↑μ (⋃ (i : ι), As i) ≠ ⊤
con : ¬Set.Finite {i | ε ≤ ↑↑μ (As i)}
aux : (∑' (i : ι), ↑↑μ (As i)) < ⊤
⊢ False
Theorem: Fin.prod_univ_add
File: Mathlib/Algebra/BigOperators/Fin.lean

tactic: rw [Fintype.prod_equiv finSumFinEquiv.symm f fun i => f (finSumFinEquiv.toFun i)]
state_before: α : Type ?u.65773
β : Type ?u.65776
M : Type u_1
inst✝ : CommMonoid M
a b : ℕ
f : Fin (a + b) → M
⊢ ∏ i : Fin (a + b), f i = (∏ i : Fin a, f (↑(castAdd b) i)) * ∏ i : Fin b, f (↑(natAdd a) i)

tactic: apply Fintype.prod_sum_type
state_before: α : Type ?u.65773
β : Type ?u.65776
M : Type u_1
inst✝ : CommMonoid M
a b : ℕ
f : Fin (a + b) → M
⊢ ∏ x : Fin a ⊕ Fin b, f (Equiv.toFun finSumFinEquiv x) =
    (∏ i : Fin a, f (↑(castAdd b) i)) * ∏ i : Fin b, f (↑(natAdd a) i)

tactic: intro x
state_before: α : Type ?u.65773
β : Type ?u.65776
M : Type u_1
inst✝ : CommMonoid M
a b : ℕ
f : Fin (a + b) → M
⊢ ∀ (x : Fin (a + b)), f x = f (Equiv.toFun finSumFinEquiv (↑finSumFinEquiv.symm x))

tactic: simp only [Equiv.toFun_as_coe, Equiv.apply_symm_apply]
state_before: α : Type ?u.65773
β : Type ?u.65776
M : Type u_1
inst✝ : CommMonoid M
a b : ℕ
f : Fin (a + b) → M
x : Fin (a + b)
⊢ f x = f (Equiv.toFun finSumFinEquiv (↑finSumFinEquiv.symm x))
Theorem: MeasureTheory.AECover.biInter_Ici_aecover
File: Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean

tactic: simpa only [mem_iInter, mem_Ici, eventually_forall_ge_atTop]
state_before: α : Type u_2
ι : Type u_1
inst✝² : Countable ι
inst✝¹ : MeasurableSpace α
μ : Measure α
inst✝ : Preorder ι
φ : ι → Set α
hφ : AECover μ atTop φ
x : α
h : ∀ᶠ (i : ι) in atTop, x ∈ φ i
⊢ ∀ᶠ (i : ι) in atTop, x ∈ ⋂ (k : ι) (_ : k ∈ Ici i), φ k
Theorem: CancelDenoms.mul_subst
File: Mathlib/Tactic/CancelDenoms.lean

tactic: rw [← h3, mul_comm n1, mul_assoc n2, ← mul_assoc n1, h1,
    ← mul_assoc n2, mul_comm n2, mul_assoc, h2]
state_before: α : Type u_1
inst✝ : CommRing α
n1 n2 k e1 e2 t1 t2 : α
h1 : n1 * e1 = t1
h2 : n2 * e2 = t2
h3 : n1 * n2 = k
⊢ k * (e1 * e2) = t1 * t2
Theorem: GeneralizedContinuedFraction.convergents'_stable_of_terminated
File: Mathlib/Algebra/ContinuedFractions/TerminatedStable.lean

tactic: simp only [convergents', convergents'Aux_stable_of_terminated n_le_m terminated_at_n]
state_before: K : Type u_1
g : GeneralizedContinuedFraction K
n m : ℕ
inst✝ : DivisionRing K
n_le_m : n ≤ m
terminated_at_n : TerminatedAt g n
⊢ convergents' g m = convergents' g n
Theorem: CategoryTheory.BicartesianSq.of_has_biproduct₁
File: Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean

tactic: convert of_is_biproduct₁ (BinaryBiproduct.isBilimit X Y)
state_before: C : Type u₁
inst✝³ : Category C
W X Y Z : C
f : W ⟶ X
g : W ⟶ Y
h : X ⟶ Z
i : Y ⟶ Z
inst✝² : HasZeroObject C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasBinaryBiproduct X Y
⊢ BicartesianSq biprod.fst biprod.snd 0 0
Theorem: List.mem_argmax_iff
File: Mathlib/Data/List/MinMax.lean

tactic: rintro ⟨hml, ham, hma⟩
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder β
f : α → β
l : List α
o : Option α
a m : α
inst✝ : DecidableEq α
⊢ (m ∈ l ∧ (∀ (a : α), a ∈ l → f a ≤ f m) ∧ ∀ (a : α), a ∈ l → f m ≤ f a → indexOf m l ≤ indexOf a l) → m ∈ argmax f l

tactic: cases' harg : argmax f l with n
state_before: case intro.intro
α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder β
f : α → β
l : List α
o : Option α
a m : α
inst✝ : DecidableEq α
hml : m ∈ l
ham : ∀ (a : α), a ∈ l → f a ≤ f m
hma : ∀ (a : α), a ∈ l → f m ≤ f a → indexOf m l ≤ indexOf a l
⊢ m ∈ argmax f l

tactic: simp_all
state_before: case intro.intro.none
α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder β
f : α → β
l : List α
o : Option α
a m : α
inst✝ : DecidableEq α
hml : m ∈ l
ham : ∀ (a : α), a ∈ l → f a ≤ f m
hma : ∀ (a : α), a ∈ l → f m ≤ f a → indexOf m l ≤ indexOf a l
harg : argmax f l = none
⊢ m ∈ none

tactic: have :=
  _root_.le_antisymm (hma n (argmax_mem harg) (le_of_mem_argmax hml harg))
    (index_of_argmax harg hml (ham _ (argmax_mem harg)))
state_before: case intro.intro.some
α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder β
f : α → β
l : List α
o : Option α
a m : α
inst✝ : DecidableEq α
hml : m ∈ l
ham : ∀ (a : α), a ∈ l → f a ≤ f m
hma : ∀ (a : α), a ∈ l → f m ≤ f a → indexOf m l ≤ indexOf a l
n : α
harg : argmax f l = some n
⊢ m ∈ some n

tactic: rw [(indexOf_inj hml (argmax_mem harg)).1 this, Option.mem_def]
state_before: case intro.intro.some
α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder β
f : α → β
l : List α
o : Option α
a m : α
inst✝ : DecidableEq α
hml : m ∈ l
ham : ∀ (a : α), a ∈ l → f a ≤ f m
hma : ∀ (a : α), a ∈ l → f m ≤ f a → indexOf m l ≤ indexOf a l
n : α
harg : argmax f l = some n
this : indexOf m l = indexOf n l
⊢ m ∈ some n
Theorem: iteratedFDeriv_const_of_ne
File: Mathlib/Analysis/Calculus/ContDiff.lean

tactic: cases' Nat.exists_eq_succ_of_ne_zero hn with k hk
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.90340
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c✝ : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n : ℕ
hn : n ≠ 0
c : F
⊢ (iteratedFDeriv 𝕜 n fun x => c) = 0

tactic: rw [hk, iteratedFDeriv_succ_const]
state_before: case intro
𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type ?u.90340
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c✝ : F
b : E × F → G
m n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n : ℕ
hn : n ≠ 0
c : F
k : ℕ
hk : n = Nat.succ k
⊢ (iteratedFDeriv 𝕜 n fun x => c) = 0
Theorem: Computability.decode_encodeNum
File: Mathlib/Computability/Encoding.lean

tactic: intro n
state_before: ⊢ ∀ (n : Num), decodeNum (encodeNum n) = n

tactic: cases' n with n <;> unfold encodeNum decodeNum
state_before: n : Num
⊢ decodeNum (encodeNum n) = n

tactic: rw [decode_encodePosNum n]
state_before: case pos
n : PosNum
⊢ (if
        (match Num.pos n with
          | Num.zero => []
          | Num.pos n => encodePosNum n) =
          [] then
      Num.zero
    else
      ↑(decodePosNum
          (match Num.pos n with
          | Num.zero => []
          | Num.pos n => encodePosNum n))) =
    Num.pos n

tactic: rw [PosNum.cast_to_num]
state_before: case pos
n : PosNum
⊢ (if
        (match Num.pos n with
          | Num.zero => []
          | Num.pos n => encodePosNum n) =
          [] then
      Num.zero
    else ↑n) =
    Num.pos n

tactic: exact if_neg (encodePosNum_nonempty n)
state_before: case pos
n : PosNum
⊢ (if
        (match Num.pos n with
          | Num.zero => []
          | Num.pos n => encodePosNum n) =
          [] then
      Num.zero
    else Num.pos n) =
    Num.pos n

tactic: rfl
state_before: case zero

⊢ (if
        (match Num.zero with
          | Num.zero => []
          | Num.pos n => encodePosNum n) =
          [] then
      Num.zero
    else
      ↑(decodePosNum
          (match Num.zero with
          | Num.zero => []
          | Num.pos n => encodePosNum n))) =
    Num.zero
Theorem: MeasureTheory.MeasurePreserving.preErgodic_of_preErgodic_conjugate
File: Mathlib/Dynamics/Ergodic/Ergodic.lean

tactic: intro s hs₀ hs₁
state_before: α : Type u_1
m : MeasurableSpace α
f : α → α
s : Set α
μ : Measure α
β : Type u_2
m' : MeasurableSpace β
μ' : Measure β
s' : Set β
g : α → β
hg : MeasurePreserving g
hf : PreErgodic f
f' : β → β
h_comm : g ∘ f = f' ∘ g
⊢ ∀ ⦃s : Set β⦄, MeasurableSet s → f' ⁻¹' s = s → s =ᶠ[ae μ'] ∅ ∨ s =ᶠ[ae μ'] univ

tactic: replace hs₁ : f ⁻¹' (g ⁻¹' s) = g ⁻¹' s
state_before: α : Type u_1
m : MeasurableSpace α
f : α → α
s✝ : Set α
μ : Measure α
β : Type u_2
m' : MeasurableSpace β
μ' : Measure β
s' : Set β
g : α → β
hg : MeasurePreserving g
hf : PreErgodic f
f' : β → β
h_comm : g ∘ f = f' ∘ g
s : Set β
hs₀ : MeasurableSet s
hs₁ : f' ⁻¹' s = s
⊢ s =ᶠ[ae μ'] ∅ ∨ s =ᶠ[ae μ'] univ

tactic: cases' hf.ae_empty_or_univ (hg.measurable hs₀) hs₁ with hs₂ hs₂ <;> [left; right]
state_before: α : Type u_1
m : MeasurableSpace α
f : α → α
s✝ : Set α
μ : Measure α
β : Type u_2
m' : MeasurableSpace β
μ' : Measure β
s' : Set β
g : α → β
hg : MeasurePreserving g
hf : PreErgodic f
f' : β → β
h_comm : g ∘ f = f' ∘ g
s : Set β
hs₀ : MeasurableSet s
hs₁ : f ⁻¹' (g ⁻¹' s) = g ⁻¹' s
⊢ s =ᶠ[ae μ'] ∅ ∨ s =ᶠ[ae μ'] univ

tactic: rw [← preimage_comp, h_comm, preimage_comp, hs₁]
state_before: case hs₁
α : Type u_1
m : MeasurableSpace α
f : α → α
s✝ : Set α
μ : Measure α
β : Type u_2
m' : MeasurableSpace β
μ' : Measure β
s' : Set β
g : α → β
hg : MeasurePreserving g
hf : PreErgodic f
f' : β → β
h_comm : g ∘ f = f' ∘ g
s : Set β
hs₀ : MeasurableSet s
hs₁ : f' ⁻¹' s = s
⊢ f ⁻¹' (g ⁻¹' s) = g ⁻¹' s

tactic: simpa only [ae_eq_empty, hg.measure_preimage hs₀] using hs₂
state_before: case inl.h
α : Type u_1
m : MeasurableSpace α
f : α → α
s✝ : Set α
μ : Measure α
β : Type u_2
m' : MeasurableSpace β
μ' : Measure β
s' : Set β
g : α → β
hg : MeasurePreserving g
hf : PreErgodic f
f' : β → β
h_comm : g ∘ f = f' ∘ g
s : Set β
hs₀ : MeasurableSet s
hs₁ : f ⁻¹' (g ⁻¹' s) = g ⁻¹' s
hs₂ : g ⁻¹' s =ᶠ[ae μ] ∅
⊢ s =ᶠ[ae μ'] ∅

tactic: simpa only [ae_eq_univ, ← preimage_compl, hg.measure_preimage hs₀.compl] using hs₂
state_before: case inr.h
α : Type u_1
m : MeasurableSpace α
f : α → α
s✝ : Set α
μ : Measure α
β : Type u_2
m' : MeasurableSpace β
μ' : Measure β
s' : Set β
g : α → β
hg : MeasurePreserving g
hf : PreErgodic f
f' : β → β
h_comm : g ∘ f = f' ∘ g
s : Set β
hs₀ : MeasurableSet s
hs₁ : f ⁻¹' (g ⁻¹' s) = g ⁻¹' s
hs₂ : g ⁻¹' s =ᶠ[ae μ] univ
⊢ s =ᶠ[ae μ'] univ
Theorem: intervalIntegral.smul_integral_comp_add_mul
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: by_cases hc : c = 0 <;> simp [hc, integral_comp_add_mul]
state_before: ι : Type ?u.14885131
𝕜 : Type ?u.14885134
E : Type u_1
F : Type ?u.14885140
A : Type ?u.14885143
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b c✝ d✝ : ℝ
f : ℝ → E
c d : ℝ
⊢ (c • ∫ (x : ℝ) in a..b, f (d + c * x)) = ∫ (x : ℝ) in d + c * a..d + c * b, f x
Theorem: Function.Periodic.sub_eq'
File: Mathlib/Algebra/Periodic.lean

tactic: simpa only [sub_eq_neg_add] using h (-x)
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.79068
f g : α → β
c c₁ c₂ x : α
inst✝ : AddCommGroup α
h : Periodic f c
⊢ f (c - x) = f (-x)
Theorem: Ordinal.limitRecOn_zero
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: rw [limitRecOn, lt_wf.fix_eq, dif_pos rfl]
state_before: α : Type ?u.95975
β : Type ?u.95978
γ : Type ?u.95981
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
C : Ordinal → Sort u_2
H₁ : C 0
H₂ : (o : Ordinal) → C o → C (succ o)
H₃ : (o : Ordinal) → IsLimit o → ((o' : Ordinal) → o' < o → C o') → C o
⊢ limitRecOn 0 H₁ H₂ H₃ = H₁

tactic: rfl
state_before: α : Type ?u.95975
β : Type ?u.95978
γ : Type ?u.95981
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
C : Ordinal → Sort u_2
H₁ : C 0
H₂ : (o : Ordinal) → C o → C (succ o)
H₃ : (o : Ordinal) → IsLimit o → ((o' : Ordinal) → o' < o → C o') → C o
⊢ Eq.mpr (_ : C 0 = C 0) H₁ = H₁
Theorem: MvPolynomial.degrees_neg
File: Mathlib/Data/MvPolynomial/CommRing.lean

tactic: rw [degrees, support_neg]
state_before: R : Type u
S : Type v
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommRing R
p✝ q p : MvPolynomial σ R
⊢ degrees (-p) = degrees p

tactic: rfl
state_before: R : Type u
S : Type v
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommRing R
p✝ q p : MvPolynomial σ R
⊢ (Finset.sup (support p) fun s => ↑toMultiset s) = degrees p
Theorem: Num.dvd_iff_mod_eq_zero
File: Mathlib/Data/Num/Lemmas.lean

tactic: rw [← dvd_to_nat, Nat.dvd_iff_mod_eq_zero, ← to_nat_inj, mod_to_nat]
state_before: m n : Num
⊢ m ∣ n ↔ n % m = 0

tactic: rfl
state_before: m n : Num
⊢ ↑n % ↑m = 0 ↔ ↑n % ↑m = ↑0
Theorem: LowerSemicontinuousAt.add'
File: Mathlib/Topology/Semicontinuous.lean

tactic: simp_rw [← lowerSemicontinuousWithinAt_univ_iff] at *
state_before: α : Type u_1
inst✝⁴ : TopologicalSpace α
β : Type ?u.85283
inst✝³ : Preorder β
f✝ g✝ : α → β
x : α
s t : Set α
y z : β
ι : Type ?u.85309
γ : Type u_2
inst✝² : LinearOrderedAddCommMonoid γ
inst✝¹ : TopologicalSpace γ
inst✝ : OrderTopology γ
f g : α → γ
hf : LowerSemicontinuousAt f x
hg : LowerSemicontinuousAt g x
hcont : ContinuousAt (fun p => p.fst + p.snd) (f x, g x)
⊢ LowerSemicontinuousAt (fun z => f z + g z) x

tactic: exact hf.add' hg hcont
state_before: α : Type u_1
inst✝⁴ : TopologicalSpace α
β : Type ?u.85283
inst✝³ : Preorder β
f✝ g✝ : α → β
x : α
s t : Set α
y z : β
ι : Type ?u.85309
γ : Type u_2
inst✝² : LinearOrderedAddCommMonoid γ
inst✝¹ : TopologicalSpace γ
inst✝ : OrderTopology γ
f g : α → γ
hcont : ContinuousAt (fun p => p.fst + p.snd) (f x, g x)
hf : LowerSemicontinuousWithinAt f univ x
hg : LowerSemicontinuousWithinAt g univ x
⊢ LowerSemicontinuousWithinAt (fun z => f z + g z) univ x
Theorem: Ideal.map_eq_iff_sup_ker_eq_of_surjective
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: rw [← (comap_injective_of_surjective f hf).eq_iff, comap_map_of_surjective f hf,
  comap_map_of_surjective f hf, RingHom.ker_eq_comap_bot]
state_before: R : Type u_1
S : Type u_2
F : Type ?u.1967635
inst✝¹ : CommRing R
inst✝ : CommRing S
I J : Ideal R
f : R →+* S
hf : Function.Surjective ↑f
⊢ map f I = map f J ↔ I ⊔ RingHom.ker f = J ⊔ RingHom.ker f
Theorem: Int.neg_mul_neg
File: Std/Data/Int/Lemmas.lean

tactic: simp
state_before: a b : Int
⊢ -a * -b = a * b
Theorem: Submodule.map_subtype_top
File: Mathlib/LinearAlgebra/Basic.lean

tactic: simp
state_before: R : Type u_2
R₁ : Type ?u.1539707
R₂ : Type ?u.1539710
R₃ : Type ?u.1539713
R₄ : Type ?u.1539716
S : Type ?u.1539719
K : Type ?u.1539722
K₂ : Type ?u.1539725
M : Type u_1
M' : Type ?u.1539731
M₁ : Type ?u.1539734
M₂ : Type ?u.1539737
M₃ : Type ?u.1539740
M₄ : Type ?u.1539743
N : Type ?u.1539746
N₂ : Type ?u.1539749
ι : Type ?u.1539752
V : Type ?u.1539755
V₂ : Type ?u.1539758
inst✝⁵ : Semiring R
inst✝⁴ : Semiring R₂
inst✝³ : AddCommMonoid M
inst✝² : AddCommMonoid M₂
inst✝¹ : Module R M
inst✝ : Module R₂ M₂
p p' : Submodule R M
q : Submodule R₂ M₂
τ₁₂ : R →+* R₂
F : Type ?u.1539932
sc : SemilinearMapClass F τ₁₂ M M₂
⊢ map (Submodule.subtype p) ⊤ = p
Theorem: Int.floor_neg
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [le_neg, ceil_le, le_floor, Int.cast_neg, le_neg]
state_before: F : Type ?u.206564
α : Type u_1
β : Type ?u.206570
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z✝ : ℤ
a : α
z : ℤ
⊢ z ≤ ⌊-a⌋ ↔ z ≤ -⌈a⌉
Theorem: pathConnectedSpace_iff_zerothHomotopy
File: Mathlib/Topology/PathConnected.lean

tactic: letI := pathSetoid X
state_before: X : Type u_1
Y : Type ?u.687930
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type ?u.687945
F : Set X
⊢ PathConnectedSpace X ↔ Nonempty (ZerothHomotopy X) ∧ Subsingleton (ZerothHomotopy X)

tactic: constructor
state_before: X : Type u_1
Y : Type ?u.687930
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type ?u.687945
F : Set X
this : Setoid X := pathSetoid X
⊢ PathConnectedSpace X ↔ Nonempty (ZerothHomotopy X) ∧ Subsingleton (ZerothHomotopy X)

tactic: intro h
state_before: case mp
X : Type u_1
Y : Type ?u.687930
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type ?u.687945
F : Set X
this : Setoid X := pathSetoid X
⊢ PathConnectedSpace X → Nonempty (ZerothHomotopy X) ∧ Subsingleton (ZerothHomotopy X)

tactic: refine' ⟨(nonempty_quotient_iff _).mpr h.1, ⟨_⟩⟩
state_before: case mp
X : Type u_1
Y : Type ?u.687930
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type ?u.687945
F : Set X
this : Setoid X := pathSetoid X
h : PathConnectedSpace X
⊢ Nonempty (ZerothHomotopy X) ∧ Subsingleton (ZerothHomotopy X)

tactic: rintro ⟨x⟩ ⟨y⟩
state_before: case mp
X : Type u_1
Y : Type ?u.687930
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type ?u.687945
F : Set X
this : Setoid X := pathSetoid X
h : PathConnectedSpace X
⊢ ∀ (a b : ZerothHomotopy X), a = b

tactic: exact Quotient.sound (PathConnectedSpace.Joined x y)
state_before: case mp.mk.mk
X : Type u_1
Y : Type ?u.687930
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x✝ y✝ z : X
ι : Type ?u.687945
F : Set X
this : Setoid X := pathSetoid X
h : PathConnectedSpace X
a✝ : ZerothHomotopy X
x : X
b✝ : ZerothHomotopy X
y : X
⊢ Quot.mk Setoid.r x = Quot.mk Setoid.r y

tactic: unfold ZerothHomotopy
state_before: case mpr
X : Type u_1
Y : Type ?u.687930
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type ?u.687945
F : Set X
this : Setoid X := pathSetoid X
⊢ Nonempty (ZerothHomotopy X) ∧ Subsingleton (ZerothHomotopy X) → PathConnectedSpace X

tactic: rintro ⟨h, h'⟩
state_before: case mpr
X : Type u_1
Y : Type ?u.687930
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type ?u.687945
F : Set X
this : Setoid X := pathSetoid X
⊢ Nonempty (Quotient (pathSetoid X)) ∧ Subsingleton (Quotient (pathSetoid X)) → PathConnectedSpace X

tactic: skip
state_before: case mpr.intro
X : Type u_1
Y : Type ?u.687930
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type ?u.687945
F : Set X
this : Setoid X := pathSetoid X
h : Nonempty (Quotient (pathSetoid X))
h' : Subsingleton (Quotient (pathSetoid X))
⊢ PathConnectedSpace X

tactic: exact ⟨(nonempty_quotient_iff _).mp h, fun x y => Quotient.exact <| Subsingleton.elim ⟦x⟧ ⟦y⟧⟩
state_before: case mpr.intro
X : Type u_1
Y : Type ?u.687930
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x y z : X
ι : Type ?u.687945
F : Set X
this : Setoid X := pathSetoid X
h : Nonempty (Quotient (pathSetoid X))
h' : Subsingleton (Quotient (pathSetoid X))
⊢ PathConnectedSpace X
Theorem: OrderMonoidHom.mk_coe
File: Mathlib/Algebra/Order/Hom/Monoid.lean

tactic: ext
state_before: F : Type ?u.74354
α : Type u_1
β : Type u_2
γ : Type ?u.74363
δ : Type ?u.74366
inst✝⁷ : Preorder α
inst✝⁶ : Preorder β
inst✝⁵ : Preorder γ
inst✝⁴ : Preorder δ
inst✝³ : MulOneClass α
inst✝² : MulOneClass β
inst✝¹ : MulOneClass γ
inst✝ : MulOneClass δ
f✝ g f : α →*o β
h : Monotone (↑↑f).toFun
⊢ { toMonoidHom := ↑f, monotone' := h } = f

tactic: rfl
state_before: case h
F : Type ?u.74354
α : Type u_1
β : Type u_2
γ : Type ?u.74363
δ : Type ?u.74366
inst✝⁷ : Preorder α
inst✝⁶ : Preorder β
inst✝⁵ : Preorder γ
inst✝⁴ : Preorder δ
inst✝³ : MulOneClass α
inst✝² : MulOneClass β
inst✝¹ : MulOneClass γ
inst✝ : MulOneClass δ
f✝ g f : α →*o β
h : Monotone (↑↑f).toFun
a✝ : α
⊢ ↑{ toMonoidHom := ↑f, monotone' := h } a✝ = ↑f a✝
Theorem: Finsupp.equivMapDomain_refl'
File: Mathlib/Data/Finsupp/Basic.lean

tactic: ext x
state_before: α : Type u_1
β : Type ?u.141999
γ : Type ?u.142002
ι : Type ?u.142005
M : Type u_2
M' : Type ?u.142011
N : Type ?u.142014
P : Type ?u.142017
G : Type ?u.142020
H : Type ?u.142023
R : Type ?u.142026
S : Type ?u.142029
inst✝ : Zero M
⊢ equivMapDomain (Equiv.refl α) = id

tactic: rfl
state_before: case h.h
α : Type u_1
β : Type ?u.141999
γ : Type ?u.142002
ι : Type ?u.142005
M : Type u_2
M' : Type ?u.142011
N : Type ?u.142014
P : Type ?u.142017
G : Type ?u.142020
H : Type ?u.142023
R : Type ?u.142026
S : Type ?u.142029
inst✝ : Zero M
x : α →₀ M
a✝ : α
⊢ ↑(equivMapDomain (Equiv.refl α) x) a✝ = ↑(id x) a✝
Theorem: Commute.mul_self_eq_mul_self_iff
File: Mathlib/Algebra/Ring/Commute.lean

tactic: rw [← sub_eq_zero, h.mul_self_sub_mul_self_eq, mul_eq_zero, or_comm, sub_eq_zero,
  add_eq_zero_iff_eq_neg]
state_before: α : Type u
β : Type v
γ : Type w
R : Type x
inst✝¹ : NonUnitalNonAssocRing R
inst✝ : NoZeroDivisors R
a b : R
h : Commute a b
⊢ a * a = b * b ↔ a = b ∨ a = -b
Theorem: MeasurableSet.exists_isOpen_diff_lt
File: Mathlib/MeasureTheory/Measure/Regular.lean

tactic: rcases A.exists_isOpen_lt_add hA' hε with ⟨U, hAU, hUo, hU⟩
state_before: α : Type u_1
β : Type ?u.13200
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : OuterRegular μ
A : Set α
hA : MeasurableSet A
hA' : ↑↑μ A ≠ ⊤
ε : ℝ≥0∞
hε : ε ≠ 0
⊢ ∃ U, U ⊇ A ∧ IsOpen U ∧ ↑↑μ U < ⊤ ∧ ↑↑μ (U \ A) < ε

tactic: use U, hAU, hUo, hU.trans_le le_top
state_before: case intro.intro.intro
α : Type u_1
β : Type ?u.13200
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : OuterRegular μ
A : Set α
hA : MeasurableSet A
hA' : ↑↑μ A ≠ ⊤
ε : ℝ≥0∞
hε : ε ≠ 0
U : Set α
hAU : U ⊇ A
hUo : IsOpen U
hU : ↑↑μ U < ↑↑μ A + ε
⊢ ∃ U, U ⊇ A ∧ IsOpen U ∧ ↑↑μ U < ⊤ ∧ ↑↑μ (U \ A) < ε

tactic: exact measure_diff_lt_of_lt_add hA hAU hA' hU
state_before: case intro.intro.intro
α : Type u_1
β : Type ?u.13200
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
μ : Measure α
inst✝ : OuterRegular μ
A : Set α
hA : MeasurableSet A
hA' : ↑↑μ A ≠ ⊤
ε : ℝ≥0∞
hε : ε ≠ 0
U : Set α
hAU : U ⊇ A
hUo : IsOpen U
hU : ↑↑μ U < ↑↑μ A + ε
⊢ ↑↑μ (U \ A) < ε
Theorem: MeasureTheory.VectorMeasure.trim_eq_self
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

tactic: ext1 i hi
state_before: α : Type u_1
β : Type ?u.697521
m : MeasurableSpace α
L : Type ?u.697527
M : Type u_2
N : Type ?u.697533
inst✝⁵ : AddCommMonoid L
inst✝⁴ : TopologicalSpace L
inst✝³ : AddCommMonoid M
inst✝² : TopologicalSpace M
inst✝¹ : AddCommMonoid N
inst✝ : TopologicalSpace N
n : MeasurableSpace α
v : VectorMeasure α M
⊢ trim v (_ : n ≤ n) = v

tactic: exact if_pos hi
state_before: case h
α : Type u_1
β : Type ?u.697521
m : MeasurableSpace α
L : Type ?u.697527
M : Type u_2
N : Type ?u.697533
inst✝⁵ : AddCommMonoid L
inst✝⁴ : TopologicalSpace L
inst✝³ : AddCommMonoid M
inst✝² : TopologicalSpace M
inst✝¹ : AddCommMonoid N
inst✝ : TopologicalSpace N
n : MeasurableSpace α
v : VectorMeasure α M
i : Set α
hi : MeasurableSet i
⊢ ↑(trim v (_ : n ≤ n)) i = ↑v i