1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MeasureTheory.IsFundamentalDomain.covolume_eq_volume
File: Mathlib/MeasureTheory/Group/FundamentalDomain.lean

tactic: dsimp [covolume]
state_before: G : Type u_1
H : Type u_2
α : Type u_3
β : Type u_4
E : Type u_5
inst✝⁶ : Group G
inst✝⁵ : MulAction G α
inst✝⁴ : MeasurableSpace G
inst✝³ : MeasurableSpace α
ν : Measure α
inst✝² : Countable G
inst✝¹ : MeasurableSMul G α
inst✝ : SMulInvariantMeasure G α ν
s : Set α
fund_dom_s : IsFundamentalDomain G s ν
⊢ covolume 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✝⁵ : MulAction G α
inst✝⁴ : MeasurableSpace G
inst✝³ : MeasurableSpace α
ν : Measure α
inst✝² : Countable G
inst✝¹ : MeasurableSMul G α
inst✝ : SMulInvariantMeasure G α ν
s : Set α
fund_dom_s : IsFundamentalDomain G s ν
⊢ (if funDom : HasFundamentalDomain G α ν then ν ⋯.choose else 0) = ν s

tactic: simp only [(fund_dom_s.hasFundamentalDomain ν), ↓reduceDIte]
state_before: G : Type u_1
H : Type u_2
α : Type u_3
β : Type u_4
E : Type u_5
inst✝⁶ : Group G
inst✝⁵ : MulAction G α
inst✝⁴ : MeasurableSpace G
inst✝³ : MeasurableSpace α
ν : Measure α
inst✝² : Countable G
inst✝¹ : MeasurableSMul G α
inst✝ : SMulInvariantMeasure G α ν
s : Set α
fund_dom_s : IsFundamentalDomain G s ν
⊢ (if funDom : HasFundamentalDomain G α ν then ν ⋯.choose else 0) = ν 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✝⁵ : MulAction G α
inst✝⁴ : MeasurableSpace G
inst✝³ : MeasurableSpace α
ν : Measure α
inst✝² : Countable G
inst✝¹ : MeasurableSMul G α
inst✝ : SMulInvariantMeasure G α ν
s : Set α
fund_dom_s : IsFundamentalDomain G s ν
⊢ ν ⋯.choose = ν s

tactic: rw [fund_dom_s.measure_eq]
state_before: G : Type u_1
H : Type u_2
α : Type u_3
β : Type u_4
E : Type u_5
inst✝⁶ : Group G
inst✝⁵ : MulAction G α
inst✝⁴ : MeasurableSpace G
inst✝³ : MeasurableSpace α
ν : Measure α
inst✝² : Countable G
inst✝¹ : MeasurableSMul G α
inst✝ : SMulInvariantMeasure G α ν
s : Set α
fund_dom_s : IsFundamentalDomain G s ν
⊢ ν ⋯.choose = ν 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✝⁵ : MulAction G α
inst✝⁴ : MeasurableSpace G
inst✝³ : MeasurableSpace α
ν : Measure α
inst✝² : Countable G
inst✝¹ : MeasurableSMul G α
inst✝ : SMulInvariantMeasure G α ν
s : Set α
fund_dom_s : IsFundamentalDomain G s ν
⊢ IsFundamentalDomain G ⋯.choose ν

tactic: exact (fund_dom_s.hasFundamentalDomain ν).ExistsIsFundamentalDomain.choose_spec
state_before: G : Type u_1
H : Type u_2
α : Type u_3
β : Type u_4
E : Type u_5
inst✝⁶ : Group G
inst✝⁵ : MulAction G α
inst✝⁴ : MeasurableSpace G
inst✝³ : MeasurableSpace α
ν : Measure α
inst✝² : Countable G
inst✝¹ : MeasurableSMul G α
inst✝ : SMulInvariantMeasure G α ν
s : Set α
fund_dom_s : IsFundamentalDomain G s ν
⊢ IsFundamentalDomain G ⋯.choose ν
state_after: no goals
Theorem: StarAlgHom.fst_prod
File: Mathlib/Algebra/Star/StarAlgHom.lean

