1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: LieDerivation.maxTrivSubmodule_eq_bot_of_center_eq_bot
File: Mathlib/Algebra/Lie/Derivation/AdjointAction.lean

tactic: refine (LieSubmodule.eq_bot_iff _).mpr fun D hD ↦ ext fun x ↦ ?_
state_before: R : Type u_1
L : Type u_2
inst✝² : CommRing R
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
h : LieAlgebra.center R L = ⊥
⊢ LieModule.maxTrivSubmodule R L (LieDerivation R L L) = ⊥
state_after: R : Type u_1
L : Type u_2
inst✝² : CommRing R
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
h : LieAlgebra.center R L = ⊥
D : LieDerivation R L L
hD : D ∈ LieModule.maxTrivSubmodule R L (LieDerivation R L L)
x : L
⊢ D x = 0 x

tactic: have : ad R L (D x) = 0 := by
  rw [LieModule.mem_maxTrivSubmodule] at hD
  simp [ad_apply_lieDerivation, hD]
state_before: R : Type u_1
L : Type u_2
inst✝² : CommRing R
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
h : LieAlgebra.center R L = ⊥
D : LieDerivation R L L
hD : D ∈ LieModule.maxTrivSubmodule R L (LieDerivation R L L)
x : L
⊢ D x = 0 x
state_after: R : Type u_1
L : Type u_2
inst✝² : CommRing R
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
h : LieAlgebra.center R L = ⊥
D : LieDerivation R L L
hD : D ∈ LieModule.maxTrivSubmodule R L (LieDerivation R L L)
x : L
this : (ad R L) (D x) = 0
⊢ D x = 0 x

tactic: rw [← LieHom.mem_ker, ad_ker_eq_center, h, LieSubmodule.mem_bot] at this
state_before: R : Type u_1
L : Type u_2
inst✝² : CommRing R
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
h : LieAlgebra.center R L = ⊥
D : LieDerivation R L L
hD : D ∈ LieModule.maxTrivSubmodule R L (LieDerivation R L L)
x : L
this : (ad R L) (D x) = 0
⊢ D x = 0 x
state_after: R : Type u_1
L : Type u_2
inst✝² : CommRing R
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
h : LieAlgebra.center R L = ⊥
D : LieDerivation R L L
hD : D ∈ LieModule.maxTrivSubmodule R L (LieDerivation R L L)
x : L
this : D x = 0
⊢ D x = 0 x

tactic: simp [this]
state_before: R : Type u_1
L : Type u_2
inst✝² : CommRing R
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
h : LieAlgebra.center R L = ⊥
D : LieDerivation R L L
hD : D ∈ LieModule.maxTrivSubmodule R L (LieDerivation R L L)
x : L
this : D x = 0
⊢ D x = 0 x
state_after: no goals

tactic: rw [LieModule.mem_maxTrivSubmodule] at hD
state_before: R : Type u_1
L : Type u_2
inst✝² : CommRing R
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
h : LieAlgebra.center R L = ⊥
D : LieDerivation R L L
hD : D ∈ LieModule.maxTrivSubmodule R L (LieDerivation R L L)
x : L
⊢ (ad R L) (D x) = 0
state_after: R : Type u_1
L : Type u_2
inst✝² : CommRing R
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
h : LieAlgebra.center R L = ⊥
D : LieDerivation R L L
hD : ∀ (x : L), ⁅x, D⁆ = 0
x : L
⊢ (ad R L) (D x) = 0

tactic: simp [ad_apply_lieDerivation, hD]
state_before: R : Type u_1
L : Type u_2
inst✝² : CommRing R
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
h : LieAlgebra.center R L = ⊥
D : LieDerivation R L L
hD : ∀ (x : L), ⁅x, D⁆ = 0
x : L
⊢ (ad R L) (D x) = 0
state_after: no goals
Theorem: Filter.tendsto_map'_iff
File: Mathlib/Order/Filter/Basic.lean

