1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: KaehlerDifferential.kerTotal_mkQ_single_algebraMap
File: Mathlib/RingTheory/Kaehler/Basic.lean

tactic: rw [Submodule.mkQ_apply, Submodule.Quotient.mk_eq_zero, ← Finsupp.smul_single_one _ y]
state_before: R : Type u
S : Type v
inst✝⁶ : CommRing R
inst✝⁵ : CommRing S
inst✝⁴ : Algebra R S
M : Type u_1
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
x : R
y : S
⊢ (y𝖣(algebraMap R S) x) = 0
state_after: R : Type u
S : Type v
inst✝⁶ : CommRing R
inst✝⁵ : CommRing S
inst✝⁴ : Algebra R S
M : Type u_1
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
x : R
y : S
⊢ y • single ((algebraMap R S) x) 1 ∈ kerTotal R S

tactic: exact Submodule.smul_mem _ _ (Submodule.subset_span (Or.inr <| ⟨_, rfl⟩))
state_before: R : Type u
S : Type v
inst✝⁶ : CommRing R
inst✝⁵ : CommRing S
inst✝⁴ : Algebra R S
M : Type u_1
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
x : R
y : S
⊢ y • single ((algebraMap R S) x) 1 ∈ kerTotal R S
state_after: no goals
Theorem: Topology.lawsonClosed_iff_scottClosed_of_isLowerSet
File: Mathlib/Topology/Order/LawsonTopology.lean