tactic: ext
state_before: R : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
inst✝⁹ : CommSemiring R
inst✝⁸ : Semiring A
inst✝⁷ : Algebra R A
inst✝⁶ : Star A
inst✝⁵ : Semiring B
inst✝⁴ : Algebra R B
inst✝³ : Star B
inst✝² : Semiring C
inst✝¹ : Algebra R C
inst✝ : Star C
f : A →⋆ₐ[R] B
g : A →⋆ₐ[R] C
⊢ (fst R B C).comp (f.prod g) = f
state_after: case h
R : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
inst✝⁹ : CommSemiring R
inst✝⁸ : Semiring A
inst✝⁷ : Algebra R A
inst✝⁶ : Star A
inst✝⁵ : Semiring B
inst✝⁴ : Algebra R B
inst✝³ : Star B
inst✝² : Semiring C
inst✝¹ : Algebra R C
inst✝ : Star C
f : A →⋆ₐ[R] B
g : A →⋆ₐ[R] C
x✝ : A
⊢ ((fst R B C).comp (f.prod g)) x✝ = f x✝

tactic: rfl
state_before: case h
R : Type u_1
A : Type u_2
B : Type u_3
C : Type u_4
inst✝⁹ : CommSemiring R
inst✝⁸ : Semiring A
inst✝⁷ : Algebra R A
inst✝⁶ : Star A
inst✝⁵ : Semiring B
inst✝⁴ : Algebra R B
inst✝³ : Star B
inst✝² : Semiring C
inst✝¹ : Algebra R C
inst✝ : Star C
f : A →⋆ₐ[R] B
g : A →⋆ₐ[R] C
x✝ : A
⊢ ((fst R B C).comp (f.prod g)) x✝ = f x✝
state_after: no goals
Theorem: Ordinal.cof_eq_zero
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: simp [e]
state_before: α : Type u_1
r : α → α → Prop
o : Ordinal.{u_2}
e : o = 0
⊢ o.cof = 0
state_after: no goals
Theorem: MvPowerSeries.smul_eq_C_mul
File: Mathlib/RingTheory/MvPowerSeries/Basic.lean

tactic: ext
state_before: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
f : MvPowerSeries σ R
a : R
⊢ a • f = (C σ R) a * f
state_after: case h
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
f : MvPowerSeries σ R
a : R
n✝ : σ →₀ ℕ
⊢ (coeff R n✝) (a • f) = (coeff R n✝) ((C σ R) a * f)

tactic: simp
state_before: case h
σ : Type u_1
R : Type u_2
inst✝ : Semiring R
f : MvPowerSeries σ R
a : R
n✝ : σ →₀ ℕ
⊢ (coeff R n✝) (a • f) = (coeff R n✝) ((C σ R) a * f)
state_after: no goals
Theorem: Equiv.Perm.one_lt_card_support_of_ne_one
File: Mathlib/GroupTheory/Perm/Support.lean

tactic: simp_rw [one_lt_card_iff, mem_support, ← not_or]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g f : Perm α
h : f ≠ 1
⊢ 1 < f.support.card
state_after: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g f : Perm α
h : f ≠ 1
⊢ ∃ a b, ¬(f a = a ∨ f b = b ∨ a = b)

tactic: contrapose! h
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g f : Perm α
h : f ≠ 1
⊢ ∃ a b, ¬(f a = a ∨ f b = b ∨ a = b)
state_after: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g f : Perm α
h : ∀ (a b : α), f a = a ∨ f b = b ∨ a = b
⊢ f = 1

tactic: ext a
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g f : Perm α
h : ∀ (a b : α), f a = a ∨ f b = b ∨ a = b
⊢ f = 1
state_after: case H
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g f : Perm α
h : ∀ (a b : α), f a = a ∨ f b = b ∨ a = b
a : α
⊢ f a = 1 a

tactic: specialize h (f a) a
state_before: case H
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g f : Perm α
h : ∀ (a b : α), f a = a ∨ f b = b ∨ a = b
a : α
⊢ f a = 1 a
state_after: case H
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g f : Perm α
a : α
h : f (f a) = f a ∨ f a = a ∨ f a = a
⊢ f a = 1 a