tactic: rw [Tendsto, Tendsto, map_map]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
l : Filter α
f : β → γ
g : α → β
x : Filter α
y : Filter γ
⊢ Tendsto f (map g x) y ↔ Tendsto (f ∘ g) x y
state_after: no goals
Theorem: Submonoid.multiset_prod_mem
File: Mathlib/Algebra/Group/Submonoid/Membership.lean

tactic: lift m to Multiset S using hm
state_before: M✝ : Type u_1
A : Type u_2
B : Type u_3
inst✝³ : Monoid M✝
inst✝² : SetLike B M✝
inst✝¹ : SubmonoidClass B M✝
S✝ : B
s : Submonoid M✝
M : Type u_4
inst✝ : CommMonoid M
S : Submonoid M
m : Multiset M
hm : ∀ a ∈ m, a ∈ S
⊢ m.prod ∈ S
state_after: case intro
M✝ : Type u_1
A : Type u_2
B : Type u_3
inst✝³ : Monoid M✝
inst✝² : SetLike B M✝
inst✝¹ : SubmonoidClass B M✝
S✝ : B
s : Submonoid M✝
M : Type u_4
inst✝ : CommMonoid M
S : Submonoid M
m : Multiset ↥S
⊢ (Multiset.map Subtype.val m).prod ∈ S

tactic: rw [← coe_multiset_prod]
state_before: case intro
M✝ : Type u_1
A : Type u_2
B : Type u_3
inst✝³ : Monoid M✝
inst✝² : SetLike B M✝
inst✝¹ : SubmonoidClass B M✝
S✝ : B
s : Submonoid M✝
M : Type u_4
inst✝ : CommMonoid M
S : Submonoid M
m : Multiset ↥S
⊢ (Multiset.map Subtype.val m).prod ∈ S
state_after: case intro
M✝ : Type u_1
A : Type u_2
B : Type u_3
inst✝³ : Monoid M✝
inst✝² : SetLike B M✝
inst✝¹ : SubmonoidClass B M✝
S✝ : B
s : Submonoid M✝
M : Type u_4
inst✝ : CommMonoid M
S : Submonoid M
m : Multiset ↥S
⊢ ↑m.prod ∈ S

tactic: exact m.prod.coe_prop
state_before: case intro
M✝ : Type u_1
A : Type u_2
B : Type u_3
inst✝³ : Monoid M✝
inst✝² : SetLike B M✝
inst✝¹ : SubmonoidClass B M✝
S✝ : B
s : Submonoid M✝
M : Type u_4
inst✝ : CommMonoid M
S : Submonoid M
m : Multiset ↥S
⊢ ↑m.prod ∈ S
state_after: no goals
Theorem: Polynomial.mirror_natDegree
File: Mathlib/Algebra/Polynomial/Mirror.lean

tactic: by_cases hp : p = 0
state_before: R : Type u_1
inst✝ : Semiring R
p q : R[X]
⊢ p.mirror.natDegree = p.natDegree
state_after: case pos
R : Type u_1
inst✝ : Semiring R
p q : R[X]
hp : p = 0
⊢ p.mirror.natDegree = p.natDegree

case neg
R : Type u_1
inst✝ : Semiring R
p q : R[X]
hp : ¬p = 0
⊢ p.mirror.natDegree = p.natDegree

tactic: nontriviality R
state_before: case neg
R : Type u_1
inst✝ : Semiring R
p q : R[X]
hp : ¬p = 0
⊢ p.mirror.natDegree = p.natDegree
state_after: R : Type u_1
inst✝ : Semiring R
p q : R[X]
hp : ¬p = 0
a✝ : Nontrivial R
⊢ p.mirror.natDegree = p.natDegree

tactic: rw [mirror, natDegree_mul', reverse_natDegree, natDegree_X_pow,
  tsub_add_cancel_of_le p.natTrailingDegree_le_natDegree]