tactic: rw [← @isOpen_compl_iff, ← isOpen_compl_iff,
  (lawsonOpen_iff_scottOpen_of_isUpperSet' L S _ (isUpperSet_compl.mpr h))]
state_before: α : Type u_1
β : Type u_2
inst✝² : Preorder α
L S : TopologicalSpace α
inst✝¹ : IsLawson α
inst✝ : IsScott α
s : Set α
h : IsLowerSet s
⊢ IsClosed s ↔ IsClosed s
state_after: no goals
Theorem: Polynomial.natSepDegree_pow_of_ne_zero
File: Mathlib/FieldTheory/SeparableDegree.lean

tactic: simp_rw [natSepDegree_pow, hn, ite_false]
state_before: F : Type u
E : Type v
inst✝⁴ : Field F
inst✝³ : Field E
inst✝² : Algebra F E
K : Type w
inst✝¹ : Field K
inst✝ : Algebra F K
f : F[X]
n : ℕ
hn : n ≠ 0
⊢ (f ^ n).natSepDegree = f.natSepDegree
state_after: no goals
Theorem: Int.le_iff_lt_or_eq
File: Mathlib/Data/Int/Defs.lean

tactic: rw [Int.le_iff_eq_or_lt, or_comm]
state_before: a✝ b✝ c✝ d m n a b c : ℤ
⊢ a ≤ b ↔ a < b ∨ a = b
state_after: no goals
Theorem: MeasureTheory.BoundedContinuousFunction.integral_eq_integral_meas_le_of_hasFiniteIntegral
File: Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean

tactic: rw [Integrable.integral_eq_integral_Ioc_meas_le (M := ‖f‖) ?_ f_nn ?_]
state_before: ι : Type u_1
Ω : Type u_2
inst✝⁵ : MeasurableSpace Ω
inst✝⁴ : PseudoMetricSpace Ω
inst✝³ : OpensMeasurableSpace Ω
α : Type u_3
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
inst✝ : OpensMeasurableSpace α
f : α →ᵇ ℝ
μ : Measure α
f_nn : 0 ≤ᶠ[ae μ] ⇑f
hf : HasFiniteIntegral (⇑f) μ
⊢ ∫ (ω : α), f ω ∂μ = ∫ (t : ℝ) in Ioc 0 ‖f‖, (μ {a | t ≤ f a}).toReal
state_after: ι : Type u_1
Ω : Type u_2
inst✝⁵ : MeasurableSpace Ω
inst✝⁴ : PseudoMetricSpace Ω
inst✝³ : OpensMeasurableSpace Ω
α : Type u_3
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
inst✝ : OpensMeasurableSpace α
f : α →ᵇ ℝ
μ : Measure α
f_nn : 0 ≤ᶠ[ae μ] ⇑f
hf : HasFiniteIntegral (⇑f) μ
⊢ Integrable (⇑f) μ

ι : Type u_1
Ω : Type u_2
inst✝⁵ : MeasurableSpace Ω
inst✝⁴ : PseudoMetricSpace Ω
inst✝³ : OpensMeasurableSpace Ω
α : Type u_3
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
inst✝ : OpensMeasurableSpace α
f : α →ᵇ ℝ
μ : Measure α
f_nn : 0 ≤ᶠ[ae μ] ⇑f
hf : HasFiniteIntegral (⇑f) μ
⊢ ⇑f ≤ᶠ[ae μ] fun x => ‖f‖

tactic: refine ⟨f.continuous.measurable.aestronglyMeasurable, hf⟩
state_before: ι : Type u_1
Ω : Type u_2
inst✝⁵ : MeasurableSpace Ω
inst✝⁴ : PseudoMetricSpace Ω
inst✝³ : OpensMeasurableSpace Ω
α : Type u_3
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
inst✝ : OpensMeasurableSpace α
f : α →ᵇ ℝ
μ : Measure α
f_nn : 0 ≤ᶠ[ae μ] ⇑f
hf : HasFiniteIntegral (⇑f) μ
⊢ Integrable (⇑f) μ
state_after: no goals

tactic: exact eventually_of_forall (fun x ↦ BoundedContinuousFunction.apply_le_norm f x)
state_before: ι : Type u_1
Ω : Type u_2
inst✝⁵ : MeasurableSpace Ω
inst✝⁴ : PseudoMetricSpace Ω
inst✝³ : OpensMeasurableSpace Ω
α : Type u_3
inst✝² : MeasurableSpace α
inst✝¹ : TopologicalSpace α
inst✝ : OpensMeasurableSpace α
f : α →ᵇ ℝ
μ : Measure α
f_nn : 0 ≤ᶠ[ae μ] ⇑f
hf : HasFiniteIntegral (⇑f) μ
⊢ ⇑f ≤ᶠ[ae μ] fun x => ‖f‖
state_after: no goals
Theorem: AddCircle.coe_eq_zero_iff_of_mem_Ico
File: Mathlib/Topology/Instances/AddCircle.lean

tactic: have h0 : 0 ∈ Ico 0 (0 + p) := by simpa [zero_add, left_mem_Ico] using hp.out
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
ha : a ∈ Ico 0 p
⊢ ↑a = 0 ↔ a = 0
state_after: 𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
ha : a ∈ Ico 0 p
h0 : 0 ∈ Ico 0 (0 + p)
⊢ ↑a = 0 ↔ a = 0

tactic: have ha' : a ∈ Ico 0 (0 + p) := by rwa [zero_add]
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
ha : a ∈ Ico 0 p
h0 : 0 ∈ Ico 0 (0 + p)
⊢ ↑a = 0 ↔ a = 0
state_after: 𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
ha : a ∈ Ico 0 p
h0 : 0 ∈ Ico 0 (0 + p)
ha' : a ∈ Ico 0 (0 + p)
⊢ ↑a = 0 ↔ a = 0

tactic: rw [← AddCircle.coe_eq_coe_iff_of_mem_Ico ha' h0, QuotientAddGroup.mk_zero]
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
ha : a ∈ Ico 0 p
h0 : 0 ∈ Ico 0 (0 + p)
ha' : a ∈ Ico 0 (0 + p)
⊢ ↑a = 0 ↔ a = 0
state_after: no goals

tactic: simpa [zero_add, left_mem_Ico] using hp.out
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
ha : a ∈ Ico 0 p
⊢ 0 ∈ Ico 0 (0 + p)
state_after: no goals

tactic: rwa [zero_add]
state_before: 𝕜 : Type u_1
B : Type u_2
inst✝³ : LinearOrderedAddCommGroup 𝕜
inst✝² : TopologicalSpace 𝕜
inst✝¹ : OrderTopology 𝕜
p : 𝕜
hp : Fact (0 < p)
a : 𝕜
inst✝ : Archimedean 𝕜
ha : a ∈ Ico 0 p
h0 : 0 ∈ Ico 0 (0 + p)
⊢ a ∈ Ico 0 (0 + p)
state_after: no goals
Theorem: Nat.floorRoot_one_left
File: Mathlib/Data/Nat/Factorization/Root.lean

tactic: simp [floorRoot]
state_before: a✝ b n a : ℕ
⊢ floorRoot 1 a = a
state_after: a✝ b n a : ℕ
⊢ (if a = 0 then 0 else a.factorization.prod fun p k => p ^ k) = a

tactic: split_ifs <;> simp [*]
state_before: a✝ b n a : ℕ
⊢ (if a = 0 then 0 else a.factorization.prod fun p k => p ^ k) = a
state_after: no goals
Theorem: Real.norm_rpow_of_nonneg
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: simp_rw [Real.norm_eq_abs]
state_before: x✝ y✝ z x y : ℝ
hx_nonneg : 0 ≤ x
⊢ ‖x ^ y‖ = ‖x‖ ^ y
state_after: x✝ y✝ z x y : ℝ
hx_nonneg : 0 ≤ x
⊢ |x ^ y| = |x| ^ y

tactic: exact abs_rpow_of_nonneg hx_nonneg
state_before: x✝ y✝ z x y : ℝ
hx_nonneg : 0 ≤ x
⊢ |x ^ y| = |x| ^ y
state_after: no goals
Theorem: NonUnitalAlgebra.mem_sup_right
File: Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean

tactic: rw [← SetLike.le_def]
state_before: F : Type u_1
R : Type u
A : Type v
B : Type w
inst✝¹⁰ : CommSemiring R
inst✝⁹ : NonUnitalNonAssocSemiring A
inst✝⁸ : Module R A
inst✝⁷ : IsScalarTower R A A
inst✝⁶ : SMulCommClass R A A
inst✝⁵ : NonUnitalNonAssocSemiring B
inst✝⁴ : Module R B
inst✝³ : IsScalarTower R B B
inst✝² : SMulCommClass R B B
inst✝¹ : FunLike F A B
inst✝ : NonUnitalAlgHomClass F R A B
S T : NonUnitalSubalgebra R A
⊢ ∀ {x : A}, x ∈ T → x ∈ S ⊔ T
state_after: F : Type u_1
R : Type u
A : Type v
B : Type w
inst✝¹⁰ : CommSemiring R
inst✝⁹ : NonUnitalNonAssocSemiring A
inst✝⁸ : Module R A
inst✝⁷ : IsScalarTower R A A
inst✝⁶ : SMulCommClass R A A
inst✝⁵ : NonUnitalNonAssocSemiring B
inst✝⁴ : Module R B
inst✝³ : IsScalarTower R B B
inst✝² : SMulCommClass R B B
inst✝¹ : FunLike F A B
inst✝ : NonUnitalAlgHomClass F R A B
S T : NonUnitalSubalgebra R A
⊢ T ≤ S ⊔ T

tactic: exact le_sup_right
state_before: F : Type u_1
R : Type u
A : Type v
B : Type w
inst✝¹⁰ : CommSemiring R
inst✝⁹ : NonUnitalNonAssocSemiring A
inst✝⁸ : Module R A
inst✝⁷ : IsScalarTower R A A
inst✝⁶ : SMulCommClass R A A
inst✝⁵ : NonUnitalNonAssocSemiring B
inst✝⁴ : Module R B
inst✝³ : IsScalarTower R B B
inst✝² : SMulCommClass R B B
inst✝¹ : FunLike F A B
inst✝ : NonUnitalAlgHomClass F R A B
S T : NonUnitalSubalgebra R A
⊢ T ≤ S ⊔ T
state_after: no goals
Theorem: Metric.ball_zero
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

tactic: rw [ball_eq_empty]
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
⊢ ball x 0 = ∅
state_after: no goals
Theorem: CategoryTheory.Presheaf.isSheaf_iff_preservesFiniteProducts_and_equalizerCondition
File: Mathlib/CategoryTheory/Sites/Coherent/SheafComparison.lean

tactic: rw [isSheaf_coherent_iff_regular_and_extensive]
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.41320, u_2} D
F✝ : C ⥤ D
A : Type u₃
inst✝² : Category.{v₃, u₃} A
F : Cᵒᵖ ⥤ A
inst✝¹ : Preregular C
inst✝ : FinitaryExtensive C
h : ∀ {Y X : C} (f : Y ⟶ X) [inst : EffectiveEpi f], HasPullback f f
⊢ IsSheaf (coherentTopology C) F ↔ Nonempty (PreservesFiniteProducts F) ∧ EqualizerCondition F
state_after: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.41320, u_2} D
F✝ : C ⥤ D
A : Type u₃
inst✝² : Category.{v₃, u₃} A
F : Cᵒᵖ ⥤ A
inst✝¹ : Preregular C
inst✝ : FinitaryExtensive C
h : ∀ {Y X : C} (f : Y ⟶ X) [inst : EffectiveEpi f], HasPullback f f
⊢ IsSheaf (extensiveTopology C) F ∧ IsSheaf (regularTopology C) F ↔
    Nonempty (PreservesFiniteProducts F) ∧ EqualizerCondition F

tactic: exact and_congr (isSheaf_iff_preservesFiniteProducts _)
  (@equalizerCondition_iff_isSheaf _ _ _ _ F _ h).symm
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.41320, u_2} D
F✝ : C ⥤ D
A : Type u₃
inst✝² : Category.{v₃, u₃} A
F : Cᵒᵖ ⥤ A
inst✝¹ : Preregular C
inst✝ : FinitaryExtensive C
h : ∀ {Y X : C} (f : Y ⟶ X) [inst : EffectiveEpi f], HasPullback f f
⊢ IsSheaf (extensiveTopology C) F ∧ IsSheaf (regularTopology C) F ↔
    Nonempty (PreservesFiniteProducts F) ∧ EqualizerCondition F