tactic: rwa [apply_eq_iff_eq, or_self_iff, or_self_iff] at h
state_before: case H
α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g f : Perm α
a : α
h : f (f a) = f a ∨ f a = a ∨ f a = a
⊢ f a = 1 a
state_after: no goals
Theorem: Polynomial.divByMonic_one
File: Mathlib/Algebra/Polynomial/Div.lean

tactic: conv_rhs => rw [← modByMonic_add_div p monic_one]; simp
state_before: R : Type u
S : Type v
T : Type w
A : Type z
a b : R
n : ℕ
inst✝ : Ring R
p✝ q p : R[X]
⊢ p /ₘ 1 = p
state_after: no goals
Theorem: HomologicalComplex.xPrevIsoSelf_comp_dTo
File: Mathlib/Algebra/Homology/HomologicalComplex.lean

tactic: simp [h]
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
j : ι
h : ¬c.Rel (c.prev j) j
⊢ (C.xPrevIsoSelf h).inv ≫ C.dTo j = 0
state_after: no goals
Theorem: Subgroup.le_normalizer_of_normal
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: simpa [mem_subgroupOf, mul_assoc] using
  hK.conj_mem ⟨x * y * x⁻¹, HK yH⟩ yH ⟨x⁻¹, K.inv_mem hx⟩
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : Group G''
A : Type u_4
inst✝ : AddGroup A
H K : Subgroup G
hK : (H.subgroupOf K).Normal
HK : H ≤ K
x : G
hx : x ∈ K
y : G
yH : x * y * x⁻¹ ∈ H
⊢ y ∈ H
state_after: no goals
Theorem: CategoryTheory.Limits.CokernelCofork.condition
File: Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean

tactic: rw [Cofork.condition, zero_comp]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
s : CokernelCofork f
⊢ f ≫ Cofork.π s = 0
state_after: no goals
Theorem: Metric.mem_cocompact_of_closedBall_compl_subset
File: Mathlib/Topology/MetricSpace/Bounded.lean

tactic: rcases h with ⟨r, h⟩
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
x : α
s t : Set α
r : ℝ
inst✝ : ProperSpace α
c : α
h : ∃ r, (closedBall c r)ᶜ ⊆ s
⊢ s ∈ cocompact α
state_after: case intro
α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
x : α
s t : Set α
r✝ : ℝ
inst✝ : ProperSpace α
c : α
r : ℝ
h : (closedBall c r)ᶜ ⊆ s
⊢ s ∈ cocompact α

tactic: rw [Filter.mem_cocompact]
state_before: case intro
α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
x : α
s t : Set α
r✝ : ℝ
inst✝ : ProperSpace α
c : α
r : ℝ
h : (closedBall c r)ᶜ ⊆ s
⊢ s ∈ cocompact α
state_after: case intro
α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
x : α
s t : Set α
r✝ : ℝ
inst✝ : ProperSpace α
c : α
r : ℝ
h : (closedBall c r)ᶜ ⊆ s
⊢ ∃ t, IsCompact t ∧ tᶜ ⊆ s

tactic: exact ⟨closedBall c r, isCompact_closedBall c r, h⟩
state_before: case intro
α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
x : α
s t : Set α
r✝ : ℝ
inst✝ : ProperSpace α
c : α
r : ℝ
h : (closedBall c r)ᶜ ⊆ s
⊢ ∃ t, IsCompact t ∧ tᶜ ⊆ s
state_after: no goals
Theorem: MulAction.IsBlock.mk_notempty_one
File: Mathlib/GroupTheory/GroupAction/Blocks.lean

tactic: simp_rw [IsBlock.def_one, Set.disjoint_iff_inter_eq_empty, or_iff_not_imp_right]
state_before: G : Type u_1
inst✝¹ : Group G
X : Type u_2
inst✝ : MulAction G X
B : Set X
⊢ IsBlock G B ↔ ∀ (g : G), g • B ∩ B ≠ ∅ → g • B = B
state_after: no goals
Theorem: CoxeterSystem.IsReflection.inv
File: Mathlib/GroupTheory/Coxeter/Inversion.lean

tactic: rcases ht with ⟨w, i, rfl⟩
state_before: B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
t : W
ht : cs.IsReflection t
⊢ t⁻¹ = t
state_after: case intro.intro
B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
i : B
⊢ (w * cs.simple i * w⁻¹)⁻¹ = w * cs.simple i * w⁻¹