state_before: R : Type u_1
inst✝ : Semiring R
p q : R[X]
hp : ¬p = 0
a✝ : Nontrivial R
⊢ p.mirror.natDegree = p.natDegree
state_after: R : Type u_1
inst✝ : Semiring R
p q : R[X]
hp : ¬p = 0
a✝ : Nontrivial R
⊢ p.reverse.leadingCoeff * (X ^ p.natTrailingDegree).leadingCoeff ≠ 0

tactic: rwa [leadingCoeff_X_pow, mul_one, reverse_leadingCoeff, Ne, trailingCoeff_eq_zero]
state_before: R : Type u_1
inst✝ : Semiring R
p q : R[X]
hp : ¬p = 0
a✝ : Nontrivial R
⊢ p.reverse.leadingCoeff * (X ^ p.natTrailingDegree).leadingCoeff ≠ 0
state_after: no goals

tactic: rw [hp, mirror_zero]
state_before: case pos
R : Type u_1
inst✝ : Semiring R
p q : R[X]
hp : p = 0
⊢ p.mirror.natDegree = p.natDegree
state_after: no goals
Theorem: PSet.mem_wf_aux
File: Mathlib/SetTheory/ZFC/Basic.lean

tactic: rintro ⟨γ, C⟩ ⟨b, hc⟩
state_before: α : Type u
A : α → PSet
β : Type u
B : β → PSet
H : (mk α A).Equiv (mk β B)
⊢ ∀ y ∈ mk β B, Acc (fun x x_1 => x ∈ x_1) y
state_after: case mk.intro
α : Type u
A : α → PSet
β : Type u
B : β → PSet
H : (mk α A).Equiv (mk β B)
γ : Type u
C : γ → PSet
b : (mk β B).Type
hc : (mk γ C).Equiv ((mk β B).Func b)
⊢ Acc (fun x x_1 => x ∈ x_1) (mk γ C)

tactic: cases' H.exists_right b with a ha
state_before: case mk.intro
α : Type u
A : α → PSet
β : Type u
B : β → PSet
H : (mk α A).Equiv (mk β B)
γ : Type u
C : γ → PSet
b : (mk β B).Type
hc : (mk γ C).Equiv ((mk β B).Func b)
⊢ Acc (fun x x_1 => x ∈ x_1) (mk γ C)
state_after: case mk.intro.intro
α : Type u
A : α → PSet
β : Type u
B : β → PSet
H : (mk α A).Equiv (mk β B)
γ : Type u
C : γ → PSet
b : (mk β B).Type
hc : (mk γ C).Equiv ((mk β B).Func b)
a : (mk α A).Type
ha : ((mk α A).Func a).Equiv ((mk β B).Func b)
⊢ Acc (fun x x_1 => x ∈ x_1) (mk γ C)

tactic: have H := ha.trans hc.symm
state_before: case mk.intro.intro
α : Type u
A : α → PSet
β : Type u
B : β → PSet
H : (mk α A).Equiv (mk β B)
γ : Type u
C : γ → PSet
b : (mk β B).Type
hc : (mk γ C).Equiv ((mk β B).Func b)
a : (mk α A).Type
ha : ((mk α A).Func a).Equiv ((mk β B).Func b)
⊢ Acc (fun x x_1 => x ∈ x_1) (mk γ C)
state_after: case mk.intro.intro
α : Type u
A : α → PSet
β : Type u
B : β → PSet
H✝ : (mk α A).Equiv (mk β B)
γ : Type u
C : γ → PSet
b : (mk β B).Type
hc : (mk γ C).Equiv ((mk β B).Func b)
a : (mk α A).Type
ha : ((mk α A).Func a).Equiv ((mk β B).Func b)
H : ((mk α A).Func a).Equiv (mk γ C)
⊢ Acc (fun x x_1 => x ∈ x_1) (mk γ C)