state_after: no goals
Theorem: AddConstMapClass.map_const
File: Mathlib/Algebra/AddConstMap/Basic.lean

tactic: simpa using map_add_const f 0
state_before: F : Type u_1
G : Type u_2
H : Type u_3
inst✝³ : FunLike F G H
a : G
b : H
inst✝² : AddZeroClass G
inst✝¹ : Add H
inst✝ : AddConstMapClass F G H a b
f : F
⊢ f a = f 0 + b
state_after: no goals
Theorem: ProjectiveSpectrum.gc_homogeneousIdeal
File: Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean

tactic: simpa [show I.toIdeal ≤ (vanishingIdeal t).toIdeal ↔ I ≤ vanishingIdeal t from Iff.rfl] using
  subset_zeroLocus_iff_le_vanishingIdeal t I.toIdeal
state_before: R : Type u_1
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
I : HomogeneousIdeal 𝒜
t : (Set (ProjectiveSpectrum 𝒜))ᵒᵈ
⊢ (fun I => zeroLocus 𝒜 ↑I) I ≤ t ↔ I ≤ (fun t => vanishingIdeal t) t
state_after: no goals
Theorem: Stream'.Seq1.map_id
File: Mathlib/Data/Seq/Seq.lean

tactic: simp [map]
state_before: α : Type u
β : Type v
γ : Type w
a : α
s : Seq α
⊢ map id (a, s) = (a, s)
state_after: no goals
Theorem: Int.cast_commute
File: Mathlib/Data/Int/Cast/Lemmas.lean