tactic: simp [mul_assoc]
state_before: case intro.intro
B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
i : B
⊢ (w * cs.simple i * w⁻¹)⁻¹ = w * cs.simple i * w⁻¹
state_after: no goals
Theorem: SemiconjBy.sub_left
File: Mathlib/Algebra/Ring/Semiconj.lean

tactic: simpa only [sub_eq_add_neg] using ha.add_left hb.neg_left
state_before: α : Type u
β : Type v
γ : Type w
R : Type x
inst✝ : NonUnitalNonAssocRing R
a b x y x' y' : R
ha : SemiconjBy a x y
hb : SemiconjBy b x y
⊢ SemiconjBy (a - b) x y
state_after: no goals
Theorem: SimpleGraph.lapMatrix_toLin'_apply_eq_zero_iff_forall_reachable
File: Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean

tactic: rw [← (posSemidef_lapMatrix ℝ G).toLinearMap₂'_zero_iff, star_trivial,
    lapMatrix_toLinearMap₂'_apply'_eq_zero_iff_forall_reachable]
state_before: V : Type u_1
R : Type u_2
inst✝² : Fintype V
inst✝¹ : DecidableEq V
G : SimpleGraph V
inst✝ : DecidableRel G.Adj
x : V → ℝ
⊢ (toLin' (lapMatrix ℝ G)) x = 0 ↔ ∀ (i j : V), G.Reachable i j → x i = x j
state_after: no goals
Theorem: SzemerediRegularity.eps_pow_five_pos
File: Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean

tactic: norm_num
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
P : Finpartition univ
u : Finset α
ε : ℝ
hPε : 100 ≤ 4 ^ P.parts.card * ε ^ 5
⊢ 0 < 100
state_after: no goals

tactic: norm_num
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
P : Finpartition univ
u : Finset α
ε : ℝ
hPε : 100 ≤ 4 ^ P.parts.card * ε ^ 5
⊢ 0 ≤ 4
state_after: no goals
Theorem: Rat.neg_divInt_neg
File: .lake/packages/batteries/Batteries/Data/Rat/Lemmas.lean

tactic: match den with
| Nat.succ n =>
  simp only [divInt, Int.neg_ofNat_succ]
  simp [normalize_eq_mkRat, Int.neg_neg]
| 0 => rfl
| Int.negSucc n =>
  simp only [divInt, Int.neg_negSucc]
  simp [normalize_eq_mkRat, Int.neg_neg]
state_before: num den : Int
⊢ -num /. -den = num /. den
state_after: no goals

tactic: simp only [divInt, Int.neg_ofNat_succ]
state_before: num den : Int
n : Nat
⊢ -num /. -↑n.succ = num /. ↑n.succ
state_after: num den : Int
n : Nat
⊢ normalize (- -num) n.succ ⋯ = inline (mkRat num n.succ)

tactic: simp [normalize_eq_mkRat, Int.neg_neg]
state_before: num den : Int
n : Nat
⊢ normalize (- -num) n.succ ⋯ = inline (mkRat num n.succ)
state_after: no goals

tactic: rfl
state_before: num den : Int
⊢ -num /. -0 = num /. 0
state_after: no goals

tactic: simp only [divInt, Int.neg_negSucc]
state_before: num den : Int
n : Nat
⊢ -num /. -Int.negSucc n = num /. Int.negSucc n
state_after: num den : Int
n : Nat
⊢ inline (mkRat (-num) n.succ) = normalize (-num) n.succ ⋯

tactic: simp [normalize_eq_mkRat, Int.neg_neg]
state_before: num den : Int
n : Nat
⊢ inline (mkRat (-num) n.succ) = normalize (-num) n.succ ⋯
state_after: no goals
Theorem: comap_center_subst
File: Mathlib/GroupTheory/Nilpotent.lean

tactic: subst h
state_before: G : Type u_1
inst✝³ : Group G
H : Subgroup G
inst✝² : H.Normal
H₁ H₂ : Subgroup G
inst✝¹ : H₁.Normal
inst✝ : H₂.Normal
h : H₁ = H₂
⊢ comap (mk' H₁) (center (G ⧸ H₁)) = comap (mk' H₂) (center (G ⧸ H₂))
state_after: G : Type u_1
inst✝³ : Group G
H : Subgroup G
inst✝² : H.Normal
H₁ : Subgroup G
inst✝¹ inst✝ : H₁.Normal
⊢ comap (mk' H₁) (center (G ⧸ H₁)) = comap (mk' H₁) (center (G ⧸ H₁))

tactic: rfl
state_before: G : Type u_1
inst✝³ : Group G
H : Subgroup G
inst✝² : H.Normal
H₁ : Subgroup G
inst✝¹ inst✝ : H₁.Normal
⊢ comap (mk' H₁) (center (G ⧸ H₁)) = comap (mk' H₁) (center (G ⧸ H₁))
state_after: no goals
Theorem: ENNReal.toReal_inv
File: Mathlib/Data/ENNReal/Real.lean

tactic: simp only [ENNReal.toReal, toNNReal_inv, NNReal.coe_inv]
state_before: a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
a : ℝ≥0∞
⊢ a⁻¹.toReal = a.toReal⁻¹
state_after: no goals
Theorem: HasFTaylorSeriesUpTo.ofLe
File: Mathlib/Analysis/Calculus/ContDiff/Defs.lean

tactic: rw [← hasFTaylorSeriesUpToOn_univ_iff] at h ⊢
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
h : HasFTaylorSeriesUpTo n f p
hmn : m ≤ n
⊢ HasFTaylorSeriesUpTo m f p
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
h : HasFTaylorSeriesUpToOn n f p univ
hmn : m ≤ n
⊢ HasFTaylorSeriesUpToOn m f p univ

tactic: exact h.of_le hmn
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
h : HasFTaylorSeriesUpToOn n f p univ
hmn : m ≤ n
⊢ HasFTaylorSeriesUpToOn m f p univ
state_after: no goals
Theorem: Multiset.mem_ndinter
File: Mathlib/Data/Multiset/FinsetOps.lean

tactic: simp [ndinter, mem_filter]
state_before: α : Type u_1
inst✝ : DecidableEq α
s✝ s t : Multiset α
a : α
⊢ a ∈ s.ndinter t ↔ a ∈ s ∧ a ∈ t
state_after: no goals
Theorem: CategoryTheory.IsPushout.IsVanKampen.flip
File: Mathlib/CategoryTheory/Adhesive.lean

tactic: introv W' hf hg hh hi w
state_before: J : Type v'
inst✝¹ : Category.{u', v'} J
C : Type u
inst✝ : Category.{v, u} C
W X Y Z : C
f : W ⟶ X
g : W ⟶ Y
h : X ⟶ Z
i : Y ⟶ Z
H : IsPushout f g h i
H' : H.IsVanKampen
⊢ ⋯.IsVanKampen
state_after: J : Type v'
inst✝¹ : Category.{u', v'} J
C : Type u
inst✝ : Category.{v, u} C
W X Y Z : C
f : W ⟶ X
g : W ⟶ Y
h : X ⟶ Z
i : Y ⟶ Z
H : IsPushout f g h i
H' : H.IsVanKampen
W' X' Y' Z' : C
f' : W' ⟶ X'
g' : W' ⟶ Y'
h' : X' ⟶ Z'
i' : Y' ⟶ Z'
αW : W' ⟶ W
αX : X' ⟶ Y
αY : Y' ⟶ X
αZ : Z' ⟶ Z
hf : IsPullback f' αW αX g
hg : IsPullback g' αW αY f
hh : CommSq h' αX αZ i
hi : CommSq i' αY αZ h
w : CommSq f' g' h' i'
⊢ IsPushout f' g' h' i' ↔ IsPullback h' αX αZ i ∧ IsPullback i' αY αZ h

tactic: simpa only [IsPushout.flip_iff, IsPullback.flip_iff, and_comm] using
  H' g' f' i' h' αW αY αX αZ hg hf hi hh w.flip
state_before: J : Type v'
inst✝¹ : Category.{u', v'} J
C : Type u
inst✝ : Category.{v, u} C
W X Y Z : C
f : W ⟶ X
g : W ⟶ Y
h : X ⟶ Z
i : Y ⟶ Z
H : IsPushout f g h i
H' : H.IsVanKampen
W' X' Y' Z' : C
f' : W' ⟶ X'
g' : W' ⟶ Y'
h' : X' ⟶ Z'
i' : Y' ⟶ Z'
αW : W' ⟶ W
αX : X' ⟶ Y
αY : Y' ⟶ X
αZ : Z' ⟶ Z
hf : IsPullback f' αW αX g
hg : IsPullback g' αW αY f
hh : CommSq h' αX αZ i
hi : CommSq i' αY αZ h
w : CommSq f' g' h' i'
⊢ IsPushout f' g' h' i' ↔ IsPullback h' αX αZ i ∧ IsPullback i' αY αZ h
state_after: no goals
Theorem: Mathlib.Tactic.Abel.const_add_termg
File: Mathlib/Tactic/Abel.lean

tactic: simp [h.symm, termg, add_comm, add_assoc]
state_before: α : Type u_1
inst✝ : AddCommGroup α
k : α
n : ℤ
x a a' : α
h : k + a = a'
⊢ k + termg n x a = termg n x a'
state_after: no goals
Theorem: convex_hyperplane
File: Mathlib/Analysis/Convex/Basic.lean

tactic: simp_rw [le_antisymm_iff]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝⁷ : OrderedSemiring 𝕜
inst✝⁶ : AddCommMonoid E
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module 𝕜 E
inst✝³ : Module 𝕜 F
s : Set E
x : E
inst✝² : OrderedAddCommMonoid β
inst✝¹ : Module 𝕜 β
inst✝ : OrderedSMul 𝕜 β
f : E → β
h : IsLinearMap 𝕜 f
r : β
⊢ Convex 𝕜 {w | f w = r}
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝⁷ : OrderedSemiring 𝕜
inst✝⁶ : AddCommMonoid E
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module 𝕜 E
inst✝³ : Module 𝕜 F
s : Set E
x : E
inst✝² : OrderedAddCommMonoid β
inst✝¹ : Module 𝕜 β
inst✝ : OrderedSMul 𝕜 β
f : E → β
h : IsLinearMap 𝕜 f
r : β
⊢ Convex 𝕜 {w | f w ≤ r ∧ r ≤ f w}

tactic: exact (convex_halfspace_le h r).inter (convex_halfspace_ge h r)
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝⁷ : OrderedSemiring 𝕜
inst✝⁶ : AddCommMonoid E
inst✝⁵ : AddCommMonoid F
inst✝⁴ : Module 𝕜 E
inst✝³ : Module 𝕜 F
s : Set E
x : E
inst✝² : OrderedAddCommMonoid β
inst✝¹ : Module 𝕜 β
inst✝ : OrderedSMul 𝕜 β
f : E → β
h : IsLinearMap 𝕜 f
r : β
⊢ Convex 𝕜 {w | f w ≤ r ∧ r ≤ f w}
state_after: no goals
Theorem: hasDerivAt_norm_rpow
File: Mathlib/Analysis/InnerProductSpace/NormPow.lean

tactic: convert hasFDerivAt_norm_rpow x hp |>.hasDerivAt using 1
state_before: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
x p : ℝ
hp : 1 < p
⊢ HasDerivAt (fun x => ‖x‖ ^ p) (p * ‖x‖ ^ (p - 2) * x) x
state_after: case h.e'_7
E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
x p : ℝ
hp : 1 < p
⊢ p * ‖x‖ ^ (p - 2) * x = ((p * ‖x‖ ^ (p - 2)) • (innerSL ℝ) x) 1

tactic: simp
state_before: case h.e'_7
E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace ℝ E
F : Type u_2
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
x p : ℝ
hp : 1 < p
⊢ p * ‖x‖ ^ (p - 2) * x = ((p * ‖x‖ ^ (p - 2)) • (innerSL ℝ) x) 1
state_after: no goals
Theorem: uniformEquicontinuousOn_iff_uniformContinuousOn
File: Mathlib/Topology/UniformSpace/Equicontinuity.lean

tactic: rw [UniformContinuousOn, (UniformFun.hasBasis_uniformity ι α).tendsto_right_iff]
state_before: ι : Type u_1
κ : Type u_2
X : Type u_3
X' : Type u_4
Y : Type u_5
Z : Type u_6
α : Type u_7
α' : Type u_8
β : Type u_9
β' : Type u_10
γ : Type u_11
𝓕 : Type u_12
tX : TopologicalSpace X
tY : TopologicalSpace Y
tZ : TopologicalSpace Z
uα : UniformSpace α
uβ : UniformSpace β
uγ : UniformSpace γ
F : ι → β → α
S : Set β
⊢ UniformEquicontinuousOn F S ↔ UniformContinuousOn (⇑UniformFun.ofFun ∘ swap F) S
state_after: ι : Type u_1
κ : Type u_2
X : Type u_3
X' : Type u_4
Y : Type u_5
Z : Type u_6
α : Type u_7
α' : Type u_8
β : Type u_9
β' : Type u_10
γ : Type u_11
𝓕 : Type u_12
tX : TopologicalSpace X
tY : TopologicalSpace Y
tZ : TopologicalSpace Z
uα : UniformSpace α
uβ : UniformSpace β
uγ : UniformSpace γ
F : ι → β → α
S : Set β
⊢ UniformEquicontinuousOn F S ↔
    ∀ i ∈ 𝓤 α,
      ∀ᶠ (x : β × β) in 𝓤 β ⊓ 𝓟 (S ×ˢ S),
        ((⇑UniformFun.ofFun ∘ swap F) x.1, (⇑UniformFun.ofFun ∘ swap F) x.2) ∈ UniformFun.gen ι α i

tactic: rfl
state_before: ι : Type u_1
κ : Type u_2
X : Type u_3
X' : Type u_4
Y : Type u_5
Z : Type u_6
α : Type u_7
α' : Type u_8
β : Type u_9
β' : Type u_10
γ : Type u_11
𝓕 : Type u_12
tX : TopologicalSpace X
tY : TopologicalSpace Y
tZ : TopologicalSpace Z
uα : UniformSpace α
uβ : UniformSpace β
uγ : UniformSpace γ
F : ι → β → α
S : Set β
⊢ UniformEquicontinuousOn F S ↔
    ∀ i ∈ 𝓤 α,
      ∀ᶠ (x : β × β) in 𝓤 β ⊓ 𝓟 (S ×ˢ S),
        ((⇑UniformFun.ofFun ∘ swap F) x.1, (⇑UniformFun.ofFun ∘ swap F) x.2) ∈ UniformFun.gen ι α i
state_after: no goals
Theorem: Polynomial.primPart_mul
File: Mathlib/RingTheory/Polynomial/Content.lean

tactic: rw [Ne, ← content_eq_zero_iff, ← C_eq_zero] at h0
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
h0 : p * q ≠ 0
⊢ (p * q).primPart = p.primPart * q.primPart
state_after: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
h0 : ¬C (p * q).content = 0
⊢ (p * q).primPart = p.primPart * q.primPart

tactic: apply mul_left_cancel₀ h0
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
h0 : ¬C (p * q).content = 0
⊢ (p * q).primPart = p.primPart * q.primPart
state_after: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
h0 : ¬C (p * q).content = 0
⊢ C (p * q).content * (p * q).primPart = C (p * q).content * (p.primPart * q.primPart)

tactic: conv_lhs =>
  rw [← (p * q).eq_C_content_mul_primPart, p.eq_C_content_mul_primPart,
    q.eq_C_content_mul_primPart]
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
h0 : ¬C (p * q).content = 0
⊢ C (p * q).content * (p * q).primPart = C (p * q).content * (p.primPart * q.primPart)
state_after: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
h0 : ¬C (p * q).content = 0
⊢ C p.content * p.primPart * (C q.content * q.primPart) = C (p * q).content * (p.primPart * q.primPart)

tactic: rw [content_mul, RingHom.map_mul]
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
h0 : ¬C (p * q).content = 0
⊢ C p.content * p.primPart * (C q.content * q.primPart) = C (p * q).content * (p.primPart * q.primPart)
state_after: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
h0 : ¬C (p * q).content = 0
⊢ C p.content * p.primPart * (C q.content * q.primPart) = C p.content * C q.content * (p.primPart * q.primPart)

tactic: ring
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
h0 : ¬C (p * q).content = 0
⊢ C p.content * p.primPart * (C q.content * q.primPart) = C p.content * C q.content * (p.primPart * q.primPart)
state_after: no goals