1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Polynomial.IsPrimitive.dvd_primPart_iff_dvd
File: Mathlib/RingTheory/Polynomial/Content.lean

tactic: refine ⟨fun h => h.trans (Dvd.intro_left _ q.eq_C_content_mul_primPart.symm), fun h => ?_⟩
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
hp : p.IsPrimitive
hq : q ≠ 0
⊢ p ∣ q.primPart ↔ p ∣ q
state_after: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
hp : p.IsPrimitive
hq : q ≠ 0
h : p ∣ q
⊢ p ∣ q.primPart

tactic: rcases h with ⟨r, rfl⟩
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p q : R[X]
hp : p.IsPrimitive
hq : q ≠ 0
h : p ∣ q
⊢ p ∣ q.primPart
state_after: case intro
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p : R[X]
hp : p.IsPrimitive
r : R[X]
hq : p * r ≠ 0
⊢ p ∣ (p * r).primPart

tactic: apply Dvd.intro _
state_before: case intro
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p : R[X]
hp : p.IsPrimitive
r : R[X]
hq : p * r ≠ 0
⊢ p ∣ (p * r).primPart
state_after: case intro
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p : R[X]
hp : p.IsPrimitive
r : R[X]
hq : p * r ≠ 0
⊢ p * ?m.101269 = (p * r).primPart

R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p : R[X]
hp : p.IsPrimitive
r : R[X]
hq : p * r ≠ 0
⊢ R[X]

tactic: rw [primPart_mul hq, hp.primPart_eq]
state_before: case intro
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p : R[X]
hp : p.IsPrimitive
r : R[X]
hq : p * r ≠ 0
⊢ p * ?m.101269 = (p * r).primPart

R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p : R[X]
hp : p.IsPrimitive
r : R[X]
hq : p * r ≠ 0
⊢ R[X]
state_after: no goals
Theorem: nmem_nonZeroDivisors_iff
File: Mathlib/Algebra/GroupWithZero/NonZeroDivisors.lean

tactic: simpa [mem_nonZeroDivisors_iff] using Set.nonempty_def.symm
state_before: M₀ : Type u_1
inst✝⁵ : MonoidWithZero M₀
M : Type u_2
M' : Type u_3
M₁ : Type u_4
R : Type u_5
R' : Type u_6
F : Type u_7
inst✝⁴ : MonoidWithZero M
inst✝³ : MonoidWithZero M'
inst✝² : CommMonoidWithZero M₁
inst✝¹ : Ring R
inst✝ : CommRing R'
r : M
⊢ r ∉ M⁰ ↔ {s | s * r = 0 ∧ s ≠ 0}.Nonempty
state_after: no goals
Theorem: Part.union_mem_union
File: Mathlib/Data/Part.lean

tactic: simp [union_def]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Union α
a b : Part α
ma mb : α
ha : ma ∈ a
hb : mb ∈ b
⊢ ma ∪ mb ∈ a ∪ b
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Union α
a b : Part α
ma mb : α
ha : ma ∈ a
hb : mb ∈ b
⊢ ∃ a_1 ∈ a, ∃ a ∈ b, a_1 ∪ a = ma ∪ mb

tactic: aesop
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Union α
a b : Part α
ma mb : α
ha : ma ∈ a
hb : mb ∈ b
⊢ ∃ a_1 ∈ a, ∃ a ∈ b, a_1 ∪ a = ma ∪ mb
state_after: no goals
Theorem: Finset.truncatedInf_singleton
File: Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean

tactic: simp only [truncatedInf, coe_singleton, upperClosure_singleton, UpperSet.mem_Ici_iff,
  filter_congr_decidable, id_eq]