tactic: rw [mk_func] at H
state_before: case mk.intro.intro
α : Type u
A : α → PSet
β : Type u
B : β → PSet
H✝ : (mk α A).Equiv (mk β B)
γ : Type u
C : γ → PSet
b : (mk β B).Type
hc : (mk γ C).Equiv ((mk β B).Func b)
a : (mk α A).Type
ha : ((mk α A).Func a).Equiv ((mk β B).Func b)
H : ((mk α A).Func a).Equiv (mk γ C)
⊢ Acc (fun x x_1 => x ∈ x_1) (mk γ C)
state_after: case mk.intro.intro
α : Type u
A : α → PSet
β : Type u
B : β → PSet
H✝ : (mk α A).Equiv (mk β B)
γ : Type u
C : γ → PSet
b : (mk β B).Type
hc : (mk γ C).Equiv ((mk β B).Func b)
a : (mk α A).Type
ha : ((mk α A).Func a).Equiv ((mk β B).Func b)
H : (A a).Equiv (mk γ C)
⊢ Acc (fun x x_1 => x ∈ x_1) (mk γ C)

tactic: exact mem_wf_aux H
state_before: case mk.intro.intro
α : Type u
A : α → PSet
β : Type u
B : β → PSet
H✝ : (mk α A).Equiv (mk β B)
γ : Type u
C : γ → PSet
b : (mk β B).Type
hc : (mk γ C).Equiv ((mk β B).Func b)
a : (mk α A).Type
ha : ((mk α A).Func a).Equiv ((mk β B).Func b)
H : (A a).Equiv (mk γ C)
⊢ Acc (fun x x_1 => x ∈ x_1) (mk γ C)
state_after: no goals
Theorem: Set.Nontrivial.le_infsep_iff
File: Mathlib/Topology/MetricSpace/Infsep.lean

tactic: simp_rw [infsep, ← ENNReal.ofReal_le_iff_le_toReal hs.einfsep_ne_top, le_einfsep_iff, edist_dist,
  ENNReal.ofReal_le_ofReal_iff dist_nonneg]
state_before: α : Type u_1
β : Type u_2
inst✝ : PseudoMetricSpace α
x y z : α
s t : Set α
d : ℝ
hs : s.Nontrivial
⊢ d ≤ s.infsep ↔ ∀ x ∈ s, ∀ y ∈ s, x ≠ y → d ≤ dist x y
state_after: no goals
Theorem: MeasurableEmbedding.comap_restrict
File: Mathlib/MeasureTheory/Measure/Restrict.lean

