1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MeasureTheory.ProbabilityMeasure.prod_apply_symm
File: Mathlib/MeasureTheory/Measure/FiniteMeasureProd.lean

tactic: simp [coeFn_def, Measure.prod_apply_symm s_mble]
state_before: α : Type u_1
inst✝¹ : MeasurableSpace α
β : Type u_2
inst✝ : MeasurableSpace β
μ : ProbabilityMeasure α
ν : ProbabilityMeasure β
s : Set (α × β)
s_mble : MeasurableSet s
⊢ (μ.prod ν) s = (∫⁻ (y : β), ↑μ ((fun x => (x, y)) ⁻¹' s) ∂↑ν).toNNReal
state_after: no goals
Theorem: Polynomial.degree_derivative_le
File: Mathlib/Algebra/Polynomial/Derivative.lean

tactic: rw [H, derivative_zero]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Semiring R
p : R[X]
this : DecidableEq R := Classical.decEq R
H : p = 0
⊢ (derivative p).degree = p.degree
state_after: no goals
Theorem: Matrix.diagonal_injective
File: Mathlib/Data/Matrix/Basic.lean

tactic: simpa using Matrix.ext_iff.mpr h i i
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝¹ : DecidableEq n
inst✝ : Zero α
d₁ d₂ : n → α
h : diagonal d₁ = diagonal d₂
i : n
⊢ d₁ i = d₂ i
state_after: no goals
Theorem: SimpleGraph.Walk.support_transfer
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: induction p <;> simp [*]
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
p : G.Walk u v
H : SimpleGraph V
hp : ∀ e ∈ p.edges, e ∈ H.edgeSet
⊢ (p.transfer H hp).support = p.support
state_after: no goals
Theorem: MeasureTheory.integral_dirac'
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: borelize E
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedSpace 𝕜 E
inst✝⁸ : SMulCommClass ℝ 𝕜 E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
inst✝⁵ : CompleteSpace F
G : Type u_5
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedSpace ℝ G
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type u_6
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
ν : Measure α
inst✝ : MeasurableSpace α
f : α → E
a : α
hfm : StronglyMeasurable f
⊢ ∫ (x : α), f x ∂Measure.dirac a = f a
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedSpace 𝕜 E
inst✝⁸ : SMulCommClass ℝ 𝕜 E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
inst✝⁵ : CompleteSpace F
G : Type u_5
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedSpace ℝ G
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type u_6
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
ν : Measure α
inst✝ : MeasurableSpace α
f : α → E
a : α
hfm : StronglyMeasurable f
this✝¹ : MeasurableSpace E := borel E
this✝ : BorelSpace E
⊢ ∫ (x : α), f x ∂Measure.dirac a = f a

tactic: calc
  ∫ x, f x ∂Measure.dirac a = ∫ _, f a ∂Measure.dirac a :=
    integral_congr_ae <| ae_eq_dirac' hfm.measurable
  _ = f a := by simp [Measure.dirac_apply_of_mem]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedSpace 𝕜 E
inst✝⁸ : SMulCommClass ℝ 𝕜 E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
inst✝⁵ : CompleteSpace F
G : Type u_5
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedSpace ℝ G
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type u_6
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
ν : Measure α
inst✝ : MeasurableSpace α
f : α → E
a : α
hfm : StronglyMeasurable f
this✝¹ : MeasurableSpace E := borel E
this✝ : BorelSpace E
⊢ ∫ (x : α), f x ∂Measure.dirac a = f a
state_after: no goals

tactic: simp [Measure.dirac_apply_of_mem]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝¹² : NormedAddCommGroup E
inst✝¹¹ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedSpace 𝕜 E
inst✝⁸ : SMulCommClass ℝ 𝕜 E
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
inst✝⁵ : CompleteSpace F
G : Type u_5
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedSpace ℝ G
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
X : Type u_6
inst✝² : TopologicalSpace X
inst✝¹ : FirstCountableTopology X
ν : Measure α
inst✝ : MeasurableSpace α
f : α → E
a : α
hfm : StronglyMeasurable f
this✝¹ : MeasurableSpace E := borel E
this✝ : BorelSpace E
⊢ ∫ (x : α), f a ∂Measure.dirac a = f a
state_after: no goals
Theorem: Pi.ker_ringHom
File: Mathlib/RingTheory/Ideal/Maps.lean

tactic: ext x
state_before: R✝ : Type u
S : Type v
T : Type w
F : Type u_1
G : Type u_2
inst✝⁵ : Semiring R✝
inst✝⁴ : Semiring S
inst✝³ : Semiring T
inst✝² : FunLike F R✝ S
rcf : RingHomClass F R✝ S
inst✝¹ : FunLike G T S
rcg : RingHomClass G T S
f : F
g : G
ι : Type u_3
R : ι → Type u_4
inst✝ : (i : ι) → Semiring (R i)
φ : (i : ι) → S →+* R i
⊢ ker (Pi.ringHom φ) = ⨅ i, ker (φ i)
state_after: case h
R✝ : Type u
S : Type v
T : Type w
F : Type u_1
G : Type u_2
inst✝⁵ : Semiring R✝
inst✝⁴ : Semiring S
inst✝³ : Semiring T
inst✝² : FunLike F R✝ S
rcf : RingHomClass F R✝ S
inst✝¹ : FunLike G T S
rcg : RingHomClass G T S
f : F
g : G
ι : Type u_3
R : ι → Type u_4
inst✝ : (i : ι) → Semiring (R i)
φ : (i : ι) → S →+* R i
x : S
⊢ x ∈ ker (Pi.ringHom φ) ↔ x ∈ ⨅ i, ker (φ i)

tactic: simp [mem_ker, Ideal.mem_iInf, Function.funext_iff]
state_before: case h
R✝ : Type u
S : Type v
T : Type w
F : Type u_1
G : Type u_2
inst✝⁵ : Semiring R✝
inst✝⁴ : Semiring S
inst✝³ : Semiring T
inst✝² : FunLike F R✝ S
rcf : RingHomClass F R✝ S
inst✝¹ : FunLike G T S
rcg : RingHomClass G T S
f : F
g : G
ι : Type u_3
R : ι → Type u_4
inst✝ : (i : ι) → Semiring (R i)
φ : (i : ι) → S →+* R i
x : S
⊢ x ∈ ker (Pi.ringHom φ) ↔ x ∈ ⨅ i, ker (φ i)
state_after: no goals
Theorem: NumberField.mixedEmbedding.convexBodySumFun_smul
File: Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean

tactic: simp_rw [convexBodySumFun, normAtPlace_smul, ← mul_assoc, mul_comm, Finset.mul_sum, mul_assoc]
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B c : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
⊢ convexBodySumFun (c • x) = |c| * convexBodySumFun x
state_after: no goals
Theorem: Setoid.eq_top_iff
File: Mathlib/Data/Setoid/Basic.lean

tactic: rw [_root_.eq_top_iff, Setoid.le_def, Setoid.top_def]
state_before: α : Type u_1
β : Type u_2
s : Setoid α
⊢ s = ⊤ ↔ ∀ (x y : α), s.Rel x y
state_after: α : Type u_1
β : Type u_2
s : Setoid α
⊢ (∀ {x y : α}, ⊤ x y → s.Rel x y) ↔ ∀ (x y : α), s.Rel x y

tactic: simp only [Pi.top_apply, Prop.top_eq_true, forall_true_left]
state_before: α : Type u_1
β : Type u_2
s : Setoid α
⊢ (∀ {x y : α}, ⊤ x y → s.Rel x y) ↔ ∀ (x y : α), s.Rel x y
state_after: no goals
Theorem: List.destutter'_sublist
File: Mathlib/Data/List/Destutter.lean

tactic: induction' l with b l hl generalizing a
state_before: α : Type u_1
l : List α
R : α → α → Prop
inst✝ : DecidableRel R
a✝ b a : α
⊢ destutter' R a l <+ a :: l
state_after: case nil
α : Type u_1
l : List α
R : α → α → Prop
inst✝ : DecidableRel R
a✝ b a : α
⊢ destutter' R a [] <+ [a]

case cons
α : Type u_1
l✝ : List α
R : α → α → Prop
inst✝ : DecidableRel R
a✝ b✝ b : α
l : List α
hl : ∀ (a : α), destutter' R a l <+ a :: l
a : α
⊢ destutter' R a (b :: l) <+ a :: b :: l

tactic: rw [destutter']
state_before: case cons
α : Type u_1
l✝ : List α
R : α → α → Prop
inst✝ : DecidableRel R
a✝ b✝ b : α
l : List α
hl : ∀ (a : α), destutter' R a l <+ a :: l
a : α
⊢ destutter' R a (b :: l) <+ a :: b :: l
state_after: case cons
α : Type u_1
l✝ : List α
R : α → α → Prop
inst✝ : DecidableRel R
a✝ b✝ b : α
l : List α
hl : ∀ (a : α), destutter' R a l <+ a :: l
a : α
⊢ (if R a b then a :: destutter' R b l else destutter' R a l) <+ a :: b :: l

tactic: split_ifs
state_before: case cons
α : Type u_1
l✝ : List α
R : α → α → Prop
inst✝ : DecidableRel R
a✝ b✝ b : α
l : List α
hl : ∀ (a : α), destutter' R a l <+ a :: l
a : α
⊢ (if R a b then a :: destutter' R b l else destutter' R a l) <+ a :: b :: l
state_after: case pos
α : Type u_1
l✝ : List α
R : α → α → Prop
inst✝ : DecidableRel R
a✝ b✝ b : α
l : List α
hl : ∀ (a : α), destutter' R a l <+ a :: l
a : α
h✝ : R a b
⊢ a :: destutter' R b l <+ a :: b :: l

case neg
α : Type u_1
l✝ : List α
R : α → α → Prop
inst✝ : DecidableRel R
a✝ b✝ b : α
l : List α
hl : ∀ (a : α), destutter' R a l <+ a :: l
a : α
h✝ : ¬R a b
⊢ destutter' R a l <+ a :: b :: l

tactic: simp
state_before: case nil
α : Type u_1
l : List α
R : α → α → Prop
inst✝ : DecidableRel R
a✝ b a : α
⊢ destutter' R a [] <+ [a]
state_after: no goals

tactic: exact Sublist.cons₂ a (hl b)
state_before: case pos
α : Type u_1
l✝ : List α
R : α → α → Prop
inst✝ : DecidableRel R
a✝ b✝ b : α
l : List α
hl : ∀ (a : α), destutter' R a l <+ a :: l
a : α
h✝ : R a b
⊢ a :: destutter' R b l <+ a :: b :: l
state_after: no goals

tactic: exact (hl a).trans ((l.sublist_cons b).cons_cons a)
state_before: case neg
α : Type u_1
l✝ : List α
R : α → α → Prop
inst✝ : DecidableRel R
a✝ b✝ b : α
l : List α
hl : ∀ (a : α), destutter' R a l <+ a :: l
a : α
h✝ : ¬R a b
⊢ destutter' R a l <+ a :: b :: l
state_after: no goals
Theorem: Function.support_mul_subset_left
File: Mathlib/Algebra/GroupWithZero/Indicator.lean

tactic: simp only [hf, zero_mul]
state_before: ι : Type u_1
κ : Type u_2
G₀ : Type u_3
M₀ : Type u_4
R : Type u_5
inst✝ : MulZeroClass M₀
f g : ι → M₀
x : ι
hfg : x ∈ support fun x => f x * g x
hf : f x = 0
⊢ (fun x => f x * g x) x = 0
state_after: no goals
Theorem: PartENat.pos_iff_one_le
File: Mathlib/Data/Nat/PartENat.lean

tactic: simp only [iff_true_iff, le_top, natCast_lt_top, ← @Nat.cast_zero PartENat]
state_before: x : PartENat
⊢ 0 < ⊤ ↔ 1 ≤ ⊤
state_after: no goals

tactic: rw [← Nat.cast_zero, ← Nat.cast_one, PartENat.coe_lt_coe, PartENat.coe_le_coe]
state_before: x : PartENat
n : ℕ
⊢ 0 < ↑n ↔ 1 ≤ ↑n
state_after: x : PartENat
n : ℕ
⊢ 0 < n ↔ 1 ≤ n

tactic: rfl
state_before: x : PartENat
n : ℕ
⊢ 0 < n ↔ 1 ≤ n
state_after: no goals
Theorem: Finsupp.support_subset_singleton'
File: Mathlib/Data/Finsupp/Defs.lean

tactic: rw [hb, support_subset_singleton, single_eq_same]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
a✝ a' : α
b✝ : M
f : α →₀ M
a : α
x✝ : ∃ b, f = single a b
b : M
hb : f = single a b
⊢ f.support ⊆ {a}
state_after: no goals
Theorem: IntervalIntegrable.div_const
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: simpa only [div_eq_mul_inv] using mul_const h c⁻¹
state_before: ι : Type u_1
𝕜✝ : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedRing A
f✝ g : ℝ → E
a b : ℝ
μ : Measure ℝ
𝕜 : Type u_6
f : ℝ → 𝕜
inst✝ : NormedField 𝕜
h : IntervalIntegrable f μ a b
c : 𝕜
⊢ IntervalIntegrable (fun x => f x / c) μ a b
state_after: no goals
Theorem: Nat.zero_bits
File: Mathlib/Data/Nat/Bits.lean

tactic: simp [Nat.bits]
state_before: m n : ℕ
⊢ bits 0 = []
state_after: no goals
Theorem: Order.Ideal.mem_sInf
File: Mathlib/Order/Ideal.lean

tactic: simp_rw [← SetLike.mem_coe, coe_sInf, mem_iInter₂]
state_before: P : Type u_1
inst✝¹ : SemilatticeSup P
inst✝ : OrderBot P
x : P
I J K : Ideal P
S : Set (Ideal P)
⊢ x ∈ sInf S ↔ ∀ s ∈ S, x ∈ s
state_after: no goals
Theorem: mem_approxOrderOf_iff
File: Mathlib/NumberTheory/WellApproximable.lean

tactic: simp only [approxOrderOf, thickening_eq_biUnion_ball, mem_iUnion₂, mem_setOf_eq, exists_prop]
state_before: A : Type u_1
inst✝ : SeminormedGroup A
n : ℕ
δ : ℝ
a : A
⊢ a ∈ approxOrderOf A n δ ↔ ∃ b, orderOf b = n ∧ a ∈ ball b δ
state_after: no goals
Theorem: List.Perm.insert
File: .lake/packages/batteries/Batteries/Data/List/Perm.lean

tactic: if h : a ∈ l₁ then
  simp [h, p.subset h, p]
else
  have := p.cons a
  simpa [h, mt p.mem_iff.2 h] using this
state_before: α : Type u_1
inst✝ : DecidableEq α
a : α
l₁ l₂ : List α
p : l₁ ~ l₂
⊢ List.insert a l₁ ~ List.insert a l₂
state_after: no goals

tactic: simp [h, p.subset h, p]
state_before: α : Type u_1
inst✝ : DecidableEq α
a : α
l₁ l₂ : List α
p : l₁ ~ l₂
h : a ∈ l₁
⊢ List.insert a l₁ ~ List.insert a l₂
state_after: no goals

tactic: have := p.cons a
state_before: α : Type u_1
inst✝ : DecidableEq α
a : α
l₁ l₂ : List α
p : l₁ ~ l₂
h : ¬a ∈ l₁
⊢ List.insert a l₁ ~ List.insert a l₂
state_after: α : Type u_1
inst✝ : DecidableEq α
a : α
l₁ l₂ : List α
p : l₁ ~ l₂
h : ¬a ∈ l₁
this : a :: l₁ ~ a :: l₂
⊢ List.insert a l₁ ~ List.insert a l₂

tactic: simpa [h, mt p.mem_iff.2 h] using this
state_before: α : Type u_1
inst✝ : DecidableEq α
a : α
l₁ l₂ : List α
p : l₁ ~ l₂
h : ¬a ∈ l₁
this : a :: l₁ ~ a :: l₂
⊢ List.insert a l₁ ~ List.insert a l₂
state_after: no goals
Theorem: TopCat.Presheaf.presieveOfCovering.mem_grothendieckTopology
File: Mathlib/Topology/Sheaves/SheafCondition/Sites.lean

tactic: intro x hx
state_before: X : TopCat
ι : Type v
U : ι → Opens ↑X
⊢ Sieve.generate (presieveOfCovering U) ∈ (Opens.grothendieckTopology ↑X).sieves (iSup U)
state_after: X : TopCat
ι : Type v
U : ι → Opens ↑X
x : ↑X
hx : x ∈ iSup U
⊢ ∃ U_1 f, (Sieve.generate (presieveOfCovering U)).arrows f ∧ x ∈ U_1

tactic: obtain ⟨i, hxi⟩ := Opens.mem_iSup.mp hx
state_before: X : TopCat
ι : Type v
U : ι → Opens ↑X
x : ↑X
hx : x ∈ iSup U
⊢ ∃ U_1 f, (Sieve.generate (presieveOfCovering U)).arrows f ∧ x ∈ U_1
state_after: case intro
X : TopCat
ι : Type v
U : ι → Opens ↑X
x : ↑X
hx : x ∈ iSup U
i : ι
hxi : x ∈ U i
⊢ ∃ U_1 f, (Sieve.generate (presieveOfCovering U)).arrows f ∧ x ∈ U_1

tactic: exact ⟨U i, Opens.leSupr U i, ⟨U i, 𝟙 _, Opens.leSupr U i, ⟨i, rfl⟩, Category.id_comp _⟩, hxi⟩
state_before: case intro
X : TopCat
ι : Type v
U : ι → Opens ↑X
x : ↑X
hx : x ∈ iSup U
i : ι
hxi : x ∈ U i
⊢ ∃ U_1 f, (Sieve.generate (presieveOfCovering U)).arrows f ∧ x ∈ U_1
state_after: no goals
Theorem: List.mem_of_formPerm_apply_ne
File: Mathlib/GroupTheory/Perm/List.lean

tactic: simpa [or_iff_left_of_imp mem_of_mem_tail] using mem_or_mem_of_zipWith_swap_prod_ne h
state_before: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
l : List α
x : α
h : l.formPerm x ≠ x
⊢ x ∈ l
state_after: no goals
Theorem: Complex.Gammaℝ_eq_zero_iff
File: Mathlib/Analysis/SpecialFunctions/Gamma/Deligne.lean

tactic: simp [Gammaℝ_def, Complex.Gamma_eq_zero_iff, pi_ne_zero, div_eq_iff (two_ne_zero' ℂ), mul_comm]
state_before: s : ℂ
⊢ s.Gammaℝ = 0 ↔ ∃ n, s = -(2 * ↑n)
state_after: no goals
Theorem: AddMonoidAlgebra.support_gen_of_gen'
File: Mathlib/RingTheory/FiniteType.lean

tactic: suffices (of' R M '' ⋃ f ∈ S, (f.support : Set M)) = ⋃ f ∈ S, of' R M '' (f.support : Set M) by
  rw [this]
  exact support_gen_of_gen hS
state_before: R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
inst✝ : AddMonoid M
S : Set R[M]
hS : adjoin R S = ⊤
⊢ adjoin R (of' R M '' ⋃ f ∈ S, ↑f.support) = ⊤
state_after: R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
inst✝ : AddMonoid M
S : Set R[M]
hS : adjoin R S = ⊤
⊢ of' R M '' ⋃ f ∈ S, ↑f.support = ⋃ f ∈ S, of' R M '' ↑f.support

tactic: simp only [Set.image_iUnion]
state_before: R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
inst✝ : AddMonoid M
S : Set R[M]
hS : adjoin R S = ⊤
⊢ of' R M '' ⋃ f ∈ S, ↑f.support = ⋃ f ∈ S, of' R M '' ↑f.support
state_after: no goals

tactic: rw [this]
state_before: R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
inst✝ : AddMonoid M
S : Set R[M]
hS : adjoin R S = ⊤
this : of' R M '' ⋃ f ∈ S, ↑f.support = ⋃ f ∈ S, of' R M '' ↑f.support
⊢ adjoin R (of' R M '' ⋃ f ∈ S, ↑f.support) = ⊤
state_after: R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
inst✝ : AddMonoid M
S : Set R[M]
hS : adjoin R S = ⊤
this : of' R M '' ⋃ f ∈ S, ↑f.support = ⋃ f ∈ S, of' R M '' ↑f.support
⊢ adjoin R (⋃ f ∈ S, of' R M '' ↑f.support) = ⊤

tactic: exact support_gen_of_gen hS
state_before: R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
inst✝ : AddMonoid M
S : Set R[M]
hS : adjoin R S = ⊤
this : of' R M '' ⋃ f ∈ S, ↑f.support = ⋃ f ∈ S, of' R M '' ↑f.support
⊢ adjoin R (⋃ f ∈ S, of' R M '' ↑f.support) = ⊤
state_after: no goals
Theorem: Ordinal.blsub_type
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: rw [blsub_le_iff, lsub_le_iff]
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α✝ → α✝ → Prop
s : β → β → Prop
t : γ → γ → Prop
α : Type u
r : α → α → Prop
inst✝ : IsWellOrder α r
f : (a : Ordinal.{u}) → a < type r → Ordinal.{max u v}
o : Ordinal.{max u v}
⊢ (type r).blsub f ≤ o ↔ (lsub fun a => f (typein r a) ⋯) ≤ o
state_after: α✝ : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α✝ → α✝ → Prop
s : β → β → Prop
t : γ → γ → Prop
α : Type u
r : α → α → Prop
inst✝ : IsWellOrder α r
f : (a : Ordinal.{u}) → a < type r → Ordinal.{max u v}
o : Ordinal.{max u v}
⊢ (∀ (i : Ordinal.{u}) (h : i < type r), f i h < o) ↔ ∀ (i : α), f (typein r i) ⋯ < o

tactic: exact ⟨fun H b => H _ _, fun H i h => by simpa only [typein_enum] using H (enum r i h)⟩
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α✝ → α✝ → Prop
s : β → β → Prop
t : γ → γ → Prop
α : Type u
r : α → α → Prop
inst✝ : IsWellOrder α r
f : (a : Ordinal.{u}) → a < type r → Ordinal.{max u v}
o : Ordinal.{max u v}
⊢ (∀ (i : Ordinal.{u}) (h : i < type r), f i h < o) ↔ ∀ (i : α), f (typein r i) ⋯ < o
state_after: no goals

tactic: simpa only [typein_enum] using H (enum r i h)
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α✝ → α✝ → Prop
s : β → β → Prop
t : γ → γ → Prop
α : Type u
r : α → α → Prop
inst✝ : IsWellOrder α r
f : (a : Ordinal.{u}) → a < type r → Ordinal.{max u v}
o : Ordinal.{max u v}
H : ∀ (i : α), f (typein r i) ⋯ < o
i : Ordinal.{u}
h : i < type r
⊢ f i h < o
state_after: no goals
Theorem: WeierstrassCurve.Jacobian.dblY_of_Y_eq
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

tactic: erw [dblY, dblZ_of_Y_eq hQz hx hy hy', negY_of_Z_eq_zero rfl, negDblY_of_Y_eq hQz hx hy hy',
  ← Odd.neg_pow <| by decide, neg_neg]
state_before: R : Type u
inst✝² : CommRing R
W' : Jacobian R
F : Type v
inst✝¹ : Field F
W : Jacobian F
inst✝ : NoZeroDivisors R
P Q : Fin 3 → R
hQz : Q z ≠ 0
hx : P x * Q z ^ 2 = Q x * P z ^ 2
hy : P y * Q z ^ 3 = Q y * P z ^ 3
hy' : P y * Q z ^ 3 = W'.negY Q * P z ^ 3
⊢ W'.dblY P = W'.dblU P ^ 3
state_after: no goals

tactic: decide
state_before: R : Type u
inst✝² : CommRing R
W' : Jacobian R
F : Type v
inst✝¹ : Field F
W : Jacobian F
inst✝ : NoZeroDivisors R
P Q : Fin 3 → R
hQz : Q z ≠ 0
hx : P x * Q z ^ 2 = Q x * P z ^ 2
hy : P y * Q z ^ 3 = Q y * P z ^ 3
hy' : P y * Q z ^ 3 = W'.negY Q * P z ^ 3
⊢ Odd 3
state_after: no goals
Theorem: IsSl2Triple.lie_lie_smul_f
File: Mathlib/Algebra/Lie/Sl2.lean

tactic: simp [t.lie_h_f_nsmul, two_smul]
state_before: R : Type u_1
L : Type u_2
M : Type u_3
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra R L
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : LieRingModule L M
inst✝ : LieModule R L M
h e f : L
t : IsSl2Triple h e f
⊢ ⁅h, f⁆ = -(2 • f)
state_after: no goals
Theorem: CoxeterSystem.not_isRightDescent_iff
File: Mathlib/GroupTheory/Coxeter/Length.lean

tactic: unfold IsRightDescent
state_before: B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
i : B
⊢ ¬cs.IsRightDescent w i ↔ cs.length (w * cs.simple i) = cs.length w + 1
state_after: B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
i : B
⊢ ¬cs.length (w * cs.simple i) < cs.length w ↔ cs.length (w * cs.simple i) = cs.length w + 1

tactic: constructor
state_before: B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
i : B
⊢ ¬cs.length (w * cs.simple i) < cs.length w ↔ cs.length (w * cs.simple i) = cs.length w + 1
state_after: case mp
B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
i : B
⊢ ¬cs.length (w * cs.simple i) < cs.length w → cs.length (w * cs.simple i) = cs.length w + 1

case mpr
B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
i : B
⊢ cs.length (w * cs.simple i) = cs.length w + 1 → ¬cs.length (w * cs.simple i) < cs.length w

tactic: intro _
state_before: case mp
B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
i : B
⊢ ¬cs.length (w * cs.simple i) < cs.length w → cs.length (w * cs.simple i) = cs.length w + 1
state_after: case mp
B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
i : B
a✝ : ¬cs.length (w * cs.simple i) < cs.length w
⊢ cs.length (w * cs.simple i) = cs.length w + 1

tactic: exact (cs.length_mul_simple w i).resolve_right (by linarith)
state_before: case mp
B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
i : B
a✝ : ¬cs.length (w * cs.simple i) < cs.length w
⊢ cs.length (w * cs.simple i) = cs.length w + 1
state_after: no goals

tactic: linarith
state_before: B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
i : B
a✝ : ¬cs.length (w * cs.simple i) < cs.length w
⊢ ¬cs.length (w * cs.simple i) + 1 = cs.length w
state_after: no goals

tactic: intro _
state_before: case mpr
B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
i : B
⊢ cs.length (w * cs.simple i) = cs.length w + 1 → ¬cs.length (w * cs.simple i) < cs.length w
state_after: case mpr
B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
i : B
a✝ : cs.length (w * cs.simple i) = cs.length w + 1
⊢ ¬cs.length (w * cs.simple i) < cs.length w

tactic: linarith
state_before: case mpr
B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
i : B
a✝ : cs.length (w * cs.simple i) = cs.length w + 1
⊢ ¬cs.length (w * cs.simple i) < cs.length w
state_after: no goals
Theorem: Orientation.kahler_apply_self
File: Mathlib/Analysis/InnerProductSpace/TwoDim.lean

tactic: simp [kahler_apply_apply, real_inner_self_eq_norm_sq]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x : E
⊢ (o.kahler x) x = ↑‖x‖ ^ 2
state_after: no goals
Theorem: frontier_Ico
File: Mathlib/Topology/Order/DenselyOrdered.lean

tactic: rw [frontier, closure_Ico h.ne, interior_Ico, Icc_diff_Ioo_same h.le]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : DenselyOrdered α
a✝ b✝ : α
s : Set α
inst✝ : NoMinOrder α
a b : α
h : a < b
⊢ frontier (Ico a b) = {a, b}
state_after: no goals
Theorem: SimpleGraph.boxProd_adj_left
File: Mathlib/Combinatorics/SimpleGraph/Prod.lean

tactic: simp only [boxProd_adj, and_true, SimpleGraph.irrefl, false_and, or_false]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
G : SimpleGraph α
H : SimpleGraph β
a₁ : α
b : β
a₂ : α
⊢ (G □ H).Adj (a₁, b) (a₂, b) ↔ G.Adj a₁ a₂
state_after: no goals
Theorem: ProbabilityTheory.gaussianReal_absolutelyContinuous
File: Mathlib/Probability/Distributions/Gaussian.lean

tactic: rw [gaussianReal_of_var_ne_zero _ hv]
state_before: μ : ℝ
v : ℝ≥0
hv : v ≠ 0
⊢ gaussianReal μ v ≪ ℙ
state_after: μ : ℝ
v : ℝ≥0
hv : v ≠ 0
⊢ ℙ.withDensity (gaussianPDF μ v) ≪ ℙ

tactic: exact withDensity_absolutelyContinuous _ _
state_before: μ : ℝ
v : ℝ≥0
hv : v ≠ 0
⊢ ℙ.withDensity (gaussianPDF μ v) ≪ ℙ
state_after: no goals
Theorem: Finset.preimage_mul_right_one
File: Mathlib/Data/Finset/Pointwise.lean

tactic: classical rw [← image_mul_right', image_one, one_mul]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝ : Group α
s t : Finset α
a b : α
⊢ preimage 1 (fun x => x * b) ⋯ = {b⁻¹}
state_after: no goals

tactic: rw [← image_mul_right', image_one, one_mul]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝ : Group α
s t : Finset α
a b : α
⊢ preimage 1 (fun x => x * b) ⋯ = {b⁻¹}
state_after: no goals
Theorem: Units.map_neg
File: Mathlib/Algebra/Ring/Units.lean

tactic: simp only [coe_map, Units.val_neg, MonoidHom.coe_coe, map_neg]
state_before: α : Type u
β : Type v
γ : Type w
R : Type x
inst✝³ : Ring α
a b : α
F : Type u_1
inst✝² : Ring β
inst✝¹ : FunLike F α β
inst✝ : RingHomClass F α β
f : F
u : αˣ
⊢ ↑((map ↑f) (-u)) = ↑(-(map ↑f) u)
state_after: no goals