tasksource/leandojo huggingface dataset:
Theorem: convexOn_id
File: Mathlib/Analysis/Convex/Function.lean

tactic: intros
state_before: 𝕜 : Type u_2
E : Type ?u.13974
F : Type ?u.13977
α : Type ?u.13980
β : Type u_1
ι : Type ?u.13986
inst✝⁷ : OrderedSemiring 𝕜
inst✝⁶ : AddCommMonoid E
inst✝⁵ : AddCommMonoid F
inst✝⁴ : OrderedAddCommMonoid α
inst✝³ : OrderedAddCommMonoid β
inst✝² : SMul 𝕜 E
inst✝¹ : SMul 𝕜 α
inst✝ : SMul 𝕜 β
s✝ : Set E
f : E → β
g : β → α
s : Set β
hs : Convex 𝕜 s
⊢ ∀ ⦃x : β⦄,
    x ∈ s →
      ∀ ⦃y : β⦄,
        y ∈ s → ∀ ⦃a b : 𝕜⦄, 0 ≤ a → 0 ≤ b → a + b = 1 → _root_.id (a • x + b • y) ≤ a • _root_.id x + b • _root_.id y

tactic: rfl
state_before: 𝕜 : Type u_2
E : Type ?u.13974
F : Type ?u.13977
α : Type ?u.13980
β : Type u_1
ι : Type ?u.13986
inst✝⁷ : OrderedSemiring 𝕜
inst✝⁶ : AddCommMonoid E
inst✝⁵ : AddCommMonoid F
inst✝⁴ : OrderedAddCommMonoid α
inst✝³ : OrderedAddCommMonoid β
inst✝² : SMul 𝕜 E
inst✝¹ : SMul 𝕜 α
inst✝ : SMul 𝕜 β
s✝ : Set E
f : E → β
g : β → α
s : Set β
hs : Convex 𝕜 s
x✝ : β
a✝⁵ : x✝ ∈ s
y✝ : β
a✝⁴ : y✝ ∈ s
a✝³ b✝ : 𝕜
a✝² : 0 ≤ a✝³
a✝¹ : 0 ≤ b✝
a✝ : a✝³ + b✝ = 1
⊢ _root_.id (a✝³ • x✝ + b✝ • y✝) ≤ a✝³ • _root_.id x✝ + b✝ • _root_.id y✝
Theorem: ProbabilityTheory.indepFun_iff_measure_inter_preimage_eq_mul
File: Mathlib/Probability/Independence/Basic.lean

