1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: IsUnit.mem_submonoid_iff
File: Mathlib/Algebra/Group/Submonoid/Basic.lean

tactic: change a ∈ setOf IsUnit ↔ IsUnit a
state_before: M✝ : Type u_1
N : Type u_2
A : Type u_3
inst✝² : Monoid M✝
inst✝¹ : Monoid N
s : Set M✝
M : Type u_4
inst✝ : Monoid M
a : M
⊢ a ∈ submonoid M ↔ IsUnit a
state_after: M✝ : Type u_1
N : Type u_2
A : Type u_3
inst✝² : Monoid M✝
inst✝¹ : Monoid N
s : Set M✝
M : Type u_4
inst✝ : Monoid M
a : M
⊢ a ∈ setOf IsUnit ↔ IsUnit a

tactic: rw [Set.mem_setOf_eq]
state_before: M✝ : Type u_1
N : Type u_2
A : Type u_3
inst✝² : Monoid M✝
inst✝¹ : Monoid N
s : Set M✝
M : Type u_4
inst✝ : Monoid M
a : M
⊢ a ∈ setOf IsUnit ↔ IsUnit a
state_after: no goals
Theorem: IsAdjoinRootMonic.coeff_one
File: Mathlib/RingTheory/IsAdjoinRoot.lean

tactic: rw [← h.coeff_root_pow h.deg_pos, pow_zero]
state_before: R : Type u
S : Type v
inst✝³ : CommRing R
inst✝² : Ring S
f : R[X]
inst✝¹ : Algebra R S
inst✝ : Nontrivial S
h : IsAdjoinRootMonic S f
⊢ h.coeff 1 = Pi.single 0 1
state_after: no goals
Theorem: Polynomial.eval₂_mul_eq_zero_of_left
File: Mathlib/Algebra/Polynomial/Eval.lean

tactic: rw [eval₂_mul f x]
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✝ : CommSemiring S
f : R →+* S
x : S
q : R[X]
hp : eval₂ f x p = 0
⊢ eval₂ f x (p * q) = 0
state_after: 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✝ : CommSemiring S
f : R →+* S
x : S
q : R[X]
hp : eval₂ f x p = 0
⊢ eval₂ f x p * eval₂ f x q = 0

tactic: exact mul_eq_zero_of_left hp (q.eval₂ f x)
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✝ : CommSemiring S
f : R →+* S
x : S
q : R[X]
hp : eval₂ f x p = 0
⊢ eval₂ f x p * eval₂ f x q = 0
state_after: no goals
Theorem: nonempty_interior_of_iUnion_of_closed
File: Mathlib/Topology/Baire/Lemmas.lean

tactic: simpa using (dense_iUnion_interior_of_closed hc hU).nonempty
state_before: X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝³ : TopologicalSpace X
inst✝² : BaireSpace X
inst✝¹ : Nonempty X
inst✝ : Countable ι
f : ι → Set X
hc : ∀ (i : ι), IsClosed (f i)
hU : ⋃ i, f i = univ
⊢ ∃ i, (interior (f i)).Nonempty
state_after: no goals
Theorem: WittVector.mul_charP_coeff_succ
File: Mathlib/RingTheory/WittVector/Identities.lean

tactic: rw [← frobenius_verschiebung, coeff_frobenius_charP, verschiebung_coeff_succ]
state_before: p : ℕ
R : Type u_1
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CharP R p
x : 𝕎 R
i : ℕ
⊢ (x * ↑p).coeff (i + 1) = x.coeff i ^ p
state_after: no goals
Theorem: HomologicalComplex₂.total.mapAux.d₂_mapMap
File: Mathlib/Algebra/Homology/TotalComplex.lean