tactic: simpa using n.cast_commute x
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : NonAssocRing α
a b : α
n✝ : ℤ
n : ℕ
x : α
⊢ Commute (↑↑n) x
state_after: no goals

tactic: simpa only [cast_negSucc, Commute.neg_left_iff, Commute.neg_right_iff] using
  (n + 1).cast_commute (-x)
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝ : NonAssocRing α
a b : α
n✝ : ℤ
n : ℕ
x : α
⊢ Commute (↑-[n+1]) x
state_after: no goals
Theorem: Int.cast_eq_one
File: Mathlib/Data/Int/Cast/Lemmas.lean

tactic: rw [← cast_one, cast_inj]
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
inst✝¹ : AddGroupWithOne α
inst✝ : CharZero α
m n : ℤ
⊢ ↑n = 1 ↔ n = 1
state_after: no goals
Theorem: Orientation.oangle_add_cyc3
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean

tactic: simp [hx, hy, hz]
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
x y z : V
hx : x ≠ 0
hy : y ≠ 0
hz : z ≠ 0
⊢ o.oangle x y + o.oangle y z + o.oangle z x = 0
state_after: no goals
Theorem: OreLocalization.div_eq_one'
File: Mathlib/RingTheory/OreLocalization/Basic.lean

tactic: rw [OreLocalization.one_def, oreDiv_eq_iff]
state_before: R : Type u_1
inst✝² : Monoid R
S : Submonoid R
inst✝¹ : OreSet S
X : Type ?u.84941
inst✝ : MulAction R X
r : R
hr : r ∈ S
⊢ r /ₒ ⟨r, hr⟩ = 1
state_after: R : Type u_1
inst✝² : Monoid R
S : Submonoid R
inst✝¹ : OreSet S
X : Type ?u.84941
inst✝ : MulAction R X
r : R
hr : r ∈ S
⊢ ∃ u v, u • 1 = v • r ∧ ↑u * ↑1 = v * ↑⟨r, hr⟩

