tasksource/leandojo huggingface dataset:
Theorem: IsMulHom.to_isMonoidHom
File: Mathlib/Deprecated/Group.lean

tactic: rw [← hf.map_mul, one_mul]
state_before: α : Type u
β : Type v
inst✝¹ : MulOneClass α
inst✝ : Group β
f : α → β
hf : IsMulHom f
⊢ ?m.14380 hf * f 1 = ?m.14380 hf
Theorem: Matrix.one_eq_pi_single
File: Mathlib/Data/Matrix/Basic.lean

tactic: simp only [one_apply, Pi.single_apply, eq_comm]
state_before: l : Type ?u.78390
m : Type ?u.78393
n : Type u_1
o : Type ?u.78399
m' : o → Type ?u.78404
n' : o → Type ?u.78409
R : Type ?u.78412
S : Type ?u.78415
α : Type v
β : Type w
γ : Type ?u.78422
inst✝² : DecidableEq n
inst✝¹ : Zero α
inst✝ : One α
i j : n
⊢ OfNat.ofNat 1 i j = Pi.single i 1 j
Theorem: Inducing.isClosed_iff
File: Mathlib/Topology/Maps.lean

tactic: rw [hf.induced, isClosed_induced_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.5624
δ : Type ?u.5627
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
hf : Inducing f
s : Set α
⊢ IsClosed s ↔ ∃ t, IsClosed t ∧ f ⁻¹' t = s
Theorem: Cardinal.zero_powerlt
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: apply (powerlt_le.2 fun c _ => zero_power_le _).antisymm
state_before: α β : Type u
a : Cardinal
h : a ≠ 0
⊢ 0 ^< a = 1

tactic: rw [← power_zero]
state_before: α β : Type u
a : Cardinal
h : a ≠ 0
⊢ 1 ≤ 0 ^< a

tactic: exact le_powerlt 0 (pos_iff_ne_zero.2 h)
state_before: α β : Type u
a : Cardinal
h : a ≠ 0
⊢ ?m.690119 ^ 0 ≤ 0 ^< a

α β : Type u
a : Cardinal
h : a ≠ 0
⊢ Cardinal
Theorem: ProbabilityTheory.cond_add_cond_compl_eq
File: Mathlib/Probability/ConditionalProbability.lean

tactic: rw [cond_mul_eq_inter μ hms hcs, cond_mul_eq_inter μ hms.compl hcs', Set.inter_comm _ t,
  Set.inter_comm _ t]
state_before: Ω : Type u_1
m : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
s t : Set Ω
inst✝ : IsFiniteMeasure μ
hms : MeasurableSet s
hcs : ↑↑μ s ≠ 0
hcs' : ↑↑μ (sᶜ) ≠ 0
⊢ ↑↑(μ[|s]) t * ↑↑μ s + ↑↑(μ[|sᶜ]) t * ↑↑μ (sᶜ) = ↑↑μ t

tactic: exact measure_inter_add_diff t hms
state_before: Ω : Type u_1
m : MeasurableSpace Ω
μ : MeasureTheory.Measure Ω
s t : Set Ω
inst✝ : IsFiniteMeasure μ
hms : MeasurableSet s
hcs : ↑↑μ s ≠ 0
hcs' : ↑↑μ (sᶜ) ≠ 0
⊢ ↑↑μ (t ∩ s) + ↑↑μ (t ∩ sᶜ) = ↑↑μ t
Theorem: UniformContinuous₂.tendstoUniformly
File: Mathlib/Topology/UniformSpace/UniformConvergence.lean

tactic: rwa [univ_prod_univ, uniformContinuousOn_univ]
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝² : UniformSpace β
F : ι → α → β
f✝ : α → β
s s' : Set α
x✝ : α
p : Filter ι
p' : Filter α
g : ι → α
inst✝¹ : UniformSpace α
inst✝ : UniformSpace γ
f : α → β → γ
h : UniformContinuous₂ f
x : α
⊢ UniformContinuousOn (↿f) (univ ×ˢ univ)
Theorem: factorization_pow
File: Mathlib/RingTheory/UniqueFactorizationDomain.lean

tactic: ext
state_before: α : Type u_1
inst✝³ : CancelCommMonoidWithZero α
inst✝² : UniqueFactorizationMonoid α
inst✝¹ : NormalizationMonoid α
inst✝ : DecidableEq α
x : α
n : ℕ
⊢ factorization (x ^ n) = n • factorization x

tactic: simp [factorization]
state_before: case h
α : Type u_1
inst✝³ : CancelCommMonoidWithZero α
inst✝² : UniqueFactorizationMonoid α
inst✝¹ : NormalizationMonoid α
inst✝ : DecidableEq α
x : α
n : ℕ
a✝ : α
⊢ ↑(factorization (x ^ n)) a✝ = ↑(n • factorization x) a✝
Theorem: Pmf.filter_apply_eq_zero_iff
File: Mathlib/Probability/ProbabilityMassFunction/Constructions.lean

tactic: erw [apply_eq_zero_iff, support_filter, Set.mem_inter_iff, not_and_or]
state_before: α : Type u_1
β : Type ?u.163622
γ : Type ?u.163625
p : Pmf α
s : Set α
h : ∃ a, a ∈ s ∧ a ∈ support p
a : α
⊢ ↑(filter p s h) a = 0 ↔ ¬a ∈ s ∨ ¬a ∈ support p
Theorem: Metric.Sum.dist_comm
File: Mathlib/Topology/MetricSpace/Gluing.lean

tactic: cases x <;> cases y <;> simp [Sum.dist, _root_.dist_comm, add_comm, add_left_comm, add_assoc]
state_before: X : Type u
Y : Type v
Z : Type w
inst✝¹ : MetricSpace X
inst✝ : MetricSpace Y
x y : X ⊕ Y
⊢ Sum.dist x y = Sum.dist y x
Theorem: Nat.sum_four_squares
File: Mathlib/NumberTheory/SumFourSquares.lean

tactic: induction n using Nat.recOnMul with
| h0 => exact ⟨0, 0, 0, 0, rfl⟩
| h1 => exact ⟨1, 0, 0, 0, rfl⟩
| hp p hp => exact hp.sum_four_squares
| h m n hm hn =>
  rcases hm with ⟨a, b, c, d, rfl⟩
  rcases hn with ⟨w, x, y, z, rfl⟩
  exact ⟨_, _, _, _, euler_four_squares _ _ _ _ _ _ _ _⟩
state_before: n : ℕ
⊢ ∃ a b c d, a ^ 2 + b ^ 2 + c ^ 2 + d ^ 2 = n

tactic: exact ⟨0, 0, 0, 0, rfl⟩
state_before: case h0

⊢ ∃ a b c d, a ^ 2 + b ^ 2 + c ^ 2 + d ^ 2 = 0

tactic: exact ⟨1, 0, 0, 0, rfl⟩
state_before: case h1

⊢ ∃ a b c d, a ^ 2 + b ^ 2 + c ^ 2 + d ^ 2 = 1

tactic: exact hp.sum_four_squares
state_before: case hp
p : ℕ
hp : Prime p
⊢ ∃ a b c d, a ^ 2 + b ^ 2 + c ^ 2 + d ^ 2 = p

tactic: rcases hm with ⟨a, b, c, d, rfl⟩
state_before: case h
m n : ℕ
hm : ∃ a b c d, a ^ 2 + b ^ 2 + c ^ 2 + d ^ 2 = m
hn : ∃ a b c d, a ^ 2 + b ^ 2 + c ^ 2 + d ^ 2 = n
⊢ ∃ a b c d, a ^ 2 + b ^ 2 + c ^ 2 + d ^ 2 = m * n

tactic: rcases hn with ⟨w, x, y, z, rfl⟩
state_before: case h.intro.intro.intro.intro
n : ℕ
hn : ∃ a b c d, a ^ 2 + b ^ 2 + c ^ 2 + d ^ 2 = n
a b c d : ℕ
⊢ ∃ a_1 b_1 c_1 d_1, a_1 ^ 2 + b_1 ^ 2 + c_1 ^ 2 + d_1 ^ 2 = (a ^ 2 + b ^ 2 + c ^ 2 + d ^ 2) * n

tactic: exact ⟨_, _, _, _, euler_four_squares _ _ _ _ _ _ _ _⟩
state_before: case h.intro.intro.intro.intro.intro.intro.intro.intro
a b c d w x y z : ℕ
⊢ ∃ a_1 b_1 c_1 d_1,
    a_1 ^ 2 + b_1 ^ 2 + c_1 ^ 2 + d_1 ^ 2 = (a ^ 2 + b ^ 2 + c ^ 2 + d ^ 2) * (w ^ 2 + x ^ 2 + y ^ 2 + z ^ 2)
Theorem: map_natCast'
File: Mathlib/Data/Nat/Cast/Basic.lean

tactic: simp [map_zero f]
state_before: α : Type ?u.41556
β : Type ?u.41559
A✝ : Type ?u.41562
B : Type u_3
F : Type u_2
inst✝³ : AddMonoidWithOne B
inst✝² : AddMonoidWithOne A✝
A : Type u_1
inst✝¹ : AddMonoidWithOne A
inst✝ : AddMonoidHomClass F A B
f : F
h : ↑f 1 = 1
⊢ ↑f ↑0 = ↑0

tactic: rw [Nat.cast_add, map_add, Nat.cast_add, map_natCast' f h n, Nat.cast_one, h, Nat.cast_one]
state_before: α : Type ?u.41556
β : Type ?u.41559
A✝ : Type ?u.41562
B : Type u_3
F : Type u_2
inst✝³ : AddMonoidWithOne B
inst✝² : AddMonoidWithOne A✝
A : Type u_1
inst✝¹ : AddMonoidWithOne A
inst✝ : AddMonoidHomClass F A B
f : F
h : ↑f 1 = 1
n : ℕ
⊢ ↑f ↑(n + 1) = ↑(n + 1)
Theorem: Submodule.mem_annihilator_span_singleton
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: simp [mem_annihilator_span]
state_before: R : Type u
M : Type v
F : Type ?u.20043
G : Type ?u.20046
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
I J : Ideal R
N P : Submodule R M
g : M
r : R
⊢ r ∈ annihilator (span R {g}) ↔ r • g = 0
Theorem: isCompactOperator_iff_exists_mem_nhds_isCompact_closure_image
File: Mathlib/Analysis/NormedSpace/CompactOperator.lean

tactic: rw [isCompactOperator_iff_exists_mem_nhds_image_subset_compact]
state_before: R₁ : Type ?u.2937
R₂ : Type ?u.2940
inst✝⁵ : Semiring R₁
inst✝⁴ : Semiring R₂
σ₁₂ : R₁ →+* R₂
M₁ : Type u_2
M₂ : Type u_1
inst✝³ : TopologicalSpace M₁
inst✝² : AddCommMonoid M₁
inst✝¹ : TopologicalSpace M₂
inst✝ : T2Space M₂
f : M₁ → M₂
⊢ IsCompactOperator f ↔ ∃ V, V ∈ 𝓝 0 ∧ IsCompact (closure (f '' V))

tactic: exact
  ⟨fun ⟨V, hV, K, hK, hKV⟩ => ⟨V, hV, isCompact_closure_of_subset_compact hK hKV⟩,
    fun ⟨V, hV, hVc⟩ => ⟨V, hV, closure (f '' V), hVc, subset_closure⟩⟩
state_before: R₁ : Type ?u.2937
R₂ : Type ?u.2940
inst✝⁵ : Semiring R₁
inst✝⁴ : Semiring R₂
σ₁₂ : R₁ →+* R₂
M₁ : Type u_2
M₂ : Type u_1
inst✝³ : TopologicalSpace M₁
inst✝² : AddCommMonoid M₁
inst✝¹ : TopologicalSpace M₂
inst✝ : T2Space M₂
f : M₁ → M₂
⊢ (∃ V, V ∈ 𝓝 0 ∧ ∃ K, IsCompact K ∧ f '' V ⊆ K) ↔ ∃ V, V ∈ 𝓝 0 ∧ IsCompact (closure (f '' V))
Theorem: Order.not_isSuccLimit
File: Mathlib/Order/SuccPred/Limit.lean

tactic: simp
state_before: α : Type u_1
inst✝³ : PartialOrder α
inst✝² : SuccOrder α
a b : α
C : α → Sort ?u.10097
inst✝¹ : IsSuccArchimedean α
inst✝ : NoMinOrder α
⊢ ¬IsSuccLimit a
Theorem: Nat.ArithmeticFunction.IsMultiplicative.pmul
File: Mathlib/NumberTheory/ArithmeticFunction.lean

tactic: simp [hf, hg]
state_before: R : Type u_1
inst✝ : CommSemiring R
f g : ArithmeticFunction R
hf : IsMultiplicative f
hg : IsMultiplicative g
⊢ ↑(ArithmeticFunction.pmul f g) 1 = 1

tactic: simp only [pmul_apply, hf.map_mul_of_coprime cop, hg.map_mul_of_coprime cop]
state_before: R : Type u_1
inst✝ : CommSemiring R
f g : ArithmeticFunction R
hf : IsMultiplicative f
hg : IsMultiplicative g
m n : ℕ
cop : coprime m n
⊢ ↑(ArithmeticFunction.pmul f g) (m * n) = ↑(ArithmeticFunction.pmul f g) m * ↑(ArithmeticFunction.pmul f g) n

tactic: ring
state_before: R : Type u_1
inst✝ : CommSemiring R
f g : ArithmeticFunction R
hf : IsMultiplicative f
hg : IsMultiplicative g
m n : ℕ
cop : coprime m n
⊢ ↑f m * ↑f n * (↑g m * ↑g n) = ↑f m * ↑g m * (↑f n * ↑g n)
Theorem: mem_leftCoset_iff
File: Mathlib/GroupTheory/Coset.lean

tactic: simp [Eq.symm, hb]
state_before: α : Type u_1
inst✝ : Group α
s : Set α
x a : α
x✝ : x ∈ a *l s
b : α
hb : b ∈ s
Eq : (fun x => a * x) b = x
⊢ a⁻¹ * x ∈ s

tactic: simp
state_before: α : Type u_1
inst✝ : Group α
s : Set α
x a : α
h : a⁻¹ * x ∈ s
⊢ (fun x => a * x) (a⁻¹ * x) = x
Theorem: Multiset.nodup_sup_iff
File: Mathlib/Data/Multiset/Lattice.lean

tactic: induction' m using Multiset.induction_on with _ _ h
state_before: α✝ : Type ?u.22553
inst✝³ : SemilatticeSup α✝
inst✝² : OrderBot α✝
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : DecidableEq α
m : Multiset (Multiset α)
⊢ Nodup (sup m) ↔ ∀ (a : Multiset α), a ∈ m → Nodup a

tactic: simp
state_before: case empty
α✝ : Type ?u.22553
inst✝³ : SemilatticeSup α✝
inst✝² : OrderBot α✝
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : DecidableEq α
⊢ Nodup (sup 0) ↔ ∀ (a : Multiset α), a ∈ 0 → Nodup a

tactic: simp [h]
state_before: case cons
α✝ : Type ?u.22553
inst✝³ : SemilatticeSup α✝
inst✝² : OrderBot α✝
inst✝¹ : DecidableEq α✝
α : Type u_1
inst✝ : DecidableEq α
a✝ : Multiset α
s✝ : Multiset (Multiset α)
h : Nodup (sup s✝) ↔ ∀ (a : Multiset α), a ∈ s✝ → Nodup a
⊢ Nodup (sup (a✝ ::ₘ s✝)) ↔ ∀ (a : Multiset α), a ∈ a✝ ::ₘ s✝ → Nodup a
Theorem: measurable_update
File: Mathlib/MeasureTheory/MeasurableSpace.lean

tactic: refine measurable_pi_lambda _ fun x => ?_
state_before: α : Type ?u.103718
β : Type ?u.103721
γ : Type ?u.103724
δ : Type u_1
δ' : Type ?u.103730
ι : Sort uι
s t u : Set α
π : δ → Type u_2
inst✝³ : MeasurableSpace α
inst✝² : (a : δ) → MeasurableSpace (π a)
inst✝¹ : MeasurableSpace γ
f : (a : δ) → π a
a : δ
inst✝ : DecidableEq δ
⊢ Measurable (update f a)

tactic: rcases eq_or_ne x a with (rfl | hx)
state_before: α : Type ?u.103718
β : Type ?u.103721
γ : Type ?u.103724
δ : Type u_1
δ' : Type ?u.103730
ι : Sort uι
s t u : Set α
π : δ → Type u_2
inst✝³ : MeasurableSpace α
inst✝² : (a : δ) → MeasurableSpace (π a)
inst✝¹ : MeasurableSpace γ
f : (a : δ) → π a
a : δ
inst✝ : DecidableEq δ
x : δ
⊢ Measurable fun c => update f a c x

tactic: simpa only [update_same] using measurable_id
state_before: case inl
α : Type ?u.103718
β : Type ?u.103721
γ : Type ?u.103724
δ : Type u_1
δ' : Type ?u.103730
ι : Sort uι
s t u : Set α
π : δ → Type u_2
inst✝³ : MeasurableSpace α
inst✝² : (a : δ) → MeasurableSpace (π a)
inst✝¹ : MeasurableSpace γ
f : (a : δ) → π a
inst✝ : DecidableEq δ
x : δ
⊢ Measurable fun c => update f x c x

tactic: simpa only [update_noteq hx] using measurable_const
state_before: case inr
α : Type ?u.103718
β : Type ?u.103721
γ : Type ?u.103724
δ : Type u_1
δ' : Type ?u.103730
ι : Sort uι
s t u : Set α
π : δ → Type u_2
inst✝³ : MeasurableSpace α
inst✝² : (a : δ) → MeasurableSpace (π a)
inst✝¹ : MeasurableSpace γ
f : (a : δ) → π a
a : δ
inst✝ : DecidableEq δ
x : δ
hx : x ≠ a
⊢ Measurable fun c => update f a c x
Theorem: Nat.eleven_dvd_of_palindrome
File: Mathlib/Data/Nat/Digits.lean

tactic: let dig := (digits 10 n).map (Coe.coe : ℕ → ℤ)
state_before: n : ℕ
p : List.Palindrome (digits 10 n)
h : Even (List.length (digits 10 n))
⊢ 11 ∣ n

tactic: replace h : Even dig.length := by rwa [List.length_map]
state_before: n : ℕ
p : List.Palindrome (digits 10 n)
h : Even (List.length (digits 10 n))
dig : List ℤ := List.map Coe.coe (digits 10 n)
⊢ 11 ∣ n

tactic: refine' eleven_dvd_iff.2 ⟨0, (_ : dig.alternatingSum = 0)⟩
state_before: n : ℕ
p : List.Palindrome (digits 10 n)
dig : List ℤ := List.map Coe.coe (digits 10 n)
h : Even (List.length dig)
⊢ 11 ∣ n

tactic: have := dig.alternatingSum_reverse
state_before: n : ℕ
p : List.Palindrome (digits 10 n)
dig : List ℤ := List.map Coe.coe (digits 10 n)
h : Even (List.length dig)
⊢ List.alternatingSum dig = 0

tactic: rw [(p.map _).reverse_eq, _root_.pow_succ, h.neg_one_pow, mul_one, neg_one_zsmul] at this
state_before: n : ℕ
p : List.Palindrome (digits 10 n)
dig : List ℤ := List.map Coe.coe (digits 10 n)
h : Even (List.length dig)
this : List.alternatingSum (List.reverse dig) = (-1) ^ (List.length dig + 1) • List.alternatingSum dig
⊢ List.alternatingSum dig = 0

tactic: exact eq_zero_of_neg_eq this.symm
state_before: n : ℕ
p : List.Palindrome (digits 10 n)
dig : List ℤ := List.map Coe.coe (digits 10 n)
h : Even (List.length dig)
this : List.alternatingSum (List.map Coe.coe (digits 10 n)) = -List.alternatingSum dig
⊢ List.alternatingSum dig = 0

tactic: rwa [List.length_map]
state_before: n : ℕ
p : List.Palindrome (digits 10 n)
h : Even (List.length (digits 10 n))
dig : List ℤ := List.map Coe.coe (digits 10 n)
⊢ Even (List.length dig)
Theorem: Fintype.card_fin_even
File: Mathlib/Data/Fintype/Parity.lean

tactic: rw [Fintype.card_fin]
state_before: α : Type ?u.497
n : ℕ
⊢ Even (card (Fin (bit0 n)))

tactic: exact even_bit0 _
state_before: α : Type ?u.497
n : ℕ
⊢ Even (bit0 n)
Theorem: IsMulHom.comp
File: Mathlib/Deprecated/Group.lean

tactic: simp only [Function.comp, hf.map_mul, hg.map_mul]
state_before: α : Type u
β : Type v
inst✝² : Mul α
inst✝¹ : Mul β
γ : Type u_1
inst✝ : Mul γ
f : α → β
g : β → γ
hf : IsMulHom f
hg : IsMulHom g
x y : α
⊢ (g ∘ f) (x * y) = (g ∘ f) x * (g ∘ f) y
Theorem: IsLocalization.AtPrime.not_isField
File: Mathlib/RingTheory/DedekindDomain/Dvr.lean

tactic: intro h
state_before: R : Type ?u.41349
A : Type u_1
K : Type ?u.41355
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : IsDomain A
inst✝³ : Field K
P : Ideal A
hP : P ≠ ⊥
pP : Ideal.IsPrime P
Aₘ : Type u_2
inst✝² : CommRing Aₘ
inst✝¹ : Algebra A Aₘ
inst✝ : IsLocalization.AtPrime Aₘ P
⊢ ¬IsField Aₘ

tactic: letI := h.toField
state_before: R : Type ?u.41349
A : Type u_1
K : Type ?u.41355
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : IsDomain A
inst✝³ : Field K
P : Ideal A
hP : P ≠ ⊥
pP : Ideal.IsPrime P
Aₘ : Type u_2
inst✝² : CommRing Aₘ
inst✝¹ : Algebra A Aₘ
inst✝ : IsLocalization.AtPrime Aₘ P
h : IsField Aₘ
⊢ False

tactic: obtain ⟨x, x_mem, x_ne⟩ := P.ne_bot_iff.mp hP
state_before: R : Type ?u.41349
A : Type u_1
K : Type ?u.41355
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : IsDomain A
inst✝³ : Field K
P : Ideal A
hP : P ≠ ⊥
pP : Ideal.IsPrime P
Aₘ : Type u_2
inst✝² : CommRing Aₘ
inst✝¹ : Algebra A Aₘ
inst✝ : IsLocalization.AtPrime Aₘ P
h : IsField Aₘ
this : Field Aₘ := IsField.toField h
⊢ False

tactic: exact
  (LocalRing.maximalIdeal.isMaximal _).ne_top
    (Ideal.eq_top_of_isUnit_mem _
      ((IsLocalization.AtPrime.to_map_mem_maximal_iff Aₘ P _).mpr x_mem)
      (isUnit_iff_ne_zero.mpr
        ((map_ne_zero_iff (algebraMap A Aₘ)
              (IsLocalization.injective Aₘ P.primeCompl_le_nonZeroDivisors)).mpr
          x_ne)))
state_before: case intro.intro
R : Type ?u.41349
A : Type u_1
K : Type ?u.41355
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : IsDomain A
inst✝³ : Field K
P : Ideal A
hP : P ≠ ⊥
pP : Ideal.IsPrime P
Aₘ : Type u_2
inst✝² : CommRing Aₘ
inst✝¹ : Algebra A Aₘ
inst✝ : IsLocalization.AtPrime Aₘ P
h : IsField Aₘ
this : Field Aₘ := IsField.toField h
x : A
x_mem : x ∈ P
x_ne : x ≠ 0
⊢ False
Theorem: MeasureTheory.Measure.measurable_dirac
File: Mathlib/MeasureTheory/Measure/GiryMonad.lean

tactic: refine' measurable_of_measurable_coe _ fun s hs => _
state_before: α : Type u_1
β : Type ?u.3729
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
⊢ Measurable dirac

tactic: simp_rw [dirac_apply' _ hs]
state_before: α : Type u_1
β : Type ?u.3729
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s : Set α
hs : MeasurableSet s
⊢ Measurable fun b => ↑↑(dirac b) s

tactic: exact measurable_one.indicator hs
state_before: α : Type u_1
β : Type ?u.3729
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
s : Set α
hs : MeasurableSet s
⊢ Measurable fun b => indicator s 1 b
Theorem: MeasureTheory.set_integral_prod_mul
File: Mathlib/MeasureTheory/Constructions/Prod/Integral.lean

tactic: rw [← Measure.prod_restrict s t]
state_before: α : Type u_2
α' : Type ?u.2467745
β : Type u_3
β' : Type ?u.2467751
γ : Type ?u.2467754
E : Type ?u.2467757
inst✝¹³ : MeasurableSpace α
inst✝¹² : MeasurableSpace α'
inst✝¹¹ : MeasurableSpace β
inst✝¹⁰ : MeasurableSpace β'
inst✝⁹ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : SigmaFinite ν
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
inst✝⁴ : SigmaFinite μ
E' : Type ?u.2468019
inst✝³ : NormedAddCommGroup E'
inst✝² : CompleteSpace E'
inst✝¹ : NormedSpace ℝ E'
L : Type u_1
inst✝ : IsROrC L
f : α → L
g : β → L
s : Set α
t : Set β
⊢ (∫ (z : α × β) in s ×ˢ t, f z.fst * g z.snd ∂Measure.prod μ ν) = (∫ (x : α) in s, f x ∂μ) * ∫ (y : β) in t, g y ∂ν

tactic: simp only [← Measure.prod_restrict s t, IntegrableOn, integral_prod_mul]
state_before: α : Type u_2
α' : Type ?u.2467745
β : Type u_3
β' : Type ?u.2467751
γ : Type ?u.2467754
E : Type ?u.2467757
inst✝¹³ : MeasurableSpace α
inst✝¹² : MeasurableSpace α'
inst✝¹¹ : MeasurableSpace β
inst✝¹⁰ : MeasurableSpace β'
inst✝⁹ : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : SigmaFinite ν
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : CompleteSpace E
inst✝⁴ : SigmaFinite μ
E' : Type ?u.2468019
inst✝³ : NormedAddCommGroup E'
inst✝² : CompleteSpace E'
inst✝¹ : NormedSpace ℝ E'
L : Type u_1
inst✝ : IsROrC L
f : α → L
g : β → L
s : Set α
t : Set β
⊢ (∫ (z : α × β), f z.fst * g z.snd ∂Measure.prod (Measure.restrict μ s) (Measure.restrict ν t)) =
    (∫ (x : α) in s, f x ∂μ) * ∫ (y : β) in t, g y ∂ν
Theorem: MeasureTheory.exists_subordinate_pairwise_disjoint
File: Mathlib/MeasureTheory/Measure/NullMeasurable.lean

tactic: choose t ht_sub htm ht_eq using fun i => exists_measurable_subset_ae_eq (h i)
state_before: ι : Type u_1
α : Type u_2
β : Type ?u.7332
γ : Type ?u.7335
m0 : MeasurableSpace α
μ : Measure α
s✝ t : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), NullMeasurableSet (s i)
hd : Pairwise (AEDisjoint μ on s)
⊢ ∃ t, (∀ (i : ι), t i ⊆ s i) ∧ (∀ (i : ι), s i =ᵐ[μ] t i) ∧ (∀ (i : ι), MeasurableSet (t i)) ∧ Pairwise (Disjoint on t)

tactic: rcases exists_null_pairwise_disjoint_diff hd with ⟨u, hum, hu₀, hud⟩
state_before: ι : Type u_1
α : Type u_2
β : Type ?u.7332
γ : Type ?u.7335
m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), NullMeasurableSet (s i)
hd : Pairwise (AEDisjoint μ on s)
t : ι → Set α
ht_sub : ∀ (i : ι), t i ⊆ s i
htm : ∀ (i : ι), MeasurableSet (t i)
ht_eq : ∀ (i : ι), t i =ᵐ[μ] s i
⊢ ∃ t, (∀ (i : ι), t i ⊆ s i) ∧ (∀ (i : ι), s i =ᵐ[μ] t i) ∧ (∀ (i : ι), MeasurableSet (t i)) ∧ Pairwise (Disjoint on t)

tactic: exact
  ⟨fun i => t i \ u i, fun i => (diff_subset _ _).trans (ht_sub _), fun i =>
    (ht_eq _).symm.trans (diff_null_ae_eq_self (hu₀ i)).symm, fun i => (htm i).diff (hum i),
    hud.mono fun i j h =>
      h.mono (diff_subset_diff_left (ht_sub i)) (diff_subset_diff_left (ht_sub j))⟩
state_before: case intro.intro.intro
ι : Type u_1
α : Type u_2
β : Type ?u.7332
γ : Type ?u.7335
m0 : MeasurableSpace α
μ : Measure α
s✝ t✝ : Set α
inst✝ : Countable ι
s : ι → Set α
h : ∀ (i : ι), NullMeasurableSet (s i)
hd : Pairwise (AEDisjoint μ on s)
t : ι → Set α
ht_sub : ∀ (i : ι), t i ⊆ s i
htm : ∀ (i : ι), MeasurableSet (t i)
ht_eq : ∀ (i : ι), t i =ᵐ[μ] s i
u : ι → Set α
hum : ∀ (i : ι), MeasurableSet (u i)
hu₀ : ∀ (i : ι), ↑↑μ (u i) = 0
hud : Pairwise (Disjoint on fun i => s i \ u i)
⊢ ∃ t, (∀ (i : ι), t i ⊆ s i) ∧ (∀ (i : ι), s i =ᵐ[μ] t i) ∧ (∀ (i : ι), MeasurableSet (t i)) ∧ Pairwise (Disjoint on t)
Theorem: MeasureTheory.Measure.map_map
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: simp [hf, hg, hs, hg hs, hg.comp hf, ← preimage_comp]
state_before: α : Type u_3
β : Type u_1
γ : Type u_2
δ : Type ?u.214987
ι : Type ?u.214990
R : Type ?u.214993
R' : Type ?u.214996
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t : Set α
g : β → γ
f : α → β
hg : Measurable g
hf : Measurable f
s : Set γ
hs : MeasurableSet s
⊢ ↑↑(map g (map f μ)) s = ↑↑(map (g ∘ f) μ) s
Theorem: Real.sin_pi_div_four
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: trans sin (π / 2 ^ 2)
state_before: x : ℝ
⊢ sin (π / 4) = sqrt 2 / 2

tactic: congr
state_before: x : ℝ
⊢ sin (π / 4) = sin (π / 2 ^ 2)

x : ℝ
⊢ sin (π / 2 ^ 2) = sqrt 2 / 2

tactic: norm_num
state_before: case e_x.e_a
x : ℝ
⊢ 4 = 2 ^ 2

x : ℝ
⊢ sin (π / 2 ^ 2) = sqrt 2 / 2

tactic: simp
state_before: x : ℝ
⊢ sin (π / 2 ^ 2) = sqrt 2 / 2
Theorem: meas_essSup_lt
File: Mathlib/MeasureTheory/Function/EssSup.lean

tactic: simp_rw [← not_le]
state_before: α : Type u_2
β : Type u_1
m : MeasurableSpace α
μ ν : MeasureTheory.Measure α
inst✝³ : ConditionallyCompleteLinearOrder β
x : β
f : α → β
inst✝² : TopologicalSpace β
inst✝¹ : FirstCountableTopology β
inst✝ : OrderTopology β
hf : autoParam (IsBoundedUnder (fun x x_1 => x ≤ x_1) (Measure.ae μ) f) _auto✝
⊢ ↑↑μ {y | essSup f μ < f y} = 0

tactic: exact ae_le_essSup hf
state_before: α : Type u_2
β : Type u_1
m : MeasurableSpace α
μ ν : MeasureTheory.Measure α
inst✝³ : ConditionallyCompleteLinearOrder β
x : β
f : α → β
inst✝² : TopologicalSpace β
inst✝¹ : FirstCountableTopology β
inst✝ : OrderTopology β
hf : autoParam (IsBoundedUnder (fun x x_1 => x ≤ x_1) (Measure.ae μ) f) _auto✝
⊢ ↑↑μ {y | ¬f y ≤ essSup f μ} = 0
Theorem: zpow_mem
File: Mathlib/GroupTheory/Subgroup/Basic.lean

tactic: rw [zpow_ofNat]
state_before: G : Type ?u.5843
G' : Type ?u.5846
inst✝⁴ : Group G
inst✝³ : Group G'
A : Type ?u.5855
inst✝² : AddGroup A
M : Type u_1
S : Type u_2
inst✝¹ : DivInvMonoid M
inst✝ : SetLike S M
hSM : SubgroupClass S M
H K : S
x : M
hx : x ∈ K
n : ℕ
⊢ x ^ ↑n ∈ K

tactic: exact pow_mem hx n
state_before: G : Type ?u.5843
G' : Type ?u.5846
inst✝⁴ : Group G
inst✝³ : Group G'
A : Type ?u.5855
inst✝² : AddGroup A
M : Type u_1
S : Type u_2
inst✝¹ : DivInvMonoid M
inst✝ : SetLike S M
hSM : SubgroupClass S M
H K : S
x : M
hx : x ∈ K
n : ℕ
⊢ x ^ n ∈ K

tactic: rw [zpow_negSucc]
state_before: G : Type ?u.5843
G' : Type ?u.5846
inst✝⁴ : Group G
inst✝³ : Group G'
A : Type ?u.5855
inst✝² : AddGroup A
M : Type u_1
S : Type u_2
inst✝¹ : DivInvMonoid M
inst✝ : SetLike S M
hSM : SubgroupClass S M
H K : S
x : M
hx : x ∈ K
n : ℕ
⊢ x ^ -[n+1] ∈ K

tactic: exact inv_mem (pow_mem hx n.succ)
state_before: G : Type ?u.5843
G' : Type ?u.5846
inst✝⁴ : Group G
inst✝³ : Group G'
A : Type ?u.5855
inst✝² : AddGroup A
M : Type u_1
S : Type u_2
inst✝¹ : DivInvMonoid M
inst✝ : SetLike S M
hSM : SubgroupClass S M
H K : S
x : M
hx : x ∈ K
n : ℕ
⊢ (x ^ (n + 1))⁻¹ ∈ K
Theorem: generateFrom_eq_pi
File: Mathlib/MeasureTheory/Constructions/Pi.lean

tactic: rw [← funext hC, generateFrom_pi_eq h2C]
state_before: ι : Type u_2
ι' : Type ?u.865740
α : ι → Type u_1
inst✝¹ : Finite ι
inst✝ : Finite ι'
h : (i : ι) → MeasurableSpace (α i)
C : (i : ι) → Set (Set (α i))
hC : ∀ (i : ι), generateFrom (C i) = h i
h2C : ∀ (i : ι), IsCountablySpanning (C i)
⊢ generateFrom (Set.pi univ '' Set.pi univ C) = MeasurableSpace.pi
Theorem: Polynomial.eval₂_bit1
File: Mathlib/Data/Polynomial/Eval.lean

tactic: rw [bit1, eval₂_add, eval₂_bit0, eval₂_one, bit1]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
f : R →+* S
x : S
⊢ eval₂ f x (bit1 p) = bit1 (eval₂ f x p)