tactic: by_cases h : c₂.Rel i₂ (c₂.next i₂)
state_before: C : Type u_1
inst✝⁵ : Category.{u_5, u_1} C
inst✝⁴ : Preadditive C
I₁ : Type u_2
I₂ : Type u_3
I₁₂ : Type u_4
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
K L M : HomologicalComplex₂ C c₁ c₂
φ : K ⟶ L
e : K ≅ L
ψ : L ⟶ M
c₁₂ : ComplexShape I₁₂
inst✝³ : DecidableEq I₁₂
inst✝² : TotalComplexShape c₁ c₂ c₁₂
inst✝¹ : K.HasTotal c₁₂
inst✝ : L.HasTotal c₁₂
i₁ : I₁
i₂ : I₂
i₁₂ : I₁₂
⊢ K.d₂ c₁₂ i₁ i₂ i₁₂ ≫ GradedObject.mapMap (toGradedObjectMap φ) (c₁.π c₂ c₁₂) i₁₂ = (φ.f i₁).f i₂ ≫ L.d₂ c₁₂ i₁ i₂ i₁₂
state_after: case pos
C : Type u_1
inst✝⁵ : Category.{u_5, u_1} C
inst✝⁴ : Preadditive C
I₁ : Type u_2
I₂ : Type u_3
I₁₂ : Type u_4
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
K L M : HomologicalComplex₂ C c₁ c₂
φ : K ⟶ L
e : K ≅ L
ψ : L ⟶ M
c₁₂ : ComplexShape I₁₂
inst✝³ : DecidableEq I₁₂
inst✝² : TotalComplexShape c₁ c₂ c₁₂
inst✝¹ : K.HasTotal c₁₂
inst✝ : L.HasTotal c₁₂
i₁ : I₁
i₂ : I₂
i₁₂ : I₁₂
h : c₂.Rel i₂ (c₂.next i₂)
⊢ K.d₂ c₁₂ i₁ i₂ i₁₂ ≫ GradedObject.mapMap (toGradedObjectMap φ) (c₁.π c₂ c₁₂) i₁₂ = (φ.f i₁).f i₂ ≫ L.d₂ c₁₂ i₁ i₂ i₁₂

case neg
C : Type u_1
inst✝⁵ : Category.{u_5, u_1} C
inst✝⁴ : Preadditive C
I₁ : Type u_2
I₂ : Type u_3
I₁₂ : Type u_4
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
K L M : HomologicalComplex₂ C c₁ c₂
φ : K ⟶ L
e : K ≅ L
ψ : L ⟶ M
c₁₂ : ComplexShape I₁₂
inst✝³ : DecidableEq I₁₂
inst✝² : TotalComplexShape c₁ c₂ c₁₂
inst✝¹ : K.HasTotal c₁₂
inst✝ : L.HasTotal c₁₂
i₁ : I₁
i₂ : I₂
i₁₂ : I₁₂
h : ¬c₂.Rel i₂ (c₂.next i₂)
⊢ K.d₂ c₁₂ i₁ i₂ i₁₂ ≫ GradedObject.mapMap (toGradedObjectMap φ) (c₁.π c₂ c₁₂) i₁₂ = (φ.f i₁).f i₂ ≫ L.d₂ c₁₂ i₁ i₂ i₁₂