tactic: exact ⟨⟨r, hr⟩, 1, by simp, by simp⟩
state_before: R : Type u_1
inst✝² : Monoid R
S : Submonoid R
inst✝¹ : OreSet S
X : Type ?u.84941
inst✝ : MulAction R X
r : R
hr : r ∈ S
⊢ ∃ u v, u • 1 = v • r ∧ ↑u * ↑1 = v * ↑⟨r, hr⟩
state_after: no goals

tactic: simp
state_before: R : Type u_1
inst✝² : Monoid R
S : Submonoid R
inst✝¹ : OreSet S
X : Type ?u.84941
inst✝ : MulAction R X
r : R
hr : r ∈ S
⊢ ⟨r, hr⟩ • 1 = 1 • r
state_after: no goals

tactic: simp
state_before: R : Type u_1
inst✝² : Monoid R
S : Submonoid R
inst✝¹ : OreSet S
X : Type ?u.84941
inst✝ : MulAction R X
r : R
hr : r ∈ S
⊢ ↑⟨r, hr⟩ * ↑1 = 1 * ↑⟨r, hr⟩
state_after: no goals
Theorem: Basis.reindexFinsetRange_self
File: Mathlib/LinearAlgebra/Basis.lean

tactic: rw [reindexFinsetRange, reindex_apply, reindexRange_apply]
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid M'
inst✝² : Module R M'
b b₁ : Basis ι R M
i✝ : ι
c : R
x : M
b' : Basis ι' R M'
e : ι ≃ ι'
inst✝¹ : Fintype ι
inst✝ : DecidableEq M
i : ι
h : optParam (b i ∈ Finset.image (⇑b) Finset.univ) ⋯
⊢ b.reindexFinsetRange ⟨b i, h⟩ = b i
state_after: ι : Type u_1
ι' : Type u_2
R : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid M'
inst✝² : Module R M'
b b₁ : Basis ι R M
i✝ : ι
c : R
x : M
b' : Basis ι' R M'
e : ι ≃ ι'
inst✝¹ : Fintype ι
inst✝ : DecidableEq M
i : ι
h : optParam (b i ∈ Finset.image (⇑b) Finset.univ) ⋯
⊢ ↑(((Equiv.refl M).subtypeEquiv ⋯).symm ⟨b i, h⟩) = b i