state_before: α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeInf α
inst✝⁴ : BoundedOrder α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeInf β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a✝ b a : α
⊢ {b}.truncatedInf a = if b ≤ a then b else ⊥
state_after: α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeInf α
inst✝⁴ : BoundedOrder α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeInf β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a✝ b a : α
⊢ (if h : b ≤ a then (filter (fun x => x ≤ a) {b}).inf' ⋯ fun x => x else ⊥) = if b ≤ a then b else ⊥

tactic: split_ifs <;> simp [Finset.filter_true_of_mem, *]
state_before: α : Type u_1
β : Type u_2
inst✝⁵ : SemilatticeInf α
inst✝⁴ : BoundedOrder α
inst✝³ : DecidableRel fun x x_1 => x ≤ x_1
inst✝² : SemilatticeInf β
inst✝¹ : BoundedOrder β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a✝ b a : α
⊢ (if h : b ≤ a then (filter (fun x => x ≤ a) {b}).inf' ⋯ fun x => x else ⊥) = if b ≤ a then b else ⊥
state_after: no goals
Theorem: groupCohomology.groupCohomologyπ_comp_isoH2_hom
File: Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean

tactic: simp [isoH2, isoTwoCocycles]
state_before: k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
⊢ groupCohomologyπ A 2 ≫ (isoH2 A).hom = (isoTwoCocycles A).hom ≫ (shortComplexH2 A).moduleCatHomologyπ
state_after: no goals
Theorem: CategoryTheory.Bicategory.pentagon_hom_hom_inv_hom_hom
File: Mathlib/CategoryTheory/Bicategory/Basic.lean

tactic: simp
state_before: B : Type u
inst✝ : Bicategory B
a b c d e : B
f : a ⟶ b
g : b ⟶ c
h : c ⟶ d
i : d ⟶ e
⊢ inv ((α_ (f ≫ g) h i).hom ≫ (α_ f g (h ≫ i)).hom ≫ f ◁ (α_ g h i).inv) =
    inv ((α_ f g h).hom ▷ i ≫ (α_ f (g ≫ h) i).hom)
state_after: no goals
Theorem: Monoid.Coprod.fst_prod_snd
File: Mathlib/GroupTheory/Coprod/Basic.lean

tactic: ext1 <;> rfl
state_before: M : Type u_1
N : Type u_2
inst✝¹ : Monoid M
inst✝ : Monoid N
⊢ fst.prod snd = toProd
state_after: no goals
Theorem: Finset.sum_powerset_neg_one_pow_card_of_nonempty
File: Mathlib/Data/Nat/Choose/Sum.lean

tactic: classical
  rw [sum_powerset_neg_one_pow_card, if_neg]
  rw [← Ne, ← nonempty_iff_ne_empty]
  apply h0
state_before: R : Type u_1
α : Type u_2
x : Finset α
h0 : x.Nonempty
⊢ ∑ m ∈ x.powerset, (-1) ^ m.card = 0
state_after: no goals

tactic: rw [sum_powerset_neg_one_pow_card, if_neg]
state_before: R : Type u_1
α : Type u_2
x : Finset α
h0 : x.Nonempty
⊢ ∑ m ∈ x.powerset, (-1) ^ m.card = 0
state_after: case hnc
R : Type u_1
α : Type u_2
x : Finset α
h0 : x.Nonempty
⊢ ¬x = ∅

tactic: rw [← Ne, ← nonempty_iff_ne_empty]
state_before: case hnc
R : Type u_1
α : Type u_2
x : Finset α
h0 : x.Nonempty
⊢ ¬x = ∅
state_after: case hnc
R : Type u_1
α : Type u_2
x : Finset α
h0 : x.Nonempty
⊢ x.Nonempty

tactic: apply h0
state_before: case hnc
R : Type u_1
α : Type u_2
x : Finset α
h0 : x.Nonempty
⊢ x.Nonempty
state_after: no goals
Theorem: SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_left_eq
File: Mathlib/Combinatorics/SimpleGraph/Subgraph.lean

tactic: ext <;> simp (config := { contextual := true }) [imp_false]
state_before: ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
G' : G.Subgraph
s : Set (Sym2 V)
⊢ G'.deleteEdges (G'.edgeSet ∩ s) = G'.deleteEdges s
state_after: no goals
Theorem: Bool.self_ne_not
File: Mathlib/Data/Bool/Basic.lean

tactic: decide
state_before: ⊢ ∀ (b : Bool), b ≠ !b
state_after: no goals
Theorem: MeasureTheory.ProbabilityMeasure.map_apply_of_aemeasurable
File: Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean

tactic: have := ν.map_apply' f_aemble A_mble
state_before: Ω : Type u_1
Ω' : Type u_2
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSpace Ω'
ν : ProbabilityMeasure Ω
f : Ω → Ω'
f_aemble : AEMeasurable f ↑ν
A : Set Ω'
A_mble : MeasurableSet A
⊢ (ν.map f_aemble) A = ν (f ⁻¹' A)
state_after: Ω : Type u_1
Ω' : Type u_2
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSpace Ω'
ν : ProbabilityMeasure Ω
f : Ω → Ω'
f_aemble : AEMeasurable f ↑ν
A : Set Ω'
A_mble : MeasurableSet A
this : ↑(ν.map f_aemble) A = ↑ν (f ⁻¹' A)
⊢ (ν.map f_aemble) A = ν (f ⁻¹' A)

tactic: exact (ENNReal.toNNReal_eq_toNNReal_iff' (measure_ne_top _ _) (measure_ne_top _ _)).mpr this
state_before: Ω : Type u_1
Ω' : Type u_2
inst✝¹ : MeasurableSpace Ω
inst✝ : MeasurableSpace Ω'
ν : ProbabilityMeasure Ω
f : Ω → Ω'
f_aemble : AEMeasurable f ↑ν
A : Set Ω'
A_mble : MeasurableSet A
this : ↑(ν.map f_aemble) A = ↑ν (f ⁻¹' A)
⊢ (ν.map f_aemble) A = ν (f ⁻¹' A)
state_after: no goals
Theorem: LinearMap.exact_subtype_mkQ
File: Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean

tactic: rw [exact_iff, Submodule.ker_mkQ, Submodule.range_subtype Q]
state_before: R : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
inst✝⁶ : CommRing R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup N
inst✝³ : AddCommGroup P
inst✝² : Module R M
inst✝¹ : Module R N
inst✝ : Module R P
Q : Submodule R N
⊢ Exact ⇑Q.subtype ⇑Q.mkQ
state_after: no goals
Theorem: Polynomial.map_ofNat
File: Mathlib/Algebra/Polynomial/Eval.lean

tactic: rw [Polynomial.map_natCast]
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✝¹ : Semiring S
f : R →+* S
n : ℕ
inst✝ : n.AtLeastTwo
⊢ map f ↑n = ↑n
state_after: no goals
Theorem: Finpartition.parts_nonempty_iff
File: Mathlib/Order/Partition/Finpartition.lean

tactic: rw [nonempty_iff_ne_empty, not_iff_not, parts_eq_empty_iff]
state_before: α : Type u_1
inst✝¹ : Lattice α
inst✝ : OrderBot α
a : α
P : Finpartition a
⊢ P.parts.Nonempty ↔ a ≠ ⊥
state_after: no goals
Theorem: Int.preimage_Ico
File: Mathlib/Algebra/Order/Floor.lean

tactic: ext
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a b : α
⊢ Int.cast ⁻¹' Ico a b = Ico ⌈a⌉ ⌈b⌉
state_after: case h
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a b : α
x✝ : ℤ
⊢ x✝ ∈ Int.cast ⁻¹' Ico a b ↔ x✝ ∈ Ico ⌈a⌉ ⌈b⌉

tactic: simp [ceil_le, lt_ceil]
state_before: case h
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a b : α
x✝ : ℤ
⊢ x✝ ∈ Int.cast ⁻¹' Ico a b ↔ x✝ ∈ Ico ⌈a⌉ ⌈b⌉
state_after: no goals
Theorem: Set.image_const_add_Ico
File: Mathlib/Algebra/Order/Interval/Set/Monoid.lean

tactic: simp only [add_comm a, image_add_const_Ico]
state_before: M : Type u_1
inst✝¹ : OrderedCancelAddCommMonoid M
inst✝ : ExistsAddOfLE M
a b c d : M
⊢ (fun x => a + x) '' Ico b c = Ico (a + b) (a + c)
state_after: no goals
Theorem: MulAction.stabilizer_smul_eq_right
File: Mathlib/GroupTheory/GroupAction/Basic.lean

tactic: rw [inv_smul_smul]
state_before: G : Type u_1
α : Type u_2
β : Type u_3
inst✝⁵ : Group G
inst✝⁴ : MulAction G α
inst✝³ : MulAction G β
inst✝² : Group α
inst✝¹ : MulAction α β
inst✝ : SMulCommClass G α β
a : α
b : β
⊢ stabilizer G (a⁻¹ • a • b) = stabilizer G b
state_after: no goals
Theorem: Matroid.uniqueBaseOn_self
File: Mathlib/Data/Matroid/Constructions.lean

tactic: rw [uniqueBaseOn, freeOn_restrict rfl.subset]
state_before: α : Type u_1
M : Matroid α
E B I✝ X R J I : Set α
⊢ uniqueBaseOn I I = freeOn I
state_after: no goals
Theorem: Real.Angle.two_zsmul_ne_zero_iff
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: rw [← not_or, ← two_zsmul_eq_zero_iff]
state_before: θ : Angle
⊢ 2 • θ ≠ 0 ↔ θ ≠ 0 ∧ θ ≠ ↑π
state_after: no goals
Theorem: Polynomial.content_C
File: Mathlib/RingTheory/Polynomial/Content.lean

tactic: rw [content]
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
r : R
⊢ (C r).content = normalize r
state_after: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
r : R
⊢ (C r).support.gcd (C r).coeff = normalize r

tactic: by_cases h0 : r = 0
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
r : R
⊢ (C r).support.gcd (C r).coeff = normalize r
state_after: case pos
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
r : R
h0 : r = 0
⊢ (C r).support.gcd (C r).coeff = normalize r

case neg
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
r : R
h0 : ¬r = 0
⊢ (C r).support.gcd (C r).coeff = normalize r

tactic: have h : (C r).support = {0} := support_monomial _ h0
state_before: case neg
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
r : R
h0 : ¬r = 0
⊢ (C r).support.gcd (C r).coeff = normalize r
state_after: case neg
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
r : R
h0 : ¬r = 0
h : (C r).support = {0}
⊢ (C r).support.gcd (C r).coeff = normalize r

tactic: simp [h]
state_before: case neg
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
r : R
h0 : ¬r = 0
h : (C r).support = {0}
⊢ (C r).support.gcd (C r).coeff = normalize r
state_after: no goals

tactic: simp [h0]
state_before: case pos
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
r : R
h0 : r = 0
⊢ (C r).support.gcd (C r).coeff = normalize r
state_after: no goals
Theorem: Rat.divInt_mul_divInt
File: .lake/packages/batteries/Batteries/Data/Rat/Lemmas.lean

tactic: rcases Int.eq_nat_or_neg d₁ with ⟨_, rfl | rfl⟩ <;>
rcases Int.eq_nat_or_neg d₂ with ⟨_, rfl | rfl⟩ <;>
simp_all [-Int.natCast_mul, divInt_neg', Int.mul_neg, Int.ofNat_mul_ofNat,  Int.neg_mul,
  mkRat_mul_mkRat]
state_before: n₁ n₂ d₁ d₂ : Int
z₁ : d₁ ≠ 0
z₂ : d₂ ≠ 0
⊢ n₁ /. d₁ * (n₂ /. d₂) = n₁ * n₂ /. (d₁ * d₂)
state_after: no goals
Theorem: OnePoint.isOpen_iff_of_mem
File: Mathlib/Topology/Compactification/OnePoint.lean

tactic: simp only [isOpen_iff_of_mem' h, isClosed_compl_iff, and_comm]
state_before: X : Type u_1
inst✝ : TopologicalSpace X
s : Set (OnePoint X)
t : Set X
h : ∞ ∈ s
⊢ IsOpen s ↔ IsClosed (some ⁻¹' s)ᶜ ∧ IsCompact (some ⁻¹' s)ᶜ
state_after: no goals
Theorem: AlgebraicGeometry.IsSeparated.respectsIso
File: Mathlib/AlgebraicGeometry/Morphisms/Separated.lean

tactic: rw [isSeparated_eq_diagonal_isClosedImmersion]
state_before: X Y : Scheme
f : X ⟶ Y
⊢ MorphismProperty.RespectsIso @IsSeparated
state_after: X Y : Scheme
f : X ⟶ Y
⊢ (MorphismProperty.diagonal @IsClosedImmersion).RespectsIso

tactic: apply MorphismProperty.RespectsIso.diagonal
state_before: X Y : Scheme
f : X ⟶ Y
⊢ (MorphismProperty.diagonal @IsClosedImmersion).RespectsIso
state_after: case hP
X Y : Scheme
f : X ⟶ Y
⊢ MorphismProperty.RespectsIso @IsClosedImmersion

tactic: exact IsClosedImmersion.respectsIso
state_before: case hP
X Y : Scheme
f : X ⟶ Y
⊢ MorphismProperty.RespectsIso @IsClosedImmersion
state_after: no goals
Theorem: EMetric.continuous_infEdist
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

tactic: simp
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t : Set α
Φ : α → β
⊢ 1 ≠ ⊤
state_after: no goals

tactic: simp only [one_mul, infEdist_le_infEdist_add_edist, forall₂_true_iff]
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t : Set α
Φ : α → β
⊢ ∀ (x y : α), infEdist x s ≤ infEdist y s + 1 * edist x y
state_after: no goals
Theorem: HomogeneousLocalization.val_mul
File: Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean

tactic: rw [← mk_mul, val_mk, val_mk, val_mk, Localization.mk_mul]
state_before: ι : Type u_1
R : Type u_2
A : Type u_3
inst✝⁵ : AddCommMonoid ι
inst✝⁴ : DecidableEq ι
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ι → Submodule R A
inst✝ : GradedAlgebra 𝒜
x : Submonoid A
y1 y2 : NumDenSameDeg 𝒜 x
⊢ (Quotient.mk'' y1 * Quotient.mk'' y2).val = val (Quotient.mk'' y1) * val (Quotient.mk'' y2)
state_after: ι : Type u_1
R : Type u_2
A : Type u_3
inst✝⁵ : AddCommMonoid ι
inst✝⁴ : DecidableEq ι
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ι → Submodule R A
inst✝ : GradedAlgebra 𝒜
x : Submonoid A
y1 y2 : NumDenSameDeg 𝒜 x
⊢ Localization.mk ↑(y1 * y2).num ⟨↑(y1 * y2).den, ⋯⟩ = Localization.mk (↑y1.num * ↑y2.num) (⟨↑y1.den, ⋯⟩ * ⟨↑y2.den, ⋯⟩)

tactic: rfl
state_before: ι : Type u_1
R : Type u_2
A : Type u_3
inst✝⁵ : AddCommMonoid ι
inst✝⁴ : DecidableEq ι
inst✝³ : CommRing R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ι → Submodule R A
inst✝ : GradedAlgebra 𝒜
x : Submonoid A
y1 y2 : NumDenSameDeg 𝒜 x
⊢ Localization.mk ↑(y1 * y2).num ⟨↑(y1 * y2).den, ⋯⟩ = Localization.mk (↑y1.num * ↑y2.num) (⟨↑y1.den, ⋯⟩ * ⟨↑y2.den, ⋯⟩)
state_after: no goals
Theorem: MvPolynomial.weightedHomogeneousComponent_apply
File: Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean

tactic: convert rfl
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
σ : Type u_3
inst✝¹ : AddCommMonoid M
w : σ → M
n : M
φ ψ : MvPolynomial σ R
inst✝ : DecidableEq M
this : DecidableEq M := Classical.decEq M
⊢ ∑ i ∈ Finset.filter (fun d => (weightedDegree w) d = n) φ.support, Finsupp.single i (φ i) =
    ∑ d ∈ Finset.filter (fun d => (weightedDegree w) d = n) φ.support, (monomial d) (coeff d φ)
state_after: no goals
Theorem: PNat.le_find_iff
File: Mathlib/Data/PNat/Find.lean

tactic: simp only [← not_lt, find_lt_iff, not_exists, not_and]
state_before: p q : ℕ+ → Prop
inst✝¹ : DecidablePred p
inst✝ : DecidablePred q
h : ∃ n, p n
n✝ m n : ℕ+
⊢ n ≤ PNat.find h ↔ ∀ m < n, ¬p m
state_after: no goals
Theorem: CategoryTheory.Subgroupoid.generated_le_generatedNormal
File: Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean

tactic: apply @sInf_le_sInf (Subgroupoid C) _
state_before: C : Type u
inst✝ : Groupoid C
S : Subgroupoid C
X : (c d : C) → Set (c ⟶ d)
⊢ generated X ≤ generatedNormal X
state_after: case h
C : Type u
inst✝ : Groupoid C
S : Subgroupoid C
X : (c d : C) → Set (c ⟶ d)
⊢ {S | (∀ (c d : C), X c d ⊆ S.arrows c d) ∧ S.IsNormal} ⊆ {S | ∀ (c d : C), X c d ⊆ S.arrows c d}

tactic: exact fun S ⟨h, _⟩ => h
state_before: case h
C : Type u
inst✝ : Groupoid C
S : Subgroupoid C
X : (c d : C) → Set (c ⟶ d)
⊢ {S | (∀ (c d : C), X c d ⊆ S.arrows c d) ∧ S.IsNormal} ⊆ {S | ∀ (c d : C), X c d ⊆ S.arrows c d}
state_after: no goals
Theorem: OnePoint.tendsto_nhds_infty
File: Mathlib/Topology/Compactification/OnePoint.lean

tactic: simp only [tendsto_pure_left, hasBasis_coclosedCompact.tendsto_left_iff, forall_and,
  and_assoc, exists_prop]
state_before: X : Type u_1
inst✝ : TopologicalSpace X
s : Set (OnePoint X)
t : Set X
α : Type u_2
f : OnePoint X → α
l : Filter α
⊢ Tendsto f (pure ∞) l ∧ Tendsto (f ∘ some) (coclosedCompact X) l ↔
    ∀ s ∈ l, f ∞ ∈ s ∧ ∃ t, IsClosed t ∧ IsCompact t ∧ MapsTo (f ∘ some) tᶜ s
state_after: no goals
Theorem: LieAlgebra.Orthogonal.indefiniteDiagonal_assoc
File: Mathlib/Algebra/Lie/Classical.lean

tactic: ext ⟨⟨i₁ | i₂⟩ | i₃⟩ ⟨⟨j₁ | j₂⟩ | j₃⟩ <;>
simp only [indefiniteDiagonal, Matrix.diagonal_apply, Equiv.sumAssoc_apply_inl_inl,
    Matrix.reindexLieEquiv_apply, Matrix.submatrix_apply, Equiv.symm_symm, Matrix.reindex_apply,
    Sum.elim_inl, if_true, eq_self_iff_true, Matrix.one_apply_eq, Matrix.fromBlocks_apply₁₁,
    DMatrix.zero_apply, Equiv.sumAssoc_apply_inl_inr, if_false, Matrix.fromBlocks_apply₁₂,
    Matrix.fromBlocks_apply₂₁, Matrix.fromBlocks_apply₂₂, Equiv.sumAssoc_apply_inr,
    Sum.elim_inr, Sum.inl_injective.eq_iff, Sum.inr_injective.eq_iff] <;>
  congr 1
state_before: n : Type u_1
p : Type u_2
q : Type u_3
l : Type u_4
R : Type u₂
inst✝⁷ : DecidableEq n
inst✝⁶ : DecidableEq p
inst✝⁵ : DecidableEq q
inst✝⁴ : DecidableEq l
inst✝³ : CommRing R
inst✝² : Fintype p
inst✝¹ : Fintype q
inst✝ : Fintype l
⊢ indefiniteDiagonal (Unit ⊕ l) l R =
    (reindexLieEquiv (Equiv.sumAssoc Unit l l).symm) (fromBlocks 1 0 0 (indefiniteDiagonal l l R))
state_after: no goals
Theorem: Matrix.one_fin_two
File: Mathlib/Data/Matrix/Notation.lean

tactic: ext i j
state_before: α : Type u
o n m : ℕ
m' : Type uₘ
n' : Type uₙ
o' : Type uₒ
a b : ℕ
inst✝¹ : Zero α
inst✝ : One α
⊢ 1 = of ![![1, 0], ![0, 1]]
state_after: case a
α : Type u
o n m : ℕ
m' : Type uₘ
n' : Type uₙ
o' : Type uₒ
a b : ℕ
inst✝¹ : Zero α
inst✝ : One α
i j : Fin 2
⊢ 1 i j = of ![![1, 0], ![0, 1]] i j

tactic: fin_cases i <;> fin_cases j <;> rfl
state_before: case a
α : Type u
o n m : ℕ
m' : Type uₘ
n' : Type uₙ
o' : Type uₒ
a b : ℕ
inst✝¹ : Zero α
inst✝ : One α
i j : Fin 2
⊢ 1 i j = of ![![1, 0], ![0, 1]] i j
state_after: no goals
Theorem: AffineEquiv.wbtw_map_iff
File: Mathlib/Analysis/Convex/Between.lean

tactic: refine Function.Injective.wbtw_map_iff (?_ : Function.Injective f.toAffineMap)
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x y z : P
f : P ≃ᵃ[R] P'
⊢ Wbtw R (f x) (f y) (f z) ↔ Wbtw R x y z
state_after: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x y z : P
f : P ≃ᵃ[R] P'
⊢ Function.Injective ⇑↑f

tactic: exact f.injective
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : OrderedRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x y z : P
f : P ≃ᵃ[R] P'
⊢ Function.Injective ⇑↑f
state_after: no goals
Theorem: lipschitzWith_inv_iff
File: Mathlib/Analysis/Normed/Group/Uniform.lean

tactic: simp [LipschitzWith]
state_before: 𝓕 : Type u_1
α✝ : Type u_2
E✝ : Type u_3
F : Type u_4
inst✝³ : SeminormedCommGroup E✝
inst✝² : SeminormedCommGroup F
a a₁ a₂ b b₁ b₂ : E✝
r r₁ r₂ : ℝ
α : Type u_5
E : Type u_6
inst✝¹ : SeminormedCommGroup E
inst✝ : PseudoEMetricSpace α
K Kf Kg : ℝ≥0
f g : α → E
s : Set α
x : α
⊢ LipschitzWith K f⁻¹ ↔ LipschitzWith K f
state_after: no goals
Theorem: PMF.toMeasure_apply_eq_of_inter_support_eq
File: Mathlib/Probability/ProbabilityMassFunction/Basic.lean

tactic: simpa only [p.toMeasure_apply_eq_toOuterMeasure_apply, hs, ht] using
  toOuterMeasure_apply_eq_of_inter_support_eq p h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : MeasurableSpace α
p : PMF α
s✝ t✝ s t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
h : s ∩ p.support = t ∩ p.support
⊢ p.toMeasure s = p.toMeasure t
state_after: no goals
Theorem: Algebra.norm_eq_one_of_not_exists_basis
File: Mathlib/RingTheory/Norm.lean

tactic: rw [norm_apply, LinearMap.det]
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁷ : CommRing R
inst✝⁶ : Ring S
inst✝⁵ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field F
inst✝¹ : Algebra K L
inst✝ : Algebra K F
ι : Type w
h : ¬∃ s, Nonempty (Basis { x // x ∈ s } R S)
x : S
⊢ (norm R) x = 1
state_after: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁷ : CommRing R
inst✝⁶ : Ring S
inst✝⁵ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field F
inst✝¹ : Algebra K L
inst✝ : Algebra K F
ι : Type w
h : ¬∃ s, Nonempty (Basis { x // x ∈ s } R S)
x : S
⊢ (if H : ∃ s, Nonempty (Basis { x // x ∈ s } R S) then detAux (Trunc.mk ⋯.some) else 1) ((lmul R S) x) = 1

tactic: split_ifs <;> trivial
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁷ : CommRing R
inst✝⁶ : Ring S
inst✝⁵ : Algebra R S
K : Type u_4
L : Type u_5
F : Type u_6
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : Field F
inst✝¹ : Algebra K L
inst✝ : Algebra K F
ι : Type w
h : ¬∃ s, Nonempty (Basis { x // x ∈ s } R S)
x : S
⊢ (if H : ∃ s, Nonempty (Basis { x // x ∈ s } R S) then detAux (Trunc.mk ⋯.some) else 1) ((lmul R S) x) = 1
state_after: no goals
Theorem: lineDifferentiableWithinAt_univ
File: Mathlib/Analysis/Calculus/LineDeriv/Basic.lean

tactic: simp only [LineDifferentiableWithinAt, LineDifferentiableAt, preimage_univ,
  differentiableWithinAt_univ]
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
f f₁ : E → F
f' f₀' f₁' : F
s t : Set E
x v : E
⊢ LineDifferentiableWithinAt 𝕜 f univ x v ↔ LineDifferentiableAt 𝕜 f x v
state_after: no goals
Theorem: Real.logb_le_logb_of_le
File: Mathlib/Analysis/SpecialFunctions/Log/Base.lean

tactic: linarith
state_before: b x y : ℝ
hb : 1 < b
h : 0 < x
hxy : x ≤ y
⊢ 0 < y
state_after: no goals
Theorem: Polynomial.Chebyshev.U_sub_two
File: Mathlib/RingTheory/Polynomial/Chebyshev.lean

tactic: linear_combination (norm := ring_nf) U_add_two R (n - 2)
state_before: R : Type u_1
S : Type u_2
inst✝¹ : CommRing R
inst✝ : CommRing S
n : ℤ
⊢ U R (n - 2) = 2 * X * U R (n - 1) - U R n
state_after: no goals
Theorem: MeasureTheory.OuterMeasure.mkMetric'.mono_pre_nat
File: Mathlib/MeasureTheory/Measure/Hausdorff.lean

tactic: simpa
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹ : EMetricSpace X
inst✝ : EMetricSpace Y
m✝ : Set X → ℝ≥0∞
r : ℝ≥0∞
μ : OuterMeasure X
s✝ : Set X
m : Set X → ℝ≥0∞
k l : ℕ
h : k ≤ l
s : Set X
hs : diam s ≤ (↑l)⁻¹
⊢ (↑l)⁻¹ ≤ (↑k)⁻¹
state_after: no goals