tactic: ext t ht
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure β
s : Set β
⊢ Measure.comap f (μ.restrict s) = (Measure.comap f μ).restrict (f ⁻¹' s)
state_after: case h
R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure β
s : Set β
t : Set α
ht : MeasurableSet t
⊢ (Measure.comap f (μ.restrict s)) t = ((Measure.comap f μ).restrict (f ⁻¹' s)) t

tactic: rw [Measure.restrict_apply ht, comap_apply hf, comap_apply hf,
  Measure.restrict_apply (hf.measurableSet_image.2 ht), image_inter_preimage]
state_before: case h
R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
m1 : MeasurableSpace β
f : α → β
hf : MeasurableEmbedding f
μ : Measure β
s : Set β
t : Set α
ht : MeasurableSet t
⊢ (Measure.comap f (μ.restrict s)) t = ((Measure.comap f μ).restrict (f ⁻¹' s)) t
state_after: no goals
Theorem: ZMod.neg_val
File: Mathlib/Data/ZMod/Basic.lean

tactic: rw [neg_val']
state_before: n : ℕ
inst✝ : NeZero n
a : ZMod n
⊢ (-a).val = if a = 0 then 0 else n - a.val
state_after: n : ℕ
inst✝ : NeZero n
a : ZMod n
⊢ (n - a.val) % n = if a = 0 then 0 else n - a.val

tactic: by_cases h : a = 0
state_before: n : ℕ
inst✝ : NeZero n
a : ZMod n
⊢ (n - a.val) % n = if a = 0 then 0 else n - a.val
state_after: case pos
n : ℕ
inst✝ : NeZero n
a : ZMod n
h : a = 0
⊢ (n - a.val) % n = if a = 0 then 0 else n - a.val

case neg
n : ℕ
inst✝ : NeZero n
a : ZMod n
h : ¬a = 0
⊢ (n - a.val) % n = if a = 0 then 0 else n - a.val

tactic: rw [if_neg h]
state_before: case neg
n : ℕ
inst✝ : NeZero n
a : ZMod n
h : ¬a = 0
⊢ (n - a.val) % n = if a = 0 then 0 else n - a.val
state_after: case neg
n : ℕ
inst✝ : NeZero n
a : ZMod n
h : ¬a = 0
⊢ (n - a.val) % n = n - a.val

tactic: apply Nat.mod_eq_of_lt
state_before: case neg
n : ℕ
inst✝ : NeZero n
a : ZMod n
h : ¬a = 0
⊢ (n - a.val) % n = n - a.val
state_after: case neg.h
n : ℕ
inst✝ : NeZero n
a : ZMod n
h : ¬a = 0
⊢ n - a.val < n

tactic: apply Nat.sub_lt (NeZero.pos n)
state_before: case neg.h
n : ℕ
inst✝ : NeZero n
a : ZMod n
h : ¬a = 0
⊢ n - a.val < n
state_after: case neg.h
n : ℕ
inst✝ : NeZero n
a : ZMod n
h : ¬a = 0
⊢ 0 < a.val

tactic: contrapose! h
state_before: case neg.h
n : ℕ
inst✝ : NeZero n
a : ZMod n
h : ¬a = 0
⊢ 0 < a.val
state_after: case neg.h
n : ℕ
inst✝ : NeZero n
a : ZMod n
h : a.val ≤ 0
⊢ a = 0

tactic: rwa [Nat.le_zero, val_eq_zero] at h
state_before: case neg.h
n : ℕ
inst✝ : NeZero n
a : ZMod n
h : a.val ≤ 0
⊢ a = 0
state_after: no goals

tactic: rw [if_pos h, h, val_zero, tsub_zero, Nat.mod_self]
state_before: case pos
n : ℕ
inst✝ : NeZero n
a : ZMod n
h : a = 0
⊢ (n - a.val) % n = if a = 0 then 0 else n - a.val
state_after: no goals
Theorem: AlgebraicIndependent.algebraMap_injective
File: Mathlib/RingTheory/AlgebraicIndependent.lean

tactic: simpa [Function.comp] using
  (Injective.of_comp_iff (algebraicIndependent_iff_injective_aeval.1 hx) MvPolynomial.C).2
    (MvPolynomial.C_injective _ _)
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
hx : AlgebraicIndependent R x
⊢ Injective ⇑(algebraMap R A)
state_after: no goals
Theorem: Filter.Frequently.exists
File: Mathlib/Order/Filter/Basic.lean

tactic: by_contra H
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
p : α → Prop
f : Filter α
hp : ∃ᶠ (x : α) in f, p x
⊢ ∃ x, p x
state_after: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
p : α → Prop
f : Filter α
hp : ∃ᶠ (x : α) in f, p x
H : ¬∃ x, p x
⊢ False

tactic: replace H : ∀ᶠ x in f, ¬p x := eventually_of_forall (not_exists.1 H)
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
p : α → Prop
f : Filter α
hp : ∃ᶠ (x : α) in f, p x
H : ¬∃ x, p x
⊢ False
state_after: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
p : α → Prop
f : Filter α
hp : ∃ᶠ (x : α) in f, p x
H : ∀ᶠ (x : α) in f, ¬p x
⊢ False

tactic: exact hp H
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
p : α → Prop
f : Filter α
hp : ∃ᶠ (x : α) in f, p x
H : ∀ᶠ (x : α) in f, ¬p x
⊢ False
state_after: no goals
Theorem: Con.coe_sInf
File: Mathlib/GroupTheory/Congruence/Basic.lean

tactic: ext
state_before: M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : Mul M
inst✝¹ : Mul N
inst✝ : Mul P
c : Con M
S : Set (Con M)
⊢ ⇑(sInf S) = sInf (DFunLike.coe '' S)
state_after: case h.h.a
M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : Mul M
inst✝¹ : Mul N
inst✝ : Mul P
c : Con M
S : Set (Con M)
x✝¹ x✝ : M
⊢ (sInf S) x✝¹ x✝ ↔ sInf (DFunLike.coe '' S) x✝¹ x✝

tactic: simp only [sInf_image, iInf_apply, iInf_Prop_eq]
state_before: case h.h.a
M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : Mul M
inst✝¹ : Mul N
inst✝ : Mul P
c : Con M
S : Set (Con M)
x✝¹ x✝ : M
⊢ (sInf S) x✝¹ x✝ ↔ sInf (DFunLike.coe '' S) x✝¹ x✝
state_after: case h.h.a
M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : Mul M
inst✝¹ : Mul N
inst✝ : Mul P
c : Con M
S : Set (Con M)
x✝¹ x✝ : M
⊢ (sInf S) x✝¹ x✝ ↔ ∀ i ∈ S, i x✝¹ x✝

tactic: rfl
state_before: case h.h.a
M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : Mul M
inst✝¹ : Mul N
inst✝ : Mul P
c : Con M
S : Set (Con M)
x✝¹ x✝ : M
⊢ (sInf S) x✝¹ x✝ ↔ ∀ i ∈ S, i x✝¹ x✝
state_after: no goals
Theorem: List.Nodup.length_le_card
File: Mathlib/Data/Fintype/Card.lean

tactic: classical exact List.toFinset_card_of_nodup h ▸ l.toFinset.card_le_univ
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
α : Type u_4
inst✝ : Fintype α
l : List α
h : l.Nodup
⊢ l.length ≤ Fintype.card α
state_after: no goals

tactic: exact List.toFinset_card_of_nodup h ▸ l.toFinset.card_le_univ
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
α : Type u_4
inst✝ : Fintype α
l : List α
h : l.Nodup
⊢ l.length ≤ Fintype.card α
state_after: no goals
Theorem: contDiffOn_top_iff_fderiv_of_isOpen
File: Mathlib/Analysis/Calculus/ContDiff/Defs.lean

tactic: rw [contDiffOn_top_iff_fderivWithin hs.uniqueDiffOn]
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
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 uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
hs : IsOpen s
⊢ ContDiffOn 𝕜 ⊤ f s ↔ DifferentiableOn 𝕜 f s ∧ ContDiffOn 𝕜 ⊤ (fun y => fderiv 𝕜 f y) s
state_after: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
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 uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
hs : IsOpen s
⊢ DifferentiableOn 𝕜 f s ∧ ContDiffOn 𝕜 ⊤ (fun y => fderivWithin 𝕜 f s y) s ↔
    DifferentiableOn 𝕜 f s ∧ ContDiffOn 𝕜 ⊤ (fun y => fderiv 𝕜 f y) s

tactic: exact Iff.rfl.and <| contDiffOn_congr fun x hx ↦ fderivWithin_of_isOpen hs hx
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
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 uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
hs : IsOpen s
⊢ DifferentiableOn 𝕜 f s ∧ ContDiffOn 𝕜 ⊤ (fun y => fderivWithin 𝕜 f s y) s ↔
    DifferentiableOn 𝕜 f s ∧ ContDiffOn 𝕜 ⊤ (fun y => fderiv 𝕜 f y) s
state_after: no goals
Theorem: MeasureTheory.exists_not_mem_null_integral_le
File: Mathlib/MeasureTheory/Integral/Average.lean

tactic: simpa only [average_eq_integral] using
  exists_not_mem_null_average_le (IsProbabilityMeasure.ne_zero μ) hf hN
state_before: α : Type u_1
E : Type u_2
F : Type u_3
m0 : MeasurableSpace α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
μ ν : Measure α
s t N : Set α
f : α → ℝ
inst✝ : IsProbabilityMeasure μ
hf : Integrable f μ
hN : μ N = 0
⊢ ∃ x ∉ N, ∫ (a : α), f a ∂μ ≤ f x
state_after: no goals
Theorem: mem_perfectClosure_iff_pow_mem
File: Mathlib/FieldTheory/PurelyInseparable.lean

tactic: rw [mem_perfectClosure_iff, ringExpChar.eq F q]
state_before: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
q : ℕ
inst✝ : ExpChar F q
x : E
⊢ x ∈ perfectClosure F E ↔ ∃ n, x ^ q ^ n ∈ (algebraMap F E).range
state_after: no goals
Theorem: Rel.comp_left_top
File: Mathlib/Data/Rel.lean

tactic: ext x z
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r✝ r : Rel α β
⊢ ⊤ • r = fun x y => y ∈ r.codom
state_after: case a.h.a
α : Type u_1
β : Type u_2
γ : Type u_3
r✝ r : Rel α β
x : γ
z : β
⊢ (⊤ • r) x z ↔ z ∈ r.codom

tactic: simp [comp, Top.top, codom]
state_before: case a.h.a
α : Type u_1
β : Type u_2
γ : Type u_3
r✝ r : Rel α β
x : γ
z : β
⊢ (⊤ • r) x z ↔ z ∈ r.codom
state_after: no goals
Theorem: ENNReal.tsum_le_tsum_comp_of_surjective
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: simp only [surjInv_eq hf]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f✝ g✝ : α → ℝ≥0∞
f : α → β
hf : Surjective f
g : β → ℝ≥0∞
⊢ ∑' (y : β), g y = ∑' (y : β), g (f (surjInv hf y))
state_after: no goals
Theorem: Filter.hasBasis_coclosedCompact
File: Mathlib/Topology/Compactness/Compact.lean

tactic: simp only [Filter.coclosedCompact, iInf_and']
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
⊢ (coclosedCompact X).HasBasis (fun s => IsClosed s ∧ IsCompact s) compl
state_after: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
⊢ (⨅ s, ⨅ (_ : IsClosed s ∧ IsCompact s), 𝓟 sᶜ).HasBasis (fun s => IsClosed s ∧ IsCompact s) compl

tactic: refine hasBasis_biInf_principal' ?_ ⟨∅, isClosed_empty, isCompact_empty⟩
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
⊢ (⨅ s, ⨅ (_ : IsClosed s ∧ IsCompact s), 𝓟 sᶜ).HasBasis (fun s => IsClosed s ∧ IsCompact s) compl
state_after: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
⊢ ∀ (i : Set X),
    IsClosed i ∧ IsCompact i →
      ∀ (j : Set X), IsClosed j ∧ IsCompact j → ∃ k, (IsClosed k ∧ IsCompact k) ∧ kᶜ ⊆ iᶜ ∧ kᶜ ⊆ jᶜ

tactic: rintro s ⟨hs₁, hs₂⟩ t ⟨ht₁, ht₂⟩
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
⊢ ∀ (i : Set X),
    IsClosed i ∧ IsCompact i →
      ∀ (j : Set X), IsClosed j ∧ IsCompact j → ∃ k, (IsClosed k ∧ IsCompact k) ∧ kᶜ ⊆ iᶜ ∧ kᶜ ⊆ jᶜ
state_after: case intro.intro
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t✝ s : Set X
hs₁ : IsClosed s
hs₂ : IsCompact s
t : Set X
ht₁ : IsClosed t
ht₂ : IsCompact t
⊢ ∃ k, (IsClosed k ∧ IsCompact k) ∧ kᶜ ⊆ sᶜ ∧ kᶜ ⊆ tᶜ

tactic: exact ⟨s ∪ t, ⟨⟨hs₁.union ht₁, hs₂.union ht₂⟩, compl_subset_compl.2 subset_union_left,
  compl_subset_compl.2 subset_union_right⟩⟩
state_before: case intro.intro
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s✝ t✝ s : Set X
hs₁ : IsClosed s
hs₂ : IsCompact s
t : Set X
ht₁ : IsClosed t
ht₂ : IsCompact t
⊢ ∃ k, (IsClosed k ∧ IsCompact k) ∧ kᶜ ⊆ sᶜ ∧ kᶜ ⊆ tᶜ
state_after: no goals
Theorem: MeasureTheory.IsFundamentalDomain.measure_eq_tsum_of_ac
File: Mathlib/MeasureTheory/Group/FundamentalDomain.lean

tactic: have H : ν.restrict t ≪ μ := Measure.restrict_le_self.absolutelyContinuous.trans hν
state_before: G : Type u_1
H : Type u_2
α : Type u_3
β : Type u_4
E : Type u_5
inst✝¹⁰ : Group G
inst✝⁹ : Group H
inst✝⁸ : MulAction G α
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MulAction H β
inst✝⁵ : MeasurableSpace β
inst✝⁴ : NormedAddCommGroup E
s t✝ : Set α
μ : Measure α
inst✝³ : MeasurableSpace G
inst✝² : MeasurableSMul G α
inst✝¹ : SMulInvariantMeasure G α μ
inst✝ : Countable G
ν : Measure α
h : IsFundamentalDomain G s μ
hν : ν ≪ μ
t : Set α
⊢ ν t = ∑' (g : G), ν (t ∩ g • s)
state_after: G : Type u_1
H✝ : Type u_2
α : Type u_3
β : Type u_4
E : Type u_5
inst✝¹⁰ : Group G
inst✝⁹ : Group H✝
inst✝⁸ : MulAction G α
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MulAction H✝ β
inst✝⁵ : MeasurableSpace β
inst✝⁴ : NormedAddCommGroup E
s t✝ : Set α
μ : Measure α
inst✝³ : MeasurableSpace G
inst✝² : MeasurableSMul G α
inst✝¹ : SMulInvariantMeasure G α μ
inst✝ : Countable G
ν : Measure α
h : IsFundamentalDomain G s μ
hν : ν ≪ μ
t : Set α
H : ν.restrict t ≪ μ
⊢ ν t = ∑' (g : G), ν (t ∩ g • s)

tactic: simpa only [setLIntegral_one, Pi.one_def,
  Measure.restrict_apply₀ ((h.nullMeasurableSet_smul _).mono_ac H), inter_comm] using
  h.lintegral_eq_tsum_of_ac H 1
state_before: G : Type u_1
H✝ : Type u_2
α : Type u_3
β : Type u_4
E : Type u_5
inst✝¹⁰ : Group G
inst✝⁹ : Group H✝
inst✝⁸ : MulAction G α
inst✝⁷ : MeasurableSpace α
inst✝⁶ : MulAction H✝ β
inst✝⁵ : MeasurableSpace β
inst✝⁴ : NormedAddCommGroup E
s t✝ : Set α
μ : Measure α
inst✝³ : MeasurableSpace G
inst✝² : MeasurableSMul G α
inst✝¹ : SMulInvariantMeasure G α μ
inst✝ : Countable G
ν : Measure α
h : IsFundamentalDomain G s μ
hν : ν ≪ μ
t : Set α
H : ν.restrict t ≪ μ
⊢ ν t = ∑' (g : G), ν (t ∩ g • s)
state_after: no goals
Theorem: PMF.bind_const
File: Mathlib/Probability/ProbabilityMassFunction/Monad.lean

tactic: rw [bind_apply, ENNReal.tsum_mul_right, tsum_coe, one_mul]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
p✝ : PMF α
f : α → PMF β
g : β → PMF γ
p : PMF α
q : PMF β
x : β
⊢ (p.bind fun x => q) x = q x
state_after: no goals