tactic: rfl
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid M'
inst✝² : Module R M'
b b₁ : Basis ι R M
i✝ : ι
c : R
x : M
b' : Basis ι' R M'
e : ι ≃ ι'
inst✝¹ : Fintype ι
inst✝ : DecidableEq M
i : ι
h : optParam (b i ∈ Finset.image (⇑b) Finset.univ) ⋯
⊢ ↑(((Equiv.refl M).subtypeEquiv ⋯).symm ⟨b i, h⟩) = b i
state_after: no goals
Theorem: InnerProductSpace.Core.inner_mul_inner_self_le
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: rcases eq_or_ne x 0 with (rfl | hx)
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
⊢ ‖⟪x, y⟫_𝕜‖ * ‖⟪y, x⟫_𝕜‖ ≤ re ⟪x, x⟫_𝕜 * re ⟪y, y⟫_𝕜
state_after: case inl
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
y : F
⊢ ‖⟪0, y⟫_𝕜‖ * ‖⟪y, 0⟫_𝕜‖ ≤ re ⟪0, 0⟫_𝕜 * re ⟪y, y⟫_𝕜

case inr
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
hx : x ≠ 0
⊢ ‖⟪x, y⟫_𝕜‖ * ‖⟪y, x⟫_𝕜‖ ≤ re ⟪x, x⟫_𝕜 * re ⟪y, y⟫_𝕜

tactic: simpa only [inner_zero_left, map_zero, zero_mul, norm_zero] using le_rfl
state_before: case inl
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
y : F
⊢ ‖⟪0, y⟫_𝕜‖ * ‖⟪y, 0⟫_𝕜‖ ≤ re ⟪0, 0⟫_𝕜 * re ⟪y, y⟫_𝕜
state_after: no goals

tactic: have hx' : 0 < normSqF x := inner_self_nonneg.lt_of_ne' (mt normSq_eq_zero.1 hx)
state_before: case inr
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
hx : x ≠ 0
⊢ ‖⟪x, y⟫_𝕜‖ * ‖⟪y, x⟫_𝕜‖ ≤ re ⟪x, x⟫_𝕜 * re ⟪y, y⟫_𝕜
state_after: case inr
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
hx : x ≠ 0
hx' : 0 < normSq x
⊢ ‖⟪x, y⟫_𝕜‖ * ‖⟪y, x⟫_𝕜‖ ≤ re ⟪x, x⟫_𝕜 * re ⟪y, y⟫_𝕜

tactic: rw [← sub_nonneg, ← mul_nonneg_iff_right_nonneg_of_pos hx', ← normSq, ← normSq,
  norm_inner_symm y, ← sq, ← cauchy_schwarz_aux]
state_before: case inr
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
hx : x ≠ 0
hx' : 0 < normSq x
⊢ ‖⟪x, y⟫_𝕜‖ * ‖⟪y, x⟫_𝕜‖ ≤ re ⟪x, x⟫_𝕜 * re ⟪y, y⟫_𝕜
state_after: case inr
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
hx : x ≠ 0
hx' : 0 < normSq x
⊢ 0 ≤ normSq (⟪x, y⟫_𝕜 • x - ⟪x, x⟫_𝕜 • y)

tactic: exact inner_self_nonneg
state_before: case inr
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝² : _root_.RCLike 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x y : F
hx : x ≠ 0
hx' : 0 < normSq x
⊢ 0 ≤ normSq (⟪x, y⟫_𝕜 • x - ⟪x, x⟫_𝕜 • y)
state_after: no goals
Theorem: Sym2.map.injective
File: Mathlib/Data/Sym/Sym2.lean

tactic: intro z z'
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f : α → β
hinj : Injective f
⊢ Injective (map f)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
f : α → β
hinj : Injective f
z z' : Sym2 α
⊢ map f z = map f z' → z = z'

tactic: refine Sym2.inductionOn₂ z z' (fun x y x' y' => ?_)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f : α → β
hinj : Injective f
z z' : Sym2 α
⊢ map f z = map f z' → z = z'
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
f : α → β
hinj : Injective f
z z' : Sym2 α
x y x' y' : α
⊢ map f s(x, y) = map f s(x', y') → s(x, y) = s(x', y')

tactic: simp [hinj.eq_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f : α → β
hinj : Injective f
z z' : Sym2 α
x y x' y' : α
⊢ map f s(x, y) = map f s(x', y') → s(x, y) = s(x', y')
state_after: no goals
Theorem: eq_compl_comm
File: Mathlib/Order/BooleanAlgebra.lean

tactic: rw [eq_comm, compl_eq_iff_isCompl, eq_compl_iff_isCompl]
state_before: α : Type u
β : Type u_1
w x y z : α
inst✝ : BooleanAlgebra α
⊢ x = yᶜ ↔ y = xᶜ
state_after: no goals
Theorem: UniformEmbedding.of_comp_iff
File: Mathlib/Topology/UniformSpace/UniformEmbedding.lean

tactic: simp_rw [uniformEmbedding_iff, hg.toUniformInducing.of_comp_iff, hg.inj.of_comp_iff f]
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
g : β → γ
hg : UniformEmbedding g
f : α → β
⊢ UniformEmbedding (g ∘ f) ↔ UniformEmbedding f
state_after: no goals
Theorem: Polynomial.dvd_iff_isRoot
File: Mathlib/Algebra/Polynomial/Div.lean

tactic: rwa [← modByMonic_eq_zero_iff_dvd (monic_X_sub_C _), modByMonic_X_sub_C_eq_C_eval, ← C_0,
  C_inj] at h
state_before: R : Type u
S : Type v
T : Type w
A : Type z
a b : R
n : ℕ
inst✝ : CommRing R
p q : R[X]
h : X - C a ∣ p
⊢ p.IsRoot a
state_after: no goals

tactic: rw [mul_divByMonic_eq_iff_isRoot.2 h]
state_before: R : Type u
S : Type v
T : Type w
A : Type z
a b : R
n : ℕ
inst✝ : CommRing R
p q : R[X]
h : p.IsRoot a
⊢ p = (X - C a) * (p /ₘ (X - C a))
state_after: no goals
Theorem: CoxeterSystem.isLeftDescent_iff
File: Mathlib/GroupTheory/Coxeter/Length.lean

tactic: unfold IsLeftDescent
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.IsLeftDescent w i ↔ cs.length (cs.simple i * w) + 1 = cs.length w
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 (cs.simple i * w) < cs.length w ↔ cs.length (cs.simple i * w) + 1 = cs.length w

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 (cs.simple i * w) < cs.length w ↔ cs.length (cs.simple i * w) + 1 = cs.length w
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 (cs.simple i * w) < cs.length w → cs.length (cs.simple i * w) + 1 = cs.length w

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 (cs.simple i * w) + 1 = cs.length w → cs.length (cs.simple i * w) < 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 (cs.simple i * w) < cs.length w → cs.length (cs.simple i * w) + 1 = cs.length w
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 (cs.simple i * w) < cs.length w
⊢ cs.length (cs.simple i * w) + 1 = cs.length w

tactic: exact (cs.length_simple_mul w i).resolve_left (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 (cs.simple i * w) < cs.length w
⊢ cs.length (cs.simple i * w) + 1 = cs.length w
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 (cs.simple i * w) < cs.length w
⊢ ¬cs.length (cs.simple i * w) = cs.length w + 1
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 (cs.simple i * w) + 1 = cs.length w → cs.length (cs.simple i * w) < 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 (cs.simple i * w) + 1 = cs.length w
⊢ cs.length (cs.simple i * w) < 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 (cs.simple i * w) + 1 = cs.length w
⊢ cs.length (cs.simple i * w) < cs.length w
state_after: no goals
Theorem: Fin.one_succAbove_zero
File: Mathlib/Data/Fin/Basic.lean

tactic: rfl
state_before: n✝ m : ℕ
p : Fin (n✝ + 1)
i j : Fin n✝
n : ℕ
⊢ succAbove 1 0 = 0
state_after: no goals