tactic: constructor <;> intro h
state_before: Ω : Type u_3
ι : Type ?u.3034448
β : Type u_1
β' : Type u_2
γ : Type ?u.3034457
γ' : Type ?u.3034460
mΩ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
f : Ω → β
g : Ω → β'
mβ : MeasurableSpace β
mβ' : MeasurableSpace β'
⊢ IndepFun f g ↔
    ∀ (s : Set β) (t : Set β'),
      MeasurableSet s → MeasurableSet t → ↑↑μ (f ⁻¹' s ∩ g ⁻¹' t) = ↑↑μ (f ⁻¹' s) * ↑↑μ (g ⁻¹' t)

tactic: refine' fun s t hs ht => h (f ⁻¹' s) (g ⁻¹' t) ⟨s, hs, rfl⟩ ⟨t, ht, rfl⟩
state_before: case mp
Ω : Type u_3
ι : Type ?u.3034448
β : Type u_1
β' : Type u_2
γ : Type ?u.3034457
γ' : Type ?u.3034460
mΩ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
f : Ω → β
g : Ω → β'
mβ : MeasurableSpace β
mβ' : MeasurableSpace β'
h : IndepFun f g
⊢ ∀ (s : Set β) (t : Set β'),
    MeasurableSet s → MeasurableSet t → ↑↑μ (f ⁻¹' s ∩ g ⁻¹' t) = ↑↑μ (f ⁻¹' s) * ↑↑μ (g ⁻¹' t)

tactic: rintro _ _ ⟨s, hs, rfl⟩ ⟨t, ht, rfl⟩
state_before: case mpr
Ω : Type u_3
ι : Type ?u.3034448
β : Type u_1
β' : Type u_2
γ : Type ?u.3034457
γ' : Type ?u.3034460
mΩ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
f : Ω → β
g : Ω → β'
mβ : MeasurableSpace β
mβ' : MeasurableSpace β'
h :
  ∀ (s : Set β) (t : Set β'),
    MeasurableSet s → MeasurableSet t → ↑↑μ (f ⁻¹' s ∩ g ⁻¹' t) = ↑↑μ (f ⁻¹' s) * ↑↑μ (g ⁻¹' t)
⊢ IndepFun f g

tactic: exact h s t hs ht
state_before: case mpr.intro.intro.intro.intro
Ω : Type u_3
ι : Type ?u.3034448
β : Type u_1
β' : Type u_2
γ : Type ?u.3034457
γ' : Type ?u.3034460
mΩ : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
f : Ω → β
g : Ω → β'
mβ : MeasurableSpace β
mβ' : MeasurableSpace β'
h :
  ∀ (s : Set β) (t : Set β'),
    MeasurableSet s → MeasurableSet t → ↑↑μ (f ⁻¹' s ∩ g ⁻¹' t) = ↑↑μ (f ⁻¹' s) * ↑↑μ (g ⁻¹' t)
s : Set β
hs : MeasurableSet s
t : Set β'
ht : MeasurableSet t
⊢ ↑↑μ (f ⁻¹' s ∩ g ⁻¹' t) = ↑↑μ (f ⁻¹' s) * ↑↑μ (g ⁻¹' t)
Theorem: aemeasurable_uIoc_iff
File: Mathlib/MeasureTheory/Measure/AEMeasurable.lean

tactic: rw [uIoc_eq_union, aemeasurable_union_iff]
state_before: ι : Type ?u.3149429
α : Type u_1
β : Type u_2
γ : Type ?u.3149438
δ : Type ?u.3149441
R : Type ?u.3149444
m0 : MeasurableSpace α
inst✝³ : MeasurableSpace β
inst✝² : MeasurableSpace γ
inst✝¹ : MeasurableSpace δ
f✝ g : α → β
μ ν : MeasureTheory.Measure α
inst✝ : LinearOrder α
f : α → β
a b : α
⊢ AEMeasurable f ↔ AEMeasurable f ∧ AEMeasurable f
Theorem: PNat.lt_find_iff
File: Mathlib/Data/PNat/Find.lean

tactic: simp only [← add_one_le_iff, le_find_iff, add_le_add_iff_right]
state_before: p q : ℕ+ → Prop
inst✝¹ : DecidablePred p
inst✝ : DecidablePred q
h : ∃ n, p n
n✝ m n : ℕ+
⊢ n < PNat.find h ↔ ∀ (m : ℕ+), m ≤ n → ¬p m
Theorem: Mathlib.Tactic.Abel.zero_termg
File: Mathlib/Tactic/Abel.lean

tactic: simp [termg, zero_zsmul]
state_before: α : Type u_1
inst✝ : AddCommGroup α
x a : α
⊢ termg 0 x a = a
Theorem: IsPrimitiveRoot.mk_of_lt
File: Mathlib/RingTheory/RootsOfUnity/Basic.lean

tactic: refine' ⟨h1, fun l hl => _⟩
state_before: M : Type u_1
N : Type ?u.1556454
G : Type ?u.1556457
R : Type ?u.1556460
S : Type ?u.1556463
F : Type ?u.1556466
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
inst✝ : DivisionCommMonoid G
k l : ℕ
ζ : M
hk : 0 < k
h1 : ζ ^ k = 1
h : ∀ (l : ℕ), 0 < l → l < k → ζ ^ l ≠ 1
⊢ IsPrimitiveRoot ζ k

tactic: suffices k.gcd l = k by exact this ▸ k.gcd_dvd_right l
state_before: M : Type u_1
N : Type ?u.1556454
G : Type ?u.1556457
R : Type ?u.1556460
S : Type ?u.1556463
F : Type ?u.1556466
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
inst✝ : DivisionCommMonoid G
k l✝ : ℕ
ζ : M
hk : 0 < k
h1 : ζ ^ k = 1
h : ∀ (l : ℕ), 0 < l → l < k → ζ ^ l ≠ 1
l : ℕ
hl : ζ ^ l = 1
⊢ k ∣ l

tactic: rw [eq_iff_le_not_lt]
state_before: M : Type u_1
N : Type ?u.1556454
G : Type ?u.1556457
R : Type ?u.1556460
S : Type ?u.1556463
F : Type ?u.1556466
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
inst✝ : DivisionCommMonoid G
k l✝ : ℕ
ζ : M
hk : 0 < k
h1 : ζ ^ k = 1
h : ∀ (l : ℕ), 0 < l → l < k → ζ ^ l ≠ 1
l : ℕ
hl : ζ ^ l = 1
⊢ Nat.gcd k l = k

tactic: refine' ⟨Nat.le_of_dvd hk (k.gcd_dvd_left l), _⟩
state_before: M : Type u_1
N : Type ?u.1556454
G : Type ?u.1556457
R : Type ?u.1556460
S : Type ?u.1556463
F : Type ?u.1556466
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
inst✝ : DivisionCommMonoid G
k l✝ : ℕ
ζ : M
hk : 0 < k
h1 : ζ ^ k = 1
h : ∀ (l : ℕ), 0 < l → l < k → ζ ^ l ≠ 1
l : ℕ
hl : ζ ^ l = 1
⊢ Nat.gcd k l ≤ k ∧ ¬Nat.gcd k l < k

tactic: intro h'
state_before: M : Type u_1
N : Type ?u.1556454
G : Type ?u.1556457
R : Type ?u.1556460
S : Type ?u.1556463
F : Type ?u.1556466
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
inst✝ : DivisionCommMonoid G
k l✝ : ℕ
ζ : M
hk : 0 < k
h1 : ζ ^ k = 1
h : ∀ (l : ℕ), 0 < l → l < k → ζ ^ l ≠ 1
l : ℕ
hl : ζ ^ l = 1
⊢ ¬Nat.gcd k l < k

tactic: apply h _ (Nat.gcd_pos_of_pos_left _ hk) h'
state_before: M : Type u_1
N : Type ?u.1556454
G : Type ?u.1556457
R : Type ?u.1556460
S : Type ?u.1556463
F : Type ?u.1556466
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
inst✝ : DivisionCommMonoid G
k l✝ : ℕ
ζ : M
hk : 0 < k
h1 : ζ ^ k = 1
h : ∀ (l : ℕ), 0 < l → l < k → ζ ^ l ≠ 1
l : ℕ
hl : ζ ^ l = 1
h' : Nat.gcd k l < k
⊢ False

tactic: exact pow_gcd_eq_one _ h1 hl
state_before: M : Type u_1
N : Type ?u.1556454
G : Type ?u.1556457
R : Type ?u.1556460
S : Type ?u.1556463
F : Type ?u.1556466
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
inst✝ : DivisionCommMonoid G
k l✝ : ℕ
ζ : M
hk : 0 < k
h1 : ζ ^ k = 1
h : ∀ (l : ℕ), 0 < l → l < k → ζ ^ l ≠ 1
l : ℕ
hl : ζ ^ l = 1
h' : Nat.gcd k l < k
⊢ ζ ^ Nat.gcd k l = 1

tactic: exact this ▸ k.gcd_dvd_right l
state_before: M : Type u_1
N : Type ?u.1556454
G : Type ?u.1556457
R : Type ?u.1556460
S : Type ?u.1556463
F : Type ?u.1556466
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
inst✝ : DivisionCommMonoid G
k l✝ : ℕ
ζ : M
hk : 0 < k
h1 : ζ ^ k = 1
h : ∀ (l : ℕ), 0 < l → l < k → ζ ^ l ≠ 1
l : ℕ
hl : ζ ^ l = 1
this : Nat.gcd k l = k
⊢ k ∣ l
Theorem: Filter.BoundedAtFilter.add
File: Mathlib/Order/Filter/ZeroAndBoundedAtFilter.lean

tactic: simpa using hf.add hg
state_before: α : Type u_2
β : Type u_1
inst✝ : NormedAddCommGroup β
l : Filter α
f g : α → β
hf : BoundedAtFilter l f
hg : BoundedAtFilter l g
⊢ BoundedAtFilter l (f + g)
Theorem: ChainComplex.next_nat_zero
File: Mathlib/Algebra/Homology/HomologicalComplex.lean

tactic: classical
  refine' dif_neg _
  push_neg
  intro
  apply Nat.noConfusion
state_before: ι : Type ?u.6212
V : Type u
inst✝¹ : Category V
inst✝ : HasZeroMorphisms V
⊢ ComplexShape.next (ComplexShape.down ℕ) 0 = 0

tactic: refine' dif_neg _
state_before: ι : Type ?u.6212
V : Type u
inst✝¹ : Category V
inst✝ : HasZeroMorphisms V
⊢ ComplexShape.next (ComplexShape.down ℕ) 0 = 0

tactic: push_neg
state_before: ι : Type ?u.6212
V : Type u
inst✝¹ : Category V
inst✝ : HasZeroMorphisms V
⊢ ¬∃ j, ComplexShape.Rel (ComplexShape.down ℕ) 0 j

tactic: intro
state_before: ι : Type ?u.6212
V : Type u
inst✝¹ : Category V
inst✝ : HasZeroMorphisms V
⊢ ∀ (j : ℕ), ¬ComplexShape.Rel (ComplexShape.down ℕ) 0 j

tactic: apply Nat.noConfusion
state_before: ι : Type ?u.6212
V : Type u
inst✝¹ : Category V
inst✝ : HasZeroMorphisms V
j✝ : ℕ
⊢ ¬ComplexShape.Rel (ComplexShape.down ℕ) 0 j✝
Theorem: LinearEquiv.conj_trans
File: Mathlib/LinearAlgebra/Basic.lean

tactic: ext (f x)
state_before: R : Type u_1
R₁ : Type ?u.2210347
R₂ : Type ?u.2210350
R₃ : Type ?u.2210353
R₄ : Type ?u.2210356
S : Type ?u.2210359
K : Type ?u.2210362
K₂ : Type ?u.2210365
M : Type u_2
M' : Type ?u.2210371
M₁ : Type ?u.2210374
M₂ : Type u_3
M₃ : Type u_4
M₄ : Type ?u.2210383
N : Type ?u.2210386
N₂ : Type ?u.2210389
ι : Type ?u.2210392
V : Type ?u.2210395
V₂ : Type ?u.2210398
inst✝⁶ : CommSemiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M₂
inst✝³ : AddCommMonoid M₃
inst✝² : Module R M
inst✝¹ : Module R M₂
inst✝ : Module R M₃
e₁ : M ≃ₗ[R] M₂
e₂ : M₂ ≃ₗ[R] M₃
⊢ trans (conj e₁) (conj e₂) = conj (trans e₁ e₂)

tactic: rfl
state_before: case h.h
R : Type u_1
R₁ : Type ?u.2210347
R₂ : Type ?u.2210350
R₃ : Type ?u.2210353
R₄ : Type ?u.2210356
S : Type ?u.2210359
K : Type ?u.2210362
K₂ : Type ?u.2210365
M : Type u_2
M' : Type ?u.2210371
M₁ : Type ?u.2210374
M₂ : Type u_3
M₃ : Type u_4
M₄ : Type ?u.2210383
N : Type ?u.2210386
N₂ : Type ?u.2210389
ι : Type ?u.2210392
V : Type ?u.2210395
V₂ : Type ?u.2210398
inst✝⁶ : CommSemiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M₂
inst✝³ : AddCommMonoid M₃
inst✝² : Module R M
inst✝¹ : Module R M₂
inst✝ : Module R M₃
e₁ : M ≃ₗ[R] M₂
e₂ : M₂ ≃ₗ[R] M₃
f : Module.End R M
x : M₃
⊢ ↑(↑(trans (conj e₁) (conj e₂)) f) x = ↑(↑(conj (trans e₁ e₂)) f) x
Theorem: Int.ediv_sign
File: Std/Data/Int/DivMod.lean

tactic: simp [sign, Int.mul_one]
state_before: x✝ : Int
n✝ : Nat
⊢ x✝ / sign ↑(succ n✝) = x✝ * sign ↑(succ n✝)

tactic: simp [sign, Int.mul_zero]
state_before: x✝ : Int
⊢ x✝ / sign 0 = x✝ * sign 0

tactic: simp [sign, Int.mul_neg, Int.mul_one]
state_before: x✝ : Int
a✝ : Nat
⊢ x✝ / sign -[a✝+1] = x✝ * sign -[a✝+1]
Theorem: Polynomial.leadingCoeff_neg
File: Mathlib/Data/Polynomial/Degree/Definitions.lean

tactic: rw [leadingCoeff, leadingCoeff, natDegree_neg, coeff_neg]
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Ring R
p : R[X]
⊢ leadingCoeff (-p) = -leadingCoeff p
Theorem: Nat.pos_of_isPowerOfTwo
File: src/lean/Init/Data/Nat/Power2.lean

tactic: have ⟨k, h⟩ := h
state_before: n : Nat
h : isPowerOfTwo n
⊢ n > 0

tactic: rw [h]
state_before: n : Nat
h✝ : isPowerOfTwo n
k : Nat
h : n = 2 ^ k
⊢ n > 0

tactic: apply Nat.pos_pow_of_pos
state_before: n : Nat
h✝ : isPowerOfTwo n
k : Nat
h : n = 2 ^ k
⊢ 2 ^ k > 0

tactic: decide
state_before: case h
n : Nat
h✝ : isPowerOfTwo n
k : Nat
h : n = 2 ^ k
⊢ 0 < 2
Theorem: Path.truncate_one_one
File: Mathlib/Topology/PathConnected.lean

tactic: rw [min_self, γ.extend_one]
state_before: X✝ : Type ?u.477521
Y : Type ?u.477524
inst✝² : TopologicalSpace X✝
inst✝¹ : TopologicalSpace Y
x y z : X✝
ι : Type ?u.477539
γ✝ : Path x y
X : Type ?u.477588
inst✝ : TopologicalSpace X
a b : X
γ : Path a b
⊢ extend γ (min 1 1) = b

tactic: convert γ.truncate_self 1
state_before: X✝ : Type ?u.477521
Y : Type ?u.477524
inst✝² : TopologicalSpace X✝
inst✝¹ : TopologicalSpace Y
x y z : X✝
ι : Type ?u.477539
γ✝ : Path x y
X : Type u_1
inst✝ : TopologicalSpace X
a b : X
γ : Path a b
⊢ truncate γ 1 1 = cast (refl b) (_ : extend γ (min 1 1) = b) (_ : extend γ 1 = b)
Theorem: Turing.PartrecToTM2.supports_singleton
File: Mathlib/Computability/TMToPartrec.lean

tactic: simp [Supports]
state_before: S : Finset Λ'
q : Λ'
⊢ Supports {q} S ↔ TM2.SupportsStmt S (tr q)
Theorem: abs_add_eq_add_abs_iff
File: Mathlib/Algebra/GroupPower/Lemmas.lean

tactic: obtain ab | ab := le_total a b
state_before: α : Type u_1
M : Type u
N : Type v
G : Type w
H : Type x
A : Type y
B : Type z
R : Type u₁
S : Type u₂
inst✝ : LinearOrderedAddCommGroup α
a✝ b✝ a b : α
⊢ abs (a + b) = abs a + abs b ↔ 0 ≤ a ∧ 0 ≤ b ∨ a ≤ 0 ∧ b ≤ 0

tactic: exact abs_add_eq_add_abs_le ab
state_before: case inl
α : Type u_1
M : Type u
N : Type v
G : Type w
H : Type x
A : Type y
B : Type z
R : Type u₁
S : Type u₂
inst✝ : LinearOrderedAddCommGroup α
a✝ b✝ a b : α
ab : a ≤ b
⊢ abs (a + b) = abs a + abs b ↔ 0 ≤ a ∧ 0 ≤ b ∨ a ≤ 0 ∧ b ≤ 0

tactic: rw [add_comm a, add_comm (abs _), abs_add_eq_add_abs_le ab, and_comm, @and_comm (b ≤ 0)]
state_before: case inr
α : Type u_1
M : Type u
N : Type v
G : Type w
H : Type x
A : Type y
B : Type z
R : Type u₁
S : Type u₂
inst✝ : LinearOrderedAddCommGroup α
a✝ b✝ a b : α
ab : b ≤ a
⊢ abs (a + b) = abs a + abs b ↔ 0 ≤ a ∧ 0 ≤ b ∨ a ≤ 0 ∧ b ≤ 0
Theorem: MeasureTheory.set_integral_dirac'
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: rw [restrict_dirac' hs]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.1491744
𝕜 : Type ?u.1491747
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : CompleteSpace E
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : SMulCommClass ℝ 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1494438
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
ν : Measure α
mα : MeasurableSpace α
f : α → E
hf : StronglyMeasurable f
a : α
s : Set α
hs : MeasurableSet s
inst✝ : Decidable (a ∈ s)
⊢ (∫ (x : α) in s, f x ∂Measure.dirac a) = if a ∈ s then f a else 0

tactic: split_ifs
state_before: α : Type u_1
E : Type u_2
F : Type ?u.1491744
𝕜 : Type ?u.1491747
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : CompleteSpace E
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : SMulCommClass ℝ 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1494438
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
ν : Measure α
mα : MeasurableSpace α
f : α → E
hf : StronglyMeasurable f
a : α
s : Set α
hs : MeasurableSet s
inst✝ : Decidable (a ∈ s)
⊢ (∫ (x : α), f x ∂if a ∈ s then Measure.dirac a else 0) = if a ∈ s then f a else 0

tactic: exact integral_dirac' _ _ hf
state_before: case inl
α : Type u_1
E : Type u_2
F : Type ?u.1491744
𝕜 : Type ?u.1491747
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : CompleteSpace E
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : SMulCommClass ℝ 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1494438
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
ν : Measure α
mα : MeasurableSpace α
f : α → E
hf : StronglyMeasurable f
a : α
s : Set α
hs : MeasurableSet s
inst✝ : Decidable (a ∈ s)
h✝ : a ∈ s
⊢ (∫ (x : α), f x ∂Measure.dirac a) = f a

tactic: exact integral_zero_measure _
state_before: case inr
α : Type u_1
E : Type u_2
F : Type ?u.1491744
𝕜 : Type ?u.1491747
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℝ E
inst✝⁹ : CompleteSpace E
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : SMulCommClass ℝ 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : CompleteSpace F
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type ?u.1494438
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
ν : Measure α
mα : MeasurableSpace α
f : α → E
hf : StronglyMeasurable f
a : α
s : Set α
hs : MeasurableSet s
inst✝ : Decidable (a ∈ s)
h✝ : ¬a ∈ s
⊢ (∫ (x : α), f x ∂0) = 0
Theorem: Function.le_of_lt_minimalPeriod_of_iterate_eq
File: Mathlib/Dynamics/PeriodicPts.lean

tactic: by_contra' hmn'
state_before: α : Type u_1
β : Type ?u.23726
f fa : α → α
fb : β → β
x y : α
m✝ n✝ m n : ℕ
hm : m < minimalPeriod f x
hmn : (f^[m]) x = (f^[n]) x
⊢ m ≤ n

tactic: rw [← Nat.add_sub_of_le hmn'.le, add_comm, iterate_add_apply] at hmn
state_before: α : Type u_1
β : Type ?u.23726
f fa : α → α
fb : β → β
x y : α
m✝ n✝ m n : ℕ
hm : m < minimalPeriod f x
hmn : (f^[m]) x = (f^[n]) x
hmn' : n < m
⊢ False

tactic: exact
  ((IsPeriodicPt.minimalPeriod_le (tsub_pos_of_lt hmn')
            (isPeriodicPt_of_mem_periodicPts_of_isPeriodicPt_iterate
              (minimalPeriod_pos_iff_mem_periodicPts.1 ((zero_le m).trans_lt hm)) hmn)).trans
        (Nat.sub_le m n)).not_lt
    hm
state_before: α : Type u_1
β : Type ?u.23726
f fa : α → α
fb : β → β
x y : α
m✝ n✝ m n : ℕ
hm : m < minimalPeriod f x
hmn : (f^[m - n]) ((f^[n]) x) = (f^[n]) x
hmn' : n < m
⊢ False
Theorem: singleton_mem_nhdsWithin_of_mem_discrete
File: Mathlib/Topology/Separation.lean

tactic: have : ({⟨x, hx⟩} : Set s) ∈ 𝓝 (⟨x, hx⟩ : s) := by simp [nhds_discrete]
state_before: α : Type u
β : Type v
inst✝¹ : TopologicalSpace α
s : Set α
inst✝ : DiscreteTopology ↑s
x : α
hx : x ∈ s
⊢ {x} ∈ 𝓝[s] x

tactic: simpa only [nhdsWithin_eq_map_subtype_coe hx, image_singleton] using
  @image_mem_map _ _ _ ((↑) : s → α) _ this
state_before: α : Type u
β : Type v
inst✝¹ : TopologicalSpace α
s : Set α
inst✝ : DiscreteTopology ↑s
x : α
hx : x ∈ s
this : {{ val := x, property := hx }} ∈ 𝓝 { val := x, property := hx }
⊢ {x} ∈ 𝓝[s] x

tactic: simp [nhds_discrete]
state_before: α : Type u
β : Type v
inst✝¹ : TopologicalSpace α
s : Set α
inst✝ : DiscreteTopology ↑s
x : α
hx : x ∈ s
⊢ {{ val := x, property := hx }} ∈ 𝓝 { val := x, property := hx }
Theorem: SimpleGraph.Walk.reverseAux_eq_reverse_append
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: simp [reverse]
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v w : V
p : Walk G u v
q : Walk G u w
⊢ Walk.reverseAux p q = append (reverse p) q
Theorem: FirstOrder.Language.Theory.CompleteType.iInter_setOf_subset
File: Mathlib/ModelTheory/Types.lean

tactic: ext
state_before: L : Language
T : Theory L
α : Type w
ι : Type u_1
S : ι → Theory (L[[α]])
⊢ (⋂ (i : ι), {p | S i ⊆ ↑p}) = {p | (⋃ (i : ι), S i) ⊆ ↑p}

tactic: simp only [mem_iInter, mem_setOf_eq, iUnion_subset_iff]
state_before: case h
L : Language
T : Theory L
α : Type w
ι : Type u_1
S : ι → Theory (L[[α]])
x✝ : CompleteType T α
⊢ (x✝ ∈ ⋂ (i : ι), {p | S i ⊆ ↑p}) ↔ x✝ ∈ {p | (⋃ (i : ι), S i) ⊆ ↑p}
Theorem: Ring.inverse_mul_eq_iff_eq_mul
File: Mathlib/Algebra/GroupWithZero/Units/Basic.lean

tactic: rw [← h1, mul_inverse_cancel_left _ _ h]
state_before: α : Type ?u.8217
M₀ : Type u_1
G₀ : Type ?u.8223
M₀' : Type ?u.8226
G₀' : Type ?u.8229
F : Type ?u.8232
F' : Type ?u.8235
inst✝ : MonoidWithZero M₀
x y z : M₀
h : IsUnit x
h1 : inverse x * y = z
⊢ y = x * z

tactic: rw [h1, inverse_mul_cancel_left _ _ h]
state_before: α : Type ?u.8217
M₀ : Type u_1
G₀ : Type ?u.8223
M₀' : Type ?u.8226
G₀' : Type ?u.8229
F : Type ?u.8232
F' : Type ?u.8235
inst✝ : MonoidWithZero M₀
x y z : M₀
h : IsUnit x
h1 : y = x * z
⊢ inverse x * y = z
Theorem: Fintype.card_le_one_iff
File: Mathlib/Data/Fintype/Card.lean

tactic: let ⟨x, hx⟩ := card_eq_one_iff.1 ha.symm
state_before: α : Type u_1
β : Type ?u.22499
γ : Type ?u.22502
inst✝¹ : Fintype α
inst✝ : Fintype β
n : ℕ := card α
hn : n = card α
ha : 1 = card α
_h : card α ≤ 1
a b : α
⊢ a = b

tactic: rw [hx a, hx b]
state_before: α : Type u_1
β : Type ?u.22499
γ : Type ?u.22502
inst✝¹ : Fintype α
inst✝ : Fintype β
n : ℕ := card α
hn : n = card α
ha : 1 = card α
_h : card α ≤ 1
a b x : α
hx : ∀ (y : α), y = x
⊢ a = b

tactic: rw [← ha] at h
state_before: α : Type u_1
β : Type ?u.22499
γ : Type ?u.22502
inst✝¹ : Fintype α
inst✝ : Fintype β
n✝ : ℕ := card α
hn : n✝ = card α
n : ℕ
ha : n + 2 = card α
h : card α ≤ 1
⊢ False

tactic: cases h with | step h => cases h; done
state_before: α : Type u_1
β : Type ?u.22499
γ : Type ?u.22502
inst✝¹ : Fintype α
inst✝ : Fintype β
n✝ : ℕ := card α
hn : n✝ = card α
n : ℕ
ha : n + 2 = card α
h : n + 2 ≤ 1
⊢ False

tactic: cases h
state_before: case step
α : Type u_1
β : Type ?u.22499
γ : Type ?u.22502
inst✝¹ : Fintype α
inst✝ : Fintype β
n✝ : ℕ := card α
hn : n✝ = card α
n : ℕ
ha : n + 2 = card α
h : Nat.le (n + 2) 0
⊢ False
Theorem: Submodule.basisOfPid_bot
File: Mathlib/LinearAlgebra/FreeModule/PID.lean

tactic: obtain ⟨n, b'⟩ := Submodule.basisOfPid b ⊥
state_before: ι✝ : Type ?u.139339
R : Type u_2
inst✝⁵ : CommRing R
inst✝⁴ : IsDomain R
inst✝³ : IsPrincipalIdealRing R
M : Type u_3
inst✝² : AddCommGroup M
inst✝¹ : Module R M
b✝ : ι✝ → M
ι : Type u_1
inst✝ : Finite ι
b : Basis ι R M
⊢ basisOfPid b ⊥ = { fst := 0, snd := Basis.empty { x // x ∈ ⊥ } }

tactic: let e : Fin n ≃ Fin 0 := b'.indexEquiv (Basis.empty _ : Basis (Fin 0) R (⊥ : Submodule R M))
state_before: case mk
ι✝ : Type ?u.139339
R : Type u_2
inst✝⁵ : CommRing R
inst✝⁴ : IsDomain R
inst✝³ : IsPrincipalIdealRing R
M : Type u_3
inst✝² : AddCommGroup M
inst✝¹ : Module R M
b✝ : ι✝ → M
ι : Type u_1
inst✝ : Finite ι
b : Basis ι R M
n : ℕ
b' : Basis (Fin n) R { x // x ∈ ⊥ }
⊢ { fst := n, snd := b' } = { fst := 0, snd := Basis.empty { x // x ∈ ⊥ } }

tactic: obtain rfl : n = 0 := by simpa using Fintype.card_eq.mpr ⟨e⟩
state_before: case mk
ι✝ : Type ?u.139339
R : Type u_2
inst✝⁵ : CommRing R
inst✝⁴ : IsDomain R
inst✝³ : IsPrincipalIdealRing R
M : Type u_3
inst✝² : AddCommGroup M
inst✝¹ : Module R M
b✝ : ι✝ → M
ι : Type u_1
inst✝ : Finite ι
b : Basis ι R M
n : ℕ
b' : Basis (Fin n) R { x // x ∈ ⊥ }
e : Fin n ≃ Fin 0 := Basis.indexEquiv b' (Basis.empty { x // x ∈ ⊥ })
⊢ { fst := n, snd := b' } = { fst := 0, snd := Basis.empty { x // x ∈ ⊥ } }

tactic: exact Sigma.eq rfl (Basis.eq_of_apply_eq <| finZeroElim)
state_before: case mk
ι✝ : Type ?u.139339
R : Type u_2
inst✝⁵ : CommRing R
inst✝⁴ : IsDomain R
inst✝³ : IsPrincipalIdealRing R
M : Type u_3
inst✝² : AddCommGroup M
inst✝¹ : Module R M
b✝ : ι✝ → M
ι : Type u_1
inst✝ : Finite ι
b : Basis ι R M
b' : Basis (Fin 0) R { x // x ∈ ⊥ }
e : Fin 0 ≃ Fin 0 := Basis.indexEquiv b' (Basis.empty { x // x ∈ ⊥ })
⊢ { fst := 0, snd := b' } = { fst := 0, snd := Basis.empty { x // x ∈ ⊥ } }

tactic: simpa using Fintype.card_eq.mpr ⟨e⟩
state_before: ι✝ : Type ?u.139339
R : Type u_2
inst✝⁵ : CommRing R
inst✝⁴ : IsDomain R
inst✝³ : IsPrincipalIdealRing R
M : Type u_3
inst✝² : AddCommGroup M
inst✝¹ : Module R M
b✝ : ι✝ → M
ι : Type u_1
inst✝ : Finite ι
b : Basis ι R M
n : ℕ
b' : Basis (Fin n) R { x // x ∈ ⊥ }
e : Fin n ≃ Fin 0 := Basis.indexEquiv b' (Basis.empty { x // x ∈ ⊥ })
⊢ n = 0
Theorem: ProbabilityTheory.kernel.ext_fun
File: Mathlib/Probability/Kernel/Basic.lean

tactic: ext a s
state_before: α : Type u_1
β : Type u_2
ι : Type ?u.362955
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ η : { x // x ∈ kernel α β }
h : ∀ (a : α) (f : β → ℝ≥0∞), Measurable f → (∫⁻ (b : β), f b ∂↑κ a) = ∫⁻ (b : β), f b ∂↑η a
⊢ κ = η

tactic: intro hs
state_before: case h.h
α : Type u_1
β : Type u_2
ι : Type ?u.362955
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ η : { x // x ∈ kernel α β }
h : ∀ (a : α) (f : β → ℝ≥0∞), Measurable f → (∫⁻ (b : β), f b ∂↑κ a) = ∫⁻ (b : β), f b ∂↑η a
a : α
s : Set β
⊢ MeasurableSet s → ↑↑(↑κ a) s = ↑↑(↑η a) s

tactic: specialize h a (s.indicator fun _ => 1) (Measurable.indicator measurable_const hs)
state_before: case h.h
α : Type u_1
β : Type u_2
ι : Type ?u.362955
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ η : { x // x ∈ kernel α β }
h : ∀ (a : α) (f : β → ℝ≥0∞), Measurable f → (∫⁻ (b : β), f b ∂↑κ a) = ∫⁻ (b : β), f b ∂↑η a
a : α
s : Set β
hs : MeasurableSet s
⊢ ↑↑(↑κ a) s = ↑↑(↑η a) s

tactic: simp_rw [lintegral_indicator_const hs, one_mul] at h
state_before: case h.h
α : Type u_1
β : Type u_2
ι : Type ?u.362955
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ η : { x // x ∈ kernel α β }
a : α
s : Set β
hs : MeasurableSet s
h : (∫⁻ (b : β), Set.indicator s (fun x => 1) b ∂↑κ a) = ∫⁻ (b : β), Set.indicator s (fun x => 1) b ∂↑η a
⊢ ↑↑(↑κ a) s = ↑↑(↑η a) s

tactic: rw [h]
state_before: case h.h
α : Type u_1
β : Type u_2
ι : Type ?u.362955
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ η : { x // x ∈ kernel α β }
a : α
s : Set β
hs : MeasurableSet s
h : ↑↑(↑κ a) s = ↑↑(↑η a) s
⊢ ↑↑(↑κ a) s = ↑↑(↑η a) s