tactic: simp [totalAux.d₂_eq' _ c₁₂ i₁ h]
state_before: case pos
C : Type u_1
inst✝⁵ : Category.{u_5, u_1} C
inst✝⁴ : Preadditive C
I₁ : Type u_2
I₂ : Type u_3
I₁₂ : Type u_4
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
K L M : HomologicalComplex₂ C c₁ c₂
φ : K ⟶ L
e : K ≅ L
ψ : L ⟶ M
c₁₂ : ComplexShape I₁₂
inst✝³ : DecidableEq I₁₂
inst✝² : TotalComplexShape c₁ c₂ c₁₂
inst✝¹ : K.HasTotal c₁₂
inst✝ : L.HasTotal c₁₂
i₁ : I₁
i₂ : I₂
i₁₂ : I₁₂
h : c₂.Rel i₂ (c₂.next i₂)
⊢ K.d₂ c₁₂ i₁ i₂ i₁₂ ≫ GradedObject.mapMap (toGradedObjectMap φ) (c₁.π c₂ c₁₂) i₁₂ = (φ.f i₁).f i₂ ≫ L.d₂ c₁₂ i₁ i₂ i₁₂
state_after: no goals

tactic: simp [d₂_eq_zero _ c₁₂ i₁ i₂ i₁₂ h]
state_before: case neg
C : Type u_1
inst✝⁵ : Category.{u_5, u_1} C
inst✝⁴ : Preadditive C
I₁ : Type u_2
I₂ : Type u_3
I₁₂ : Type u_4
c₁ : ComplexShape I₁
c₂ : ComplexShape I₂
K L M : HomologicalComplex₂ C c₁ c₂
φ : K ⟶ L
e : K ≅ L
ψ : L ⟶ M
c₁₂ : ComplexShape I₁₂
inst✝³ : DecidableEq I₁₂
inst✝² : TotalComplexShape c₁ c₂ c₁₂
inst✝¹ : K.HasTotal c₁₂
inst✝ : L.HasTotal c₁₂
i₁ : I₁
i₂ : I₂
i₁₂ : I₁₂
h : ¬c₂.Rel i₂ (c₂.next i₂)
⊢ K.d₂ c₁₂ i₁ i₂ i₁₂ ≫ GradedObject.mapMap (toGradedObjectMap φ) (c₁.π c₂ c₁₂) i₁₂ = (φ.f i₁).f i₂ ≫ L.d₂ c₁₂ i₁ i₂ i₁₂
state_after: no goals
Theorem: MeasureTheory.L1.norm_def
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: simp [Lp.norm_def, snorm, snorm']
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : ↥(Lp β 1 μ)
⊢ ‖f‖ = (∫⁻ (a : α), ↑‖↑↑f a‖₊ ∂μ).toReal
state_after: no goals
Theorem: Filter.zero_smul_filter
File: Mathlib/Order/Filter/Pointwise.lean

tactic: simp_rw [zero_smul, (hg.nonempty_of_mem hs).image_const]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
ε : Type u_6
inst✝² : Zero α
inst✝¹ : Zero β
inst✝ : SMulWithZero α β
f : Filter α
g : Filter β
hg : g.NeBot
s : Set β
hs : s ∈ g
⊢ (fun x => 0 • x) '' s ∈ 0
state_after: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
ε : Type u_6
inst✝² : Zero α
inst✝¹ : Zero β
inst✝ : SMulWithZero α β
f : Filter α
g : Filter β
hg : g.NeBot
s : Set β
hs : s ∈ g
⊢ {0} ∈ 0

tactic: exact zero_mem_zero
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
ε : Type u_6
inst✝² : Zero α
inst✝¹ : Zero β
inst✝ : SMulWithZero α β
f : Filter α
g : Filter β
hg : g.NeBot
s : Set β
hs : s ∈ g
⊢ {0} ∈ 0
state_after: no goals
Theorem: Basis.total_dualBasis
File: Mathlib/LinearAlgebra/Dual.lean

tactic: cases nonempty_fintype ι
state_before: R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : DecidableEq ι
b : Basis ι R M
inst✝ : _root_.Finite ι
f : ι →₀ R
i : ι
⊢ ((Finsupp.total ι (Dual R M) R ⇑b.dualBasis) f) (b i) = f i
state_after: case intro
R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : DecidableEq ι
b : Basis ι R M
inst✝ : _root_.Finite ι
f : ι →₀ R
i : ι
val✝ : Fintype ι
⊢ ((Finsupp.total ι (Dual R M) R ⇑b.dualBasis) f) (b i) = f i

tactic: rw [Finsupp.total_apply, Finsupp.sum_fintype, LinearMap.sum_apply]
state_before: case intro
R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : DecidableEq ι
b : Basis ι R M
inst✝ : _root_.Finite ι
f : ι →₀ R
i : ι
val✝ : Fintype ι
⊢ ((Finsupp.total ι (Dual R M) R ⇑b.dualBasis) f) (b i) = f i
state_after: case intro
R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : DecidableEq ι
b : Basis ι R M
inst✝ : _root_.Finite ι
f : ι →₀ R
i : ι
val✝ : Fintype ι
⊢ ∑ d : ι, (f d • b.dualBasis d) (b i) = f i

case intro.h
R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : DecidableEq ι
b : Basis ι R M
inst✝ : _root_.Finite ι
f : ι →₀ R
i : ι
val✝ : Fintype ι
⊢ ∀ (i : ι), 0 • b.dualBasis i = 0

tactic: simp_rw [LinearMap.smul_apply, smul_eq_mul, dualBasis_apply_self, mul_boole,
Finset.sum_ite_eq, if_pos (Finset.mem_univ i)]
state_before: case intro
R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : DecidableEq ι
b : Basis ι R M
inst✝ : _root_.Finite ι
f : ι →₀ R
i : ι
val✝ : Fintype ι
⊢ ∑ d : ι, (f d • b.dualBasis d) (b i) = f i
state_after: no goals

tactic: intro
state_before: case intro.h
R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : DecidableEq ι
b : Basis ι R M
inst✝ : _root_.Finite ι
f : ι →₀ R
i : ι
val✝ : Fintype ι
⊢ ∀ (i : ι), 0 • b.dualBasis i = 0
state_after: case intro.h
R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : DecidableEq ι
b : Basis ι R M
inst✝ : _root_.Finite ι
f : ι →₀ R
i : ι
val✝ : Fintype ι
i✝ : ι
⊢ 0 • b.dualBasis i✝ = 0

tactic: rw [zero_smul]
state_before: case intro.h
R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : DecidableEq ι
b : Basis ι R M
inst✝ : _root_.Finite ι
f : ι →₀ R
i : ι
val✝ : Fintype ι
i✝ : ι
⊢ 0 • b.dualBasis i✝ = 0
state_after: no goals
Theorem: ContMDiff.div
File: Mathlib/Geometry/Manifold/Algebra/LieGroup.lean

tactic: simp_rw [div_eq_mul_inv]
state_before: 𝕜 : Type u_1
inst✝¹⁹ : NontriviallyNormedField 𝕜
H : Type u_2
inst✝¹⁸ : TopologicalSpace H
E : Type u_3
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
F : Type u_4
inst✝¹⁵ : NormedAddCommGroup F
inst✝¹⁴ : NormedSpace 𝕜 F
J : ModelWithCorners 𝕜 F F
G : Type u_5
inst✝¹³ : TopologicalSpace G
inst✝¹² : ChartedSpace H G
inst✝¹¹ : Group G
inst✝¹⁰ : LieGroup I G
E' : Type u_6
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : NormedSpace 𝕜 E'
H' : Type u_7
inst✝⁷ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_8
inst✝⁶ : TopologicalSpace M
inst✝⁵ : ChartedSpace H' M
E'' : Type u_9
inst✝⁴ : NormedAddCommGroup E''
inst✝³ : NormedSpace 𝕜 E''
H'' : Type u_10
inst✝² : TopologicalSpace H''
I'' : ModelWithCorners 𝕜 E'' H''
M' : Type u_11
inst✝¹ : TopologicalSpace M'
inst✝ : ChartedSpace H'' M'
n : ℕ∞
f g : M → G
hf : ContMDiff I' I n f
hg : ContMDiff I' I n g
⊢ ContMDiff I' I n fun x => f x / g x
state_after: 𝕜 : Type u_1
inst✝¹⁹ : NontriviallyNormedField 𝕜
H : Type u_2
inst✝¹⁸ : TopologicalSpace H
E : Type u_3
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
F : Type u_4
inst✝¹⁵ : NormedAddCommGroup F
inst✝¹⁴ : NormedSpace 𝕜 F
J : ModelWithCorners 𝕜 F F
G : Type u_5
inst✝¹³ : TopologicalSpace G
inst✝¹² : ChartedSpace H G
inst✝¹¹ : Group G
inst✝¹⁰ : LieGroup I G
E' : Type u_6
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : NormedSpace 𝕜 E'
H' : Type u_7
inst✝⁷ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_8
inst✝⁶ : TopologicalSpace M
inst✝⁵ : ChartedSpace H' M
E'' : Type u_9
inst✝⁴ : NormedAddCommGroup E''
inst✝³ : NormedSpace 𝕜 E''
H'' : Type u_10
inst✝² : TopologicalSpace H''
I'' : ModelWithCorners 𝕜 E'' H''
M' : Type u_11
inst✝¹ : TopologicalSpace M'
inst✝ : ChartedSpace H'' M'
n : ℕ∞
f g : M → G
hf : ContMDiff I' I n f
hg : ContMDiff I' I n g
⊢ ContMDiff I' I n fun x => f x * (g x)⁻¹

tactic: exact hf.mul hg.inv
state_before: 𝕜 : Type u_1
inst✝¹⁹ : NontriviallyNormedField 𝕜
H : Type u_2
inst✝¹⁸ : TopologicalSpace H
E : Type u_3
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
F : Type u_4
inst✝¹⁵ : NormedAddCommGroup F
inst✝¹⁴ : NormedSpace 𝕜 F
J : ModelWithCorners 𝕜 F F
G : Type u_5
inst✝¹³ : TopologicalSpace G
inst✝¹² : ChartedSpace H G
inst✝¹¹ : Group G
inst✝¹⁰ : LieGroup I G
E' : Type u_6
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : NormedSpace 𝕜 E'
H' : Type u_7
inst✝⁷ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_8
inst✝⁶ : TopologicalSpace M
inst✝⁵ : ChartedSpace H' M
E'' : Type u_9
inst✝⁴ : NormedAddCommGroup E''
inst✝³ : NormedSpace 𝕜 E''
H'' : Type u_10
inst✝² : TopologicalSpace H''
I'' : ModelWithCorners 𝕜 E'' H''
M' : Type u_11
inst✝¹ : TopologicalSpace M'
inst✝ : ChartedSpace H'' M'
n : ℕ∞
f g : M → G
hf : ContMDiff I' I n f
hg : ContMDiff I' I n g
⊢ ContMDiff I' I n fun x => f x * (g x)⁻¹
state_after: no goals
Theorem: Nat.eq_div_of_mul_eq_left
File: Mathlib/Data/Nat/Defs.lean

tactic: rw [← h, Nat.mul_div_cancel _ (Nat.pos_iff_ne_zero.2 hc)]
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
hc : c ≠ 0
h : a * c = b
⊢ a = b / c
state_after: no goals
Theorem: LiouvilleWith.nat_add_iff
File: Mathlib/NumberTheory/Liouville/LiouvilleWith.lean

tactic: rw [add_comm, add_nat_iff]
state_before: p q x y : ℝ
r : ℚ
m : ℤ
n : ℕ
⊢ LiouvilleWith p (↑n + x) ↔ LiouvilleWith p x
state_after: no goals
Theorem: Int.normalize_of_nonneg
File: Mathlib/Algebra/GCDMonoid/Nat.lean

tactic: rw [normalize_apply, normUnit_eq, if_pos h, Units.val_one, mul_one]
state_before: z : ℤ
h : 0 ≤ z
⊢ normalize z = z
state_after: no goals
Theorem: MeasureTheory.union_ae_eq_left_of_ae_eq_empty
File: Mathlib/MeasureTheory/OuterMeasure/AE.lean

tactic: convert ae_eq_set_union (ae_eq_refl s) h
state_before: α : Type u_1
β : Type u_2
F : Type u_3
inst✝¹ : FunLike F (Set α) ℝ≥0∞
inst✝ : OuterMeasureClass F α
μ : F
s t : Set α
h : t =ᶠ[ae μ] ∅
⊢ s ∪ t =ᶠ[ae μ] s
state_after: case h.e'_5
α : Type u_1
β : Type u_2
F : Type u_3
inst✝¹ : FunLike F (Set α) ℝ≥0∞
inst✝ : OuterMeasureClass F α
μ : F
s t : Set α
h : t =ᶠ[ae μ] ∅
⊢ s = s ∪ ∅

tactic: rw [union_empty]
state_before: case h.e'_5
α : Type u_1
β : Type u_2
F : Type u_3
inst✝¹ : FunLike F (Set α) ℝ≥0∞
inst✝ : OuterMeasureClass F α
μ : F
s t : Set α
h : t =ᶠ[ae μ] ∅
⊢ s = s ∪ ∅
state_after: no goals
Theorem: DihedralGroup.commProb_nil
File: Mathlib/GroupTheory/CommutingProbability.lean

tactic: simp [Product, commProb_pi]
state_before: M : Type u_1
inst✝³ : Mul M
inst✝² : Finite M
G : Type u_2
inst✝¹ : Group G
inst✝ : Finite G
H : Subgroup G
⊢ commProb (Product []) = 1
state_after: no goals
Theorem: AffineSubspace.nonempty_map
File: Mathlib/LinearAlgebra/AffineSpace/Restrict.lean

tactic: obtain ⟨x, hx⟩ := id Ene
state_before: k : Type u_1
V₁ : Type u_2
P₁ : Type u_3
V₂ : Type u_4
P₂ : Type u_5
inst✝⁶ : Ring k
inst✝⁵ : AddCommGroup V₁
inst✝⁴ : AddCommGroup V₂
inst✝³ : Module k V₁
inst✝² : Module k V₂
inst✝¹ : AddTorsor V₁ P₁
inst✝ : AddTorsor V₂ P₂
E : AffineSubspace k P₁
Ene : Nonempty ↥E
φ : P₁ →ᵃ[k] P₂
⊢ Nonempty ↥(map φ E)
state_after: case intro.mk
k : Type u_1
V₁ : Type u_2
P₁ : Type u_3
V₂ : Type u_4
P₂ : Type u_5
inst✝⁶ : Ring k
inst✝⁵ : AddCommGroup V₁
inst✝⁴ : AddCommGroup V₂
inst✝³ : Module k V₁
inst✝² : Module k V₂
inst✝¹ : AddTorsor V₁ P₁
inst✝ : AddTorsor V₂ P₂
E : AffineSubspace k P₁
Ene : Nonempty ↥E
φ : P₁ →ᵃ[k] P₂
x : P₁
hx : x ∈ E
⊢ Nonempty ↥(map φ E)

tactic: exact ⟨⟨φ x, AffineSubspace.mem_map.mpr ⟨x, hx, rfl⟩⟩⟩
state_before: case intro.mk
k : Type u_1
V₁ : Type u_2
P₁ : Type u_3
V₂ : Type u_4
P₂ : Type u_5
inst✝⁶ : Ring k
inst✝⁵ : AddCommGroup V₁
inst✝⁴ : AddCommGroup V₂
inst✝³ : Module k V₁
inst✝² : Module k V₂
inst✝¹ : AddTorsor V₁ P₁
inst✝ : AddTorsor V₂ P₂
E : AffineSubspace k P₁
Ene : Nonempty ↥E
φ : P₁ →ᵃ[k] P₂
x : P₁
hx : x ∈ E
⊢ Nonempty ↥(map φ E)
state_after: no goals
Theorem: PerfectPairing.toDualLeft_of_toDualRight_symm
File: Mathlib/LinearAlgebra/PerfectPairing.lean

tactic: rw [@toDualLeft_apply]
state_before: R : Type u_1
M : Type u_2
N : Type u_3
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
p : PerfectPairing R M N
x : M
f : Dual R M
⊢ (p.toDualLeft x) (p.toDualRight.symm f) = f x
state_after: R : Type u_1
M : Type u_2
N : Type u_3
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
p : PerfectPairing R M N
x : M
f : Dual R M
⊢ (p x) (p.toDualRight.symm f) = f x

tactic: exact apply_apply_toDualRight_symm p x f
state_before: R : Type u_1
M : Type u_2
N : Type u_3
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
p : PerfectPairing R M N
x : M
f : Dual R M
⊢ (p x) (p.toDualRight.symm f) = f x
state_after: no goals
Theorem: Finmap.keys_erase
File: Mathlib/Data/Finmap.lean

tactic: simp
state_before: α : Type u
β : α → Type v
inst✝ : DecidableEq α
a : α
s✝ : Finmap β
s : AList β
⊢ (erase a ⟦s⟧).keys = ⟦s⟧.keys.erase a
state_after: no goals
Theorem: RatFunc.eval_X
File: Mathlib/FieldTheory/RatFunc/AsPolynomial.lean

tactic: simp [eval]
state_before: K : Type u
inst✝¹ : Field K
L : Type u
inst✝ : Field L
f : K →+* L
a : L
⊢ eval f a X = a
state_after: no goals
Theorem: Fin.range_castSucc
File: Mathlib/Data/Fin/Basic.lean

tactic: omega
state_before: n✝ m n : ℕ
⊢ n ≤ n + 1
state_after: no goals
Theorem: CategoryTheory.Under.w
File: Mathlib/CategoryTheory/Comma/Over.lean

tactic: have := f.w
state_before: T : Type u₁
inst✝ : Category.{v₁, u₁} T
X : T
A B : Under X
f : A ⟶ B
⊢ A.hom ≫ f.right = B.hom
state_after: T : Type u₁
inst✝ : Category.{v₁, u₁} T
X : T
A B : Under X
f : A ⟶ B
this : (Functor.fromPUnit X).map f.left ≫ B.hom = A.hom ≫ (𝟭 T).map f.right
⊢ A.hom ≫ f.right = B.hom

tactic: aesop_cat
state_before: T : Type u₁
inst✝ : Category.{v₁, u₁} T
X : T
A B : Under X
f : A ⟶ B
this : (Functor.fromPUnit X).map f.left ≫ B.hom = A.hom ≫ (𝟭 T).map f.right
⊢ A.hom ≫ f.right = B.hom
state_after: no goals
Theorem: ENNReal.tsum_iSup_eq
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: simp [h.symm]
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∞
α : Type u_4
a : α
f : α → ℝ≥0∞
x✝ : α
h : x✝ ≠ a
⊢ ⨆ (_ : a = x✝), f x✝ = 0
state_after: no goals

tactic: simp
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∞
α : Type u_4
a : α
f : α → ℝ≥0∞
⊢ ⨆ (_ : a = a), f a = f a
state_after: no goals
Theorem: ProbabilityTheory.condexpKernel_ae_eq_condexp'
File: Mathlib/Probability/Kernel/Condexp.lean

tactic: have h := condDistrib_ae_eq_condexp (μ := μ)
  (measurable_id'' (inf_le_right : m ⊓ mΩ ≤ mΩ)) measurable_id hs
state_before: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
μ : Measure Ω
inst✝¹ inst✝ : IsFiniteMeasure μ
s : Set Ω
hs : MeasurableSet s
⊢ (fun ω => (((condexpKernel μ m) ω) s).toReal) =ᶠ[ae μ] μ[s.indicator fun ω => 1|m ⊓ mΩ]
state_after: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
μ : Measure Ω
inst✝¹ inst✝ : IsFiniteMeasure μ
s : Set Ω
hs : MeasurableSet s
h :
  (fun a => (((condDistrib id id μ) (id a)) s).toReal) =ᶠ[ae μ]
    μ[(id ⁻¹' s).indicator fun ω => 1|MeasurableSpace.comap id (m ⊓ mΩ)]
⊢ (fun ω => (((condexpKernel μ m) ω) s).toReal) =ᶠ[ae μ] μ[s.indicator fun ω => 1|m ⊓ mΩ]

tactic: simp only [id_eq, ge_iff_le, MeasurableSpace.comap_id, preimage_id_eq] at h
state_before: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
μ : Measure Ω
inst✝¹ inst✝ : IsFiniteMeasure μ
s : Set Ω
hs : MeasurableSet s
h :
  (fun a => (((condDistrib id id μ) (id a)) s).toReal) =ᶠ[ae μ]
    μ[(id ⁻¹' s).indicator fun ω => 1|MeasurableSpace.comap id (m ⊓ mΩ)]
⊢ (fun ω => (((condexpKernel μ m) ω) s).toReal) =ᶠ[ae μ] μ[s.indicator fun ω => 1|m ⊓ mΩ]
state_after: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
μ : Measure Ω
inst✝¹ inst✝ : IsFiniteMeasure μ
s : Set Ω
hs : MeasurableSet s
h : (fun a => (((condDistrib id id μ) a) s).toReal) =ᶠ[ae μ] μ[s.indicator fun ω => 1|m ⊓ mΩ]
⊢ (fun ω => (((condexpKernel μ m) ω) s).toReal) =ᶠ[ae μ] μ[s.indicator fun ω => 1|m ⊓ mΩ]

tactic: simp_rw [condexpKernel_apply_eq_condDistrib]
state_before: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
μ : Measure Ω
inst✝¹ inst✝ : IsFiniteMeasure μ
s : Set Ω
hs : MeasurableSet s
h : (fun a => (((condDistrib id id μ) a) s).toReal) =ᶠ[ae μ] μ[s.indicator fun ω => 1|m ⊓ mΩ]
⊢ (fun ω => (((condexpKernel μ m) ω) s).toReal) =ᶠ[ae μ] μ[s.indicator fun ω => 1|m ⊓ mΩ]
state_after: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
μ : Measure Ω
inst✝¹ inst✝ : IsFiniteMeasure μ
s : Set Ω
hs : MeasurableSet s
h : (fun a => (((condDistrib id id μ) a) s).toReal) =ᶠ[ae μ] μ[s.indicator fun ω => 1|m ⊓ mΩ]
⊢ (fun ω => (((condDistrib id id μ) (id ω)) s).toReal) =ᶠ[ae μ] μ[s.indicator fun ω => 1|m ⊓ mΩ]

tactic: exact h
state_before: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
μ : Measure Ω
inst✝¹ inst✝ : IsFiniteMeasure μ
s : Set Ω
hs : MeasurableSet s
h : (fun a => (((condDistrib id id μ) a) s).toReal) =ᶠ[ae μ] μ[s.indicator fun ω => 1|m ⊓ mΩ]
⊢ (fun ω => (((condDistrib id id μ) (id ω)) s).toReal) =ᶠ[ae μ] μ[s.indicator fun ω => 1|m ⊓ mΩ]
state_after: no goals
Theorem: CategoryTheory.Limits.kernel_map_comp_preserves_kernel_iso_inv
File: Mathlib/CategoryTheory/Limits/Preserves/Shapes/Kernels.lean

tactic: rw [← G.map_comp, hpq, G.map_comp]
state_before: C : Type u₁
inst✝¹⁰ : Category.{v₁, u₁} C
inst✝⁹ : HasZeroMorphisms C
D : Type u₂
inst✝⁸ : Category.{v₂, u₂} D
inst✝⁷ : HasZeroMorphisms D
G : C ⥤ D
inst✝⁶ : G.PreservesZeroMorphisms
X Y Z : C
f : X ⟶ Y
h : Z ⟶ X
w : h ≫ f = 0
inst✝⁵ : HasKernel f
inst✝⁴ : HasKernel (G.map f)
inst✝³ : PreservesLimit (parallelPair f 0) G
X' Y' : C
g : X' ⟶ Y'
inst✝² : HasKernel g
inst✝¹ : HasKernel (G.map g)
inst✝ : PreservesLimit (parallelPair g 0) G
p : X ⟶ X'
q : Y ⟶ Y'
hpq : f ≫ q = p ≫ g
⊢ G.map f ≫ G.map q = G.map p ≫ G.map g
state_after: no goals

tactic: rw [Iso.comp_inv_eq, Category.assoc, PreservesKernel.iso_hom, Iso.eq_inv_comp,
  PreservesKernel.iso_hom, kernelComparison_comp_kernel_map]
state_before: C : Type u₁
inst✝¹⁰ : Category.{v₁, u₁} C
inst✝⁹ : HasZeroMorphisms C
D : Type u₂
inst✝⁸ : Category.{v₂, u₂} D
inst✝⁷ : HasZeroMorphisms D
G : C ⥤ D
inst✝⁶ : G.PreservesZeroMorphisms
X Y Z : C
f : X ⟶ Y
h : Z ⟶ X
w : h ≫ f = 0
inst✝⁵ : HasKernel f
inst✝⁴ : HasKernel (G.map f)
inst✝³ : PreservesLimit (parallelPair f 0) G
X' Y' : C
g : X' ⟶ Y'
inst✝² : HasKernel g
inst✝¹ : HasKernel (G.map g)
inst✝ : PreservesLimit (parallelPair g 0) G
p : X ⟶ X'
q : Y ⟶ Y'
hpq : f ≫ q = p ≫ g
⊢ kernel.map (G.map f) (G.map g) (G.map p) (G.map q) ⋯ ≫ (PreservesKernel.iso G g).inv =
    (PreservesKernel.iso G f).inv ≫ G.map (kernel.map f g p q hpq)
state_after: no goals
Theorem: List.filter_false
File: Mathlib/Data/List/Basic.lean

tactic: induction l <;> simp [*, filter]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
p : α → Bool
l : List α
⊢ filter (fun x => false) l = []
state_after: no goals