1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: inf_sdiff
File: Mathlib/Order/BooleanAlgebra.lean

tactic: rw [sup_inf_left]
state_before: α : Type u
β : Type u_1
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ x ⊓ y ⊓ z ⊔ x \ z ⊓ y \ z = (x ⊓ y ⊓ z ⊔ x \ z) ⊓ (x ⊓ y ⊓ z ⊔ y \ z)
state_after: no goals

tactic: rw [sup_inf_right, sup_sdiff_self_right, inf_sup_right, inf_sdiff_sup_right]
state_before: α : Type u
β : Type u_1
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ (x ⊓ y ⊓ z ⊔ x \ z) ⊓ (x ⊓ y ⊓ z ⊔ y \ z) = (x ⊓ y ⊓ (z ⊔ x) ⊔ x \ z) ⊓ (x ⊓ y ⊓ z ⊔ y \ z)
state_after: no goals

tactic: ac_rfl
state_before: α : Type u
β : Type u_1
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ (x ⊓ y ⊓ (z ⊔ x) ⊔ x \ z) ⊓ (x ⊓ y ⊓ z ⊔ y \ z) = (y ⊓ (x ⊓ (x ⊔ z)) ⊔ x \ z) ⊓ (x ⊓ y ⊓ z ⊔ y \ z)
state_after: no goals

tactic: rw [inf_sup_self, sup_inf_inf_sdiff]
state_before: α : Type u
β : Type u_1
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ (y ⊓ (x ⊓ (x ⊔ z)) ⊔ x \ z) ⊓ (x ⊓ y ⊓ z ⊔ y \ z) = (y ⊓ x ⊔ x \ z) ⊓ (x ⊓ y ⊔ y \ z)
state_after: no goals

tactic: rw [inf_comm y, sup_inf_left]
state_before: α : Type u
β : Type u_1
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ (y ⊓ x ⊔ x \ z) ⊓ (x ⊓ y ⊔ y \ z) = x ⊓ y ⊔ x \ z ⊓ y \ z
state_after: no goals

tactic: ac_rfl
state_before: α : Type u
β : Type u_1
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ x ⊓ y ⊓ z ⊓ (x \ z ⊓ y \ z) = x ⊓ y ⊓ (z ⊓ x \ z) ⊓ y \ z
state_after: no goals

tactic: rw [inf_sdiff_self_right, inf_bot_eq, bot_inf_eq]
state_before: α : Type u
β : Type u_1
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ x ⊓ y ⊓ (z ⊓ x \ z) ⊓ y \ z = ⊥
state_after: no goals
Theorem: MeasureTheory.Measure.ae_measure_lt_top
File: Mathlib/MeasureTheory/Constructions/Prod/Basic.lean

tactic: rw [prod_apply hs] at h2s
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁶ : MeasurableSpace α
inst✝⁵ : MeasurableSpace α'
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace β'
inst✝² : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝¹ : NormedAddCommGroup E
inst✝ : SFinite ν
s : Set (α × β)
hs : MeasurableSet s
h2s : (μ.prod ν) s ≠ ⊤
⊢ ∀ᵐ (x : α) ∂μ, ν (Prod.mk x ⁻¹' s) < ⊤
state_after: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁶ : MeasurableSpace α
inst✝⁵ : MeasurableSpace α'
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace β'
inst✝² : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝¹ : NormedAddCommGroup E
inst✝ : SFinite ν
s : Set (α × β)
hs : MeasurableSet s
h2s : ∫⁻ (x : α), ν (Prod.mk x ⁻¹' s) ∂μ ≠ ⊤
⊢ ∀ᵐ (x : α) ∂μ, ν (Prod.mk x ⁻¹' s) < ⊤

tactic: exact ae_lt_top (measurable_measure_prod_mk_left hs) h2s
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁶ : MeasurableSpace α
inst✝⁵ : MeasurableSpace α'
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace β'
inst✝² : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝¹ : NormedAddCommGroup E
inst✝ : SFinite ν
s : Set (α × β)
hs : MeasurableSet s
h2s : ∫⁻ (x : α), ν (Prod.mk x ⁻¹' s) ∂μ ≠ ⊤
⊢ ∀ᵐ (x : α) ∂μ, ν (Prod.mk x ⁻¹' s) < ⊤
state_after: no goals
Theorem: Algebra.isAlgebraic_iff
File: Mathlib/RingTheory/Algebraic.lean

tactic: delta Subalgebra.IsAlgebraic
state_before: R : Type u
A : Type v
inst✝² : CommRing R
inst✝¹ : Ring A
inst✝ : Algebra R A
⊢ Algebra.IsAlgebraic R A ↔ ⊤.IsAlgebraic
state_after: R : Type u
A : Type v
inst✝² : CommRing R
inst✝¹ : Ring A
inst✝ : Algebra R A
⊢ Algebra.IsAlgebraic R A ↔ ∀ x ∈ ⊤, IsAlgebraic R x

tactic: simp only [Algebra.isAlgebraic_def, Algebra.mem_top, forall_prop_of_true, iff_self_iff]
state_before: R : Type u
A : Type v
inst✝² : CommRing R
inst✝¹ : Ring A
inst✝ : Algebra R A
⊢ Algebra.IsAlgebraic R A ↔ ∀ x ∈ ⊤, IsAlgebraic R x
state_after: no goals
Theorem: Set.Finite.cofinite_inf_principal_compl
File: Mathlib/Order/Filter/Cofinite.lean

tactic: simpa using hs.compl_mem_cofinite
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
l : Filter α
s : Set α
hs : s.Finite
⊢ cofinite ⊓ 𝓟 sᶜ = cofinite
state_after: no goals
Theorem: extChartAt_preimage_mem_nhds
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: apply (continuousAt_extChartAt_symm I x).preimage_mem_nhds
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : TopologicalSpace H
inst✝⁶ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝¹ : ChartedSpace H M
inst✝ : ChartedSpace H' M'
x : M
ht : t ∈ 𝓝 x
⊢ ↑(extChartAt I x).symm ⁻¹' t ∈ 𝓝 (↑(extChartAt I x) x)
state_after: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : TopologicalSpace H
inst✝⁶ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝¹ : ChartedSpace H M
inst✝ : ChartedSpace H' M'
x : M
ht : t ∈ 𝓝 x
⊢ t ∈ 𝓝 (↑(extChartAt I x).symm (↑(extChartAt I x) x))

tactic: rwa [(extChartAt I x).left_inv (mem_extChartAt_source _ _)]
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : TopologicalSpace H
inst✝⁶ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝¹ : ChartedSpace H M
inst✝ : ChartedSpace H' M'
x : M
ht : t ∈ 𝓝 x
⊢ t ∈ 𝓝 (↑(extChartAt I x).symm (↑(extChartAt I x) x))
state_after: no goals
Theorem: ZMod.div_eq_filter_card
File: Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean

tactic: simp
state_before: a b c : ℕ
hb0 : 0 < b
hc : a / b ≤ c
⊢ a / b = (Ico 1 (a / b).succ).card
state_after: no goals

tactic: have : x * b ≤ a → x ≤ c := fun h => le_trans (by rwa [le_div_iff_mul_le hb0]) hc
state_before: a b c : ℕ
hb0 : 0 < b
hc : a / b ≤ c
x : ℕ
⊢ x ∈ Ico 1 (a / b).succ ↔ x ∈ filter (fun x => x * b ≤ a) (Ico 1 c.succ)
state_after: a b c : ℕ
hb0 : 0 < b
hc : a / b ≤ c
x : ℕ
this : x * b ≤ a → x ≤ c
⊢ x ∈ Ico 1 (a / b).succ ↔ x ∈ filter (fun x => x * b ≤ a) (Ico 1 c.succ)

tactic: simp [Nat.lt_succ_iff, le_div_iff_mul_le hb0]
state_before: a b c : ℕ
hb0 : 0 < b
hc : a / b ≤ c
x : ℕ
this : x * b ≤ a → x ≤ c
⊢ x ∈ Ico 1 (a / b).succ ↔ x ∈ filter (fun x => x * b ≤ a) (Ico 1 c.succ)
state_after: a b c : ℕ
hb0 : 0 < b
hc : a / b ≤ c
x : ℕ
this : x * b ≤ a → x ≤ c
⊢ x * b ≤ a → 1 ≤ x → x ≤ c

tactic: tauto
state_before: a b c : ℕ
hb0 : 0 < b
hc : a / b ≤ c
x : ℕ
this : x * b ≤ a → x ≤ c
⊢ x * b ≤ a → 1 ≤ x → x ≤ c
state_after: no goals

tactic: rwa [le_div_iff_mul_le hb0]
state_before: a b c : ℕ
hb0 : 0 < b
hc : a / b ≤ c
x : ℕ
h : x * b ≤ a
⊢ x ≤ a / b
state_after: no goals
Theorem: GeneralizedContinuedFraction.coe_of_s_rat_eq
File: Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean

tactic: ext n
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
q : ℚ
v_eq_q : v = ↑q
n : ℕ
⊢ Stream'.Seq.map (Pair.map Rat.cast) (of q).s = (of v).s
state_after: case h.a
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
q : ℚ
v_eq_q : v = ↑q
n✝ n : ℕ
a✝ : Pair K
⊢ a✝ ∈ (Stream'.Seq.map (Pair.map Rat.cast) (of q).s).get? n ↔ a✝ ∈ (of v).s.get? n

tactic: rw [← coe_of_s_get?_rat_eq v_eq_q]
state_before: case h.a
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
q : ℚ
v_eq_q : v = ↑q
n✝ n : ℕ
a✝ : Pair K
⊢ a✝ ∈ (Stream'.Seq.map (Pair.map Rat.cast) (of q).s).get? n ↔ a✝ ∈ (of v).s.get? n
state_after: case h.a
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
q : ℚ
v_eq_q : v = ↑q
n✝ n : ℕ
a✝ : Pair K
⊢ a✝ ∈ (Stream'.Seq.map (Pair.map Rat.cast) (of q).s).get? n ↔ a✝ ∈ Option.map (Pair.map Rat.cast) ((of q).s.get? n)

tactic: rfl
state_before: case h.a
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
q : ℚ
v_eq_q : v = ↑q
n✝ n : ℕ
a✝ : Pair K
⊢ a✝ ∈ (Stream'.Seq.map (Pair.map Rat.cast) (of q).s).get? n ↔ a✝ ∈ Option.map (Pair.map Rat.cast) ((of q).s.get? n)
state_after: no goals
Theorem: CategoryTheory.Idempotents.Karoubi.decompId_p_naturality
File: Mathlib/CategoryTheory/Idempotents/Karoubi.lean

tactic: exact Hom.mk f.f (by simp)
state_before: C : Type u_1
inst✝ : Category.{?u.42944, u_1} C
P Q : Karoubi C
f : P ⟶ Q
⊢ { X := P.X, p := 𝟙 P.X, idem := ⋯ } ⟶ { X := Q.X, p := 𝟙 Q.X, idem := ⋯ }
state_after: no goals

tactic: simp
state_before: C : Type u_1
inst✝ : Category.{?u.42944, u_1} C
P Q : Karoubi C
f : P ⟶ Q
⊢ f.f = { X := P.X, p := 𝟙 P.X, idem := ⋯ }.p ≫ f.f ≫ { X := Q.X, p := 𝟙 Q.X, idem := ⋯ }.p
state_after: no goals

tactic: aesop_cat
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
P Q : Karoubi C
f : P ⟶ Q
⊢ P.decompId_p ≫ f = { f := f.f, comm := ⋯ } ≫ Q.decompId_p
state_after: no goals
Theorem: mul_comm_div
File: Mathlib/Algebra/Group/Basic.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionCommMonoid α
a b c d : α
⊢ a / b * c = a * (c / b)
state_after: no goals
Theorem: MeasureTheory.Measure.quasiMeasurePreserving_fst
File: Mathlib/MeasureTheory/Constructions/Prod/Basic.lean

tactic: refine ⟨measurable_fst, AbsolutelyContinuous.mk fun s hs h2s => ?_⟩
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁶ : MeasurableSpace α
inst✝⁵ : MeasurableSpace α'
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace β'
inst✝² : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝¹ : NormedAddCommGroup E
inst✝ : SFinite ν
⊢ QuasiMeasurePreserving Prod.fst (μ.prod ν) μ
state_after: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁶ : MeasurableSpace α
inst✝⁵ : MeasurableSpace α'
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace β'
inst✝² : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝¹ : NormedAddCommGroup E
inst✝ : SFinite ν
s : Set α
hs : MeasurableSet s
h2s : μ s = 0
⊢ (map Prod.fst (μ.prod ν)) s = 0

tactic: rw [map_apply measurable_fst hs, ← prod_univ, prod_prod, h2s, zero_mul]
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁶ : MeasurableSpace α
inst✝⁵ : MeasurableSpace α'
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace β'
inst✝² : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝¹ : NormedAddCommGroup E
inst✝ : SFinite ν
s : Set α
hs : MeasurableSet s
h2s : μ s = 0
⊢ (map Prod.fst (μ.prod ν)) s = 0
state_after: no goals
Theorem: Matrix.submatrix_succAbove_det_eq_negOnePow_submatrix_succAbove_det'
File: Mathlib/LinearAlgebra/Matrix/Determinant/Misc.lean

tactic: rw [← det_transpose, transpose_submatrix,
  submatrix_succAbove_det_eq_negOnePow_submatrix_succAbove_det M.transpose ?_ j₁ j₂,
  ← det_transpose, transpose_submatrix, transpose_transpose]
state_before: R : Type u_1
inst✝ : CommRing R
n : ℕ
M : Matrix (Fin n) (Fin (n + 1)) R
hv : ∀ (i : Fin n), ∑ j : Fin (n + 1), M i j = 0
j₁ j₂ : Fin (n + 1)
⊢ (M.submatrix id j₁.succAbove).det = (↑↑j₁ - ↑↑j₂).negOnePow • (M.submatrix id j₂.succAbove).det
state_after: R : Type u_1
inst✝ : CommRing R
n : ℕ
M : Matrix (Fin n) (Fin (n + 1)) R
hv : ∀ (i : Fin n), ∑ j : Fin (n + 1), M i j = 0
j₁ j₂ : Fin (n + 1)
⊢ ∑ j : Fin (n + 1), Mᵀ j = 0

tactic: ext
state_before: R : Type u_1
inst✝ : CommRing R
n : ℕ
M : Matrix (Fin n) (Fin (n + 1)) R
hv : ∀ (i : Fin n), ∑ j : Fin (n + 1), M i j = 0
j₁ j₂ : Fin (n + 1)
⊢ ∑ j : Fin (n + 1), Mᵀ j = 0
state_after: case h
R : Type u_1
inst✝ : CommRing R
n : ℕ
M : Matrix (Fin n) (Fin (n + 1)) R
hv : ∀ (i : Fin n), ∑ j : Fin (n + 1), M i j = 0
j₁ j₂ : Fin (n + 1)
x✝ : Fin n
⊢ (∑ j : Fin (n + 1), Mᵀ j) x✝ = 0 x✝

tactic: simp_rw [Finset.sum_apply, transpose_apply, hv, Pi.zero_apply]
state_before: case h
R : Type u_1
inst✝ : CommRing R
n : ℕ
M : Matrix (Fin n) (Fin (n + 1)) R
hv : ∀ (i : Fin n), ∑ j : Fin (n + 1), M i j = 0
j₁ j₂ : Fin (n + 1)
x✝ : Fin n
⊢ (∑ j : Fin (n + 1), Mᵀ j) x✝ = 0 x✝
state_after: no goals
Theorem: CompleteSublattice.isCompl_iff
File: Mathlib/Order/CompleteSublattice.lean

tactic: rw [isCompl_iff, isCompl_iff, CompleteSublattice.disjoint_iff, CompleteSublattice.codisjoint_iff]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : CompleteLattice α
inst✝ : CompleteLattice β
f : CompleteLatticeHom α β
L : CompleteSublattice α
a b : ↥L
⊢ IsCompl a b ↔ IsCompl ↑a ↑b
state_after: no goals
Theorem: FirstOrder.Language.DirectLimit.lift_quotient_mk'_sigma_mk'
File: Mathlib/ModelTheory/DirectLimit.lean

tactic: change (lift L ι G f g Hg).toFun ⟦.mk f i x⟧ = _
state_before: L : Language
ι : Type v
inst✝⁵ : Preorder ι
G : ι → Type w
inst✝⁴ : (i : ι) → L.Structure (G i)
f : (i j : ι) → i ≤ j → G i ↪[L] G j
inst✝³ : IsDirected ι fun x x_1 => x ≤ x_1
inst✝² : DirectedSystem G fun i j h => ⇑(f i j h)
inst✝¹ : Nonempty ι
P : Type u₁
inst✝ : L.Structure P
g : (i : ι) → G i ↪[L] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), (g j) ((f i j hij) x) = (g i) x
i : ι
x : G i
⊢ (lift L ι G f g Hg) ⟦Structure.Sigma.mk f i x⟧ = (g i) x
state_after: L : Language
ι : Type v
inst✝⁵ : Preorder ι
G : ι → Type w
inst✝⁴ : (i : ι) → L.Structure (G i)
f : (i j : ι) → i ≤ j → G i ↪[L] G j
inst✝³ : IsDirected ι fun x x_1 => x ≤ x_1
inst✝² : DirectedSystem G fun i j h => ⇑(f i j h)
inst✝¹ : Nonempty ι
P : Type u₁
inst✝ : L.Structure P
g : (i : ι) → G i ↪[L] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), (g j) ((f i j hij) x) = (g i) x
i : ι
x : G i
⊢ (lift L ι G f g Hg).toFun ⟦Structure.Sigma.mk f i x⟧ = (g i) x

tactic: simp only [lift, Quotient.lift_mk]
state_before: L : Language
ι : Type v
inst✝⁵ : Preorder ι
G : ι → Type w
inst✝⁴ : (i : ι) → L.Structure (G i)
f : (i j : ι) → i ≤ j → G i ↪[L] G j
inst✝³ : IsDirected ι fun x x_1 => x ≤ x_1
inst✝² : DirectedSystem G fun i j h => ⇑(f i j h)
inst✝¹ : Nonempty ι
P : Type u₁
inst✝ : L.Structure P
g : (i : ι) → G i ↪[L] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), (g j) ((f i j hij) x) = (g i) x
i : ι
x : G i
⊢ (lift L ι G f g Hg).toFun ⟦Structure.Sigma.mk f i x⟧ = (g i) x
state_after: no goals
Theorem: neg_smul
File: Mathlib/Algebra/Module/Defs.lean

tactic: rw [← add_smul, add_left_neg, zero_smul]
state_before: α : Type u_1
R : Type u_2
k : Type u_3
S : Type u_4
M : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
inst✝² : Ring R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
r s : R
x y : M
⊢ -r • x + r • x = 0
state_after: no goals
Theorem: Polynomial.dvd_C_mul
File: Mathlib/Algebra/Polynomial/FieldDivision.lean

tactic: rw [mul_left_comm p, ← hr, ← mul_assoc, ← C.map_mul, _root_.inv_mul_cancel ha, C.map_one,
  one_mul]
state_before: R : Type u
S : Type v
k : Type y
A : Type z
a b : R
n : ℕ
inst✝ : Field R
p q : R[X]
ha : a ≠ 0
x✝ : p ∣ C a * q
r : R[X]
hr : C a * q = p * r
⊢ q = p * (C a⁻¹ * r)
state_after: no goals
Theorem: Nat.ofDigits_singleton
File: Mathlib/Data/Nat/Digits.lean

tactic: simp [ofDigits]
state_before: n✝ b n : ℕ
⊢ ofDigits b [n] = n
state_after: no goals
Theorem: WittVector.ghostFun_add
File: Mathlib/RingTheory/WittVector/Basic.lean

tactic: ghost_fun_tac X 0 + X 1, ![x.coeff, y.coeff]
state_before: p : ℕ
R : Type u_1
S : Type u_2
T : Type u_3
hp : Fact (Nat.Prime p)
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : CommRing T
α : Type u_4
β : Type u_5
x y : 𝕎 R
⊢ WittVector.ghostFun (x + y) = WittVector.ghostFun x + WittVector.ghostFun y
state_after: no goals
Theorem: Int.mul_eq_neg_one_iff_eq_one_or_neg_one
File: Mathlib/Algebra/Group/Int.lean

tactic: refine ⟨eq_one_or_neg_one_of_mul_eq_neg_one', fun h ↦ Or.elim h (fun H ↦ ?_) fun H ↦ ?_⟩ <;>
  obtain ⟨rfl, rfl⟩ := H <;> rfl
state_before: u v : ℤ
⊢ u * v = -1 ↔ u = 1 ∧ v = -1 ∨ u = -1 ∧ v = 1
state_after: no goals
Theorem: GeneralizedContinuedFraction.part_num_none_iff_s_none
File: Mathlib/Algebra/ContinuedFractions/Translations.lean

tactic: cases s_nth_eq : g.s.get? n <;> simp [partialNumerators, s_nth_eq]
state_before: α : Type u_1
g : GeneralizedContinuedFraction α
n : ℕ
⊢ g.partialNumerators.get? n = none ↔ g.s.get? n = none
state_after: no goals
Theorem: Multiset.singleton_inj
File: Mathlib/Data/Multiset/Basic.lean

tactic: simp_rw [← cons_zero]
state_before: α : Type u_1
β : Type v
γ : Type u_2
a b : α
⊢ {a} = {b} ↔ a = b
state_after: α : Type u_1
β : Type v
γ : Type u_2
a b : α
⊢ a ::ₘ 0 = b ::ₘ 0 ↔ a = b

tactic: exact cons_inj_left _
state_before: α : Type u_1
β : Type v
γ : Type u_2
a b : α
⊢ a ::ₘ 0 = b ::ₘ 0 ↔ a = b
state_after: no goals
Theorem: MonCat.FilteredColimits.colimit_one_eq
File: Mathlib/Algebra/Category/MonCat/FilteredColimits.lean

tactic: apply M.mk_eq
state_before: J : Type v
inst✝¹ : SmallCategory J
F : J ⥤ MonCatMax
inst✝ : IsFiltered J
j : J
⊢ 1 = M.mk F ⟨j, 1⟩
state_after: case h
J : Type v
inst✝¹ : SmallCategory J
F : J ⥤ MonCatMax
inst✝ : IsFiltered J
j : J
⊢ ∃ k f g, (F.map f) ⟨⋯.some, 1⟩.snd = (F.map g) ⟨j, 1⟩.snd

tactic: refine ⟨max' _ j, IsFiltered.leftToMax _ j, IsFiltered.rightToMax _ j, ?_⟩
state_before: case h
J : Type v
inst✝¹ : SmallCategory J
F : J ⥤ MonCatMax
inst✝ : IsFiltered J
j : J
⊢ ∃ k f g, (F.map f) ⟨⋯.some, 1⟩.snd = (F.map g) ⟨j, 1⟩.snd
state_after: case h
J : Type v
inst✝¹ : SmallCategory J
F : J ⥤ MonCatMax
inst✝ : IsFiltered J
j : J
⊢ (F.map (IsFiltered.leftToMax ⟨⋯.some, 1⟩.fst j)) ⟨⋯.some, 1⟩.snd =
    (F.map (IsFiltered.rightToMax ⟨⋯.some, 1⟩.fst j)) ⟨j, 1⟩.snd

tactic: simp
state_before: case h
J : Type v
inst✝¹ : SmallCategory J
F : J ⥤ MonCatMax
inst✝ : IsFiltered J
j : J
⊢ (F.map (IsFiltered.leftToMax ⟨⋯.some, 1⟩.fst j)) ⟨⋯.some, 1⟩.snd =
    (F.map (IsFiltered.rightToMax ⟨⋯.some, 1⟩.fst j)) ⟨j, 1⟩.snd
state_after: no goals
Theorem: CategoryTheory.Presieve.isSheaf_bot
File: Mathlib/CategoryTheory/Sites/SheafOfTypes.lean

tactic: simp [isSheafFor_top_sieve]
state_before: C : Type u
inst✝ : Category.{v, u} C
P : Cᵒᵖ ⥤ Type w
X✝ : C
J J₂ : GrothendieckTopology C
X : C
⊢ ∀ S ∈ ⊥.sieves X, IsSheafFor P S.arrows
state_after: no goals
Theorem: HomologicalComplex.eqToHom_comp_d
File: Mathlib/Algebra/Homology/HomologicalComplex.lean

tactic: obtain rfl := c.prev_eq rij rij'
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
i i' j : ι
rij : c.Rel i j
rij' : c.Rel i' j
⊢ eqToHom ⋯ ≫ C.d i' j = C.d i j
state_after: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
i j : ι
rij rij' : c.Rel i j
⊢ eqToHom ⋯ ≫ C.d i j = C.d i j

tactic: simp only [eqToHom_refl, id_comp]
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
i j : ι
rij rij' : c.Rel i j
⊢ eqToHom ⋯ ≫ C.d i j = C.d i j
state_after: no goals
Theorem: PNat.XgcdType.flip_isReduced
File: Mathlib/Data/PNat/Xgcd.lean

tactic: dsimp [IsReduced, flip]
state_before: u : XgcdType
⊢ u.flip.IsReduced ↔ u.IsReduced
state_after: u : XgcdType
⊢ u.bp = u.ap ↔ u.ap = u.bp

tactic: constructor <;> intro h <;> exact h.symm
state_before: u : XgcdType
⊢ u.bp = u.ap ↔ u.ap = u.bp
state_after: no goals
Theorem: Set.preimage_mul_right_one
File: Mathlib/Data/Set/Pointwise/Basic.lean

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 : Set α
a b : α
⊢ (fun x => x * b) ⁻¹' 1 = {b⁻¹}
state_after: no goals
Theorem: HasDerivWithinAt.mul_const
File: Mathlib/Analysis/Calculus/Deriv/Mul.lean

tactic: convert hc.mul (hasDerivWithinAt_const x s d) using 1
state_before: 𝕜 : Type u
inst✝¹⁰ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
E : Type w
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
G : Type u_1
inst✝⁵ : NormedAddCommGroup G
inst✝⁴ : NormedSpace 𝕜 G
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type u_2
𝔸 : Type u_3
inst✝³ : NormedField 𝕜'
inst✝² : NormedRing 𝔸
inst✝¹ : NormedAlgebra 𝕜 𝕜'
inst✝ : NormedAlgebra 𝕜 𝔸
c d✝ : 𝕜 → 𝔸
c' d' : 𝔸
u v : 𝕜 → 𝕜'
hc : HasDerivWithinAt c c' s x
d : 𝔸
⊢ HasDerivWithinAt (fun y => c y * d) (c' * d) s x
state_after: case h.e'_7
𝕜 : Type u
inst✝¹⁰ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
E : Type w
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
G : Type u_1
inst✝⁵ : NormedAddCommGroup G
inst✝⁴ : NormedSpace 𝕜 G
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type u_2
𝔸 : Type u_3
inst✝³ : NormedField 𝕜'
inst✝² : NormedRing 𝔸
inst✝¹ : NormedAlgebra 𝕜 𝕜'
inst✝ : NormedAlgebra 𝕜 𝔸
c d✝ : 𝕜 → 𝔸
c' d' : 𝔸
u v : 𝕜 → 𝕜'
hc : HasDerivWithinAt c c' s x
d : 𝔸
⊢ c' * d = c' * d + c x * 0

tactic: rw [mul_zero, add_zero]
state_before: case h.e'_7
𝕜 : Type u
inst✝¹⁰ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
E : Type w
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
G : Type u_1
inst✝⁵ : NormedAddCommGroup G
inst✝⁴ : NormedSpace 𝕜 G
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type u_2
𝔸 : Type u_3
inst✝³ : NormedField 𝕜'
inst✝² : NormedRing 𝔸
inst✝¹ : NormedAlgebra 𝕜 𝕜'
inst✝ : NormedAlgebra 𝕜 𝔸
c d✝ : 𝕜 → 𝔸
c' d' : 𝔸
u v : 𝕜 → 𝕜'
hc : HasDerivWithinAt c c' s x
d : 𝔸
⊢ c' * d = c' * d + c x * 0
state_after: no goals
Theorem: Sum.liftRel_inr_inr
File: .lake/packages/batteries/Batteries/Data/Sum/Basic.lean

tactic: cases h
state_before: α✝ : Type u_1
γ✝ : Type u_2
r : α✝ → γ✝ → Prop
β✝ : Type u_3
δ✝ : Type u_4
s : β✝ → δ✝ → Prop
b : β✝
d : δ✝
h : LiftRel r s (inr b) (inr d)
⊢ s b d
state_after: case inr
α✝ : Type u_1
γ✝ : Type u_2
r : α✝ → γ✝ → Prop
β✝ : Type u_3
δ✝ : Type u_4
s : β✝ → δ✝ → Prop
b : β✝
d : δ✝
a✝ : s b d
⊢ s b d

tactic: assumption
state_before: case inr
α✝ : Type u_1
γ✝ : Type u_2
r : α✝ → γ✝ → Prop
β✝ : Type u_3
δ✝ : Type u_4
s : β✝ → δ✝ → Prop
b : β✝
d : δ✝
a✝ : s b d
⊢ s b d
state_after: no goals