ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Mathlib/LinearAlgebra/Trace.lean
R : Type u_1
inst✝¹² : CommRing R
M : Type u_2
inst✝¹¹ : AddCommGroup M
inst✝¹⁰ : Module R M
N : Type u_3
P : Type u_4
inst✝⁹ : AddCommGroup N
inst✝⁸ : Module R N
inst✝⁷ : AddCommGroup P
inst✝⁶ : Module R P
ι : Type u_5
inst✝⁵ : Module.Free R M
inst✝⁴ : Module.Finite R M
inst✝³ : Module.Free R N
inst✝² : Module.Finite R N
inst✝¹ : Module.Free R P
inst✝ : Module.Finite R P
f : M →ₗ[R] M
g : N →ₗ[R] N
h : (trace R (M × N)) (f.prodMap g) = { toFun := _root_.id, map_add' := ⋯, map_smul' := ⋯ } ((trace R M) f) + { toFun := _root_.id, map_add' := ⋯, map_smul' := ⋯ } ((trace R N) g)

⊢ (trace R (M × N)) (f.prodMap g) = (trace R M) f + (trace R N) g
-- Mathlib/CategoryTheory/Generator.lean
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
inst✝¹ : HasZeroMorphisms C
β : Type w
f : β → C
inst✝ : HasProduct f

⊢ IsCoseparator (∏ᶜ f) ↔ IsCoseparating (Set.range f)
-- Mathlib/CategoryTheory/Generator.lean
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
inst✝¹ : HasZeroMorphisms C
β : Type w
f : β → C
inst✝ : HasProduct f
h : IsCoseparator (∏ᶜ f)
X Y : C
u v : X ⟶ Y
huv : ∀ G ∈ Set.range f, ∀ (h : Y ⟶ G), u ≫ h = v ≫ h

⊢ u = v
-- Mathlib/CategoryTheory/Generator.lean
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
inst✝¹ : HasZeroMorphisms C
β : Type w
f : β → C
inst✝ : HasProduct f
h : IsCoseparating (Set.range f)
X Y : C
u v : X ⟶ Y
huv : ∀ (h : Y ⟶ ∏ᶜ f), u ≫ h = v ≫ h
Z : C
hZ : Z ∈ Set.range f
g : Y ⟶ Z

⊢ u ≫ g = v ≫ g
-- Mathlib/Logic/Equiv/Basic.lean
α' : Type u_1
β' : Type u_2
e✝ : Perm α'
p : β' → Prop
inst✝ : DecidablePred p
f : α' ≃ Subtype p
e e' : Perm α'

⊢ Equiv.trans (e.extendDomain f) (e'.extendDomain f) = extendDomain (Equiv.trans e e') f
-- Mathlib/RingTheory/Ideal/Operations.lean
ι : Type u_1
M : Type u_2
inst✝³ : AddCommGroup M
R : Type u_3
inst✝² : CommRing R
inst✝¹ : Module R M
I : Ideal R
v : ι → M
hv : Submodule.span R (Set.range v) = ⊤
inst✝ : Fintype ι
f : ι →₀ ↥I

⊢ (finsuppTotal ι M I v) f = ∑ i : ι, ↑(f i) • v i
-- Mathlib/RingTheory/Ideal/Operations.lean
ι : Type u_1
M : Type u_2
inst✝³ : AddCommGroup M
R : Type u_3
inst✝² : CommRing R
inst✝¹ : Module R M
I : Ideal R
v : ι → M
hv : Submodule.span R (Set.range v) = ⊤
inst✝ : Fintype ι
f : ι →₀ ↥I

⊢ ∀ (i : ι), ↑0 • v i = 0
-- Mathlib/LinearAlgebra/Dimension/Finrank.lean
R : Type u
M : Type v
N : Type w
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
n : ℕ
h : Module.rank R M < ↑n

⊢ finrank R M < n
-- Mathlib/LinearAlgebra/Dimension/Finrank.lean
R : Type u
M : Type v
N : Type w
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
n : ℕ
h : Module.rank R M < ↑n

⊢ Module.rank R M < ℵ₀
-- Mathlib/LinearAlgebra/Dimension/Finrank.lean
R : Type u
M : Type v
N : Type w
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
n : ℕ
h : Module.rank R M < ↑n

⊢ ↑n < ℵ₀
-- Mathlib/Topology/Instances/Int.lean

⊢ cofinite = atBot ⊔ atTop
-- Mathlib/CategoryTheory/MorphismProperty/Limits.lean
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasPullbacks C
P : MorphismProperty C
inst✝¹ : P.IsStableUnderComposition
inst✝ : P.RespectsIso
hP'' : P.StableUnderBaseChange
X✝ Y✝ Z✝ : C
x✝¹ : X✝ ⟶ Y✝
x✝ : Y✝ ⟶ Z✝
h₁ : P.diagonal x✝¹
h₂ : P.diagonal x✝

⊢ P.diagonal (x✝¹ ≫ x✝)
-- Mathlib/CategoryTheory/MorphismProperty/Limits.lean
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasPullbacks C
P : MorphismProperty C
inst✝¹ : P.IsStableUnderComposition
inst✝ : P.RespectsIso
hP'' : P.StableUnderBaseChange
X✝ Y✝ Z✝ : C
x✝¹ : X✝ ⟶ Y✝
x✝ : Y✝ ⟶ Z✝
h₁ : P.diagonal x✝¹
h₂ : P.diagonal x✝

⊢ P (pullback.diagonal x✝¹ ≫ (pullbackDiagonalMapIdIso x✝¹ x✝¹ x✝).inv ≫ pullback.snd (pullback.diagonal x✝) (pullback.map (x✝¹ ≫ x✝) (x✝¹ ≫ x✝) x✝ x✝ x✝¹ x✝¹ (𝟙 Z✝) ⋯ ⋯))
-- Mathlib/Data/Set/Finite.lean
α : Type u
β : Type v
ι : Sort w
γ : Type x
s t✝ : Set α
a : α
hs : s.Finite
ht : t✝.Finite
t : Finset α

⊢ hs.toFinset ⊆ t ↔ s ⊆ ↑t
-- Mathlib/Algebra/CharZero/Lemmas.lean
R : Type u_1
inst✝² : NonAssocRing R
inst✝¹ : NoZeroDivisors R
inst✝ : CharZero R
n : ℕ
a b : R
h : ↑n * a = ↑n * b

⊢ n = 0 ∨ a = b
-- Mathlib/Algebra/CharZero/Lemmas.lean
R : Type u_1
inst✝² : NonAssocRing R
inst✝¹ : NoZeroDivisors R
inst✝ : CharZero R
n : ℕ
a b : R
h : ↑n = 0 ∨ a = b

⊢ n = 0 ∨ a = b
-- Mathlib/CategoryTheory/MorphismProperty/Basic.lean
C : Type u
inst✝² : Category.{v, u} C
D : Type u_1
inst✝¹ : Category.{?u.12278, u_1} D
P : MorphismProperty C
hP : P.RespectsIso
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
inst✝ : IsIso g
h : P (f ≫ g)

⊢ P f
-- Mathlib/Algebra/Group/Commute/Basic.lean
G : Type u_1
inst✝ : Group G
a b : G
h : Commute a b

⊢ a⁻¹ * b * a = b
-- Mathlib/RingTheory/Filtration.lean
R M : Type u
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
I : Ideal R
F F' : I.Filtration M
h : F.Stable

⊢ F.Stable ↔ ∃ n₀, ∀ n ≥ n₀, F.N n = I ^ (n - n₀) • F.N n₀
-- Mathlib/RingTheory/Filtration.lean
R M : Type u
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
I : Ideal R
F F' : I.Filtration M
h✝ : F.Stable
h : ∃ n₀, ∀ n ≥ n₀, F.N n = I ^ (n - n₀) • F.N n₀
n : ℕ
hn : n ≥ h.choose

⊢ I • F.N n = F.N (n + 1)
-- Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean
R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
C : VariableChange R

⊢ W.variableChange VariableChange.id = W
-- Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean
R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
C : VariableChange R

⊢ { a₁ := 1 * (W.a₁ + 2 * { u := 1, r := 0, s := 0, t := 0 }.s), a₂ := 1 ^ 2 * (W.a₂ - { u := 1, r := 0, s := 0, t := 0 }.s * W.a₁ + 3 * { u := 1, r := 0, s := 0, t := 0 }.r - { u := 1, r := 0, s := 0, t := 0 }.s ^ 2), a₃ := 1 ^ 3 * (W.a₃ + { u := 1, r := 0, s := 0, t := 0 }.r * W.a₁ + 2 * { u := 1, r := 0, s := 0, t := 0 }.t), a₄ := 1 ^ 4 * (W.a₄ - { u := 1, r := 0, s := 0, t := 0 }.s * W.a₃ + 2 * { u := 1, r := 0, s := 0, t := 0 }.r * W.a₂ - ({ u := 1, r := 0, s := 0, t := 0 }.t + { u := 1, r := 0, s := 0, t := 0 }.r * { u := 1, r := 0, s := 0, t := 0 }.s) * W.a₁ + 3 * { u := 1, r := 0, s := 0, t := 0 }.r ^ 2 - 2 * { u := 1, r := 0, s := 0, t := 0 }.s * { u := 1, r := 0, s := 0, t := 0 }.t), a₆ := 1 ^ 6 * (W.a₆ + { u := 1, r := 0, s := 0, t := 0 }.r * W.a₄ + { u := 1, r := 0, s := 0, t := 0 }.r ^ 2 * W.a₂ + { u := 1, r := 0, s := 0, t := 0 }.r ^ 3 - { u := 1, r := 0, s := 0, t := 0 }.t * W.a₃ - { u := 1, r := 0, s := 0, t := 0 }.t ^ 2 - { u := 1, r := 0, s := 0, t := 0 }.r * { u := 1, r := 0, s := 0, t := 0 }.t * W.a₁) } = W
-- Mathlib/RingTheory/DedekindDomain/Different.lean
A : Type u_1
K : Type u_2
L : Type u
B : Type u_3
inst✝¹⁸ : CommRing A
inst✝¹⁷ : Field K
inst✝¹⁶ : CommRing B
inst✝¹⁵ : Field L
inst✝¹⁴ : Algebra A K
inst✝¹³ : Algebra B L
inst✝¹² : Algebra A B
inst✝¹¹ : Algebra K L
inst✝¹⁰ : Algebra A L
inst✝⁹ : IsScalarTower A K L
inst✝⁸ : IsScalarTower A B L
inst✝⁷ : IsDomain A
inst✝⁶ : IsFractionRing A K
inst✝⁵ : IsIntegralClosure B A L
inst✝⁴ : IsFractionRing B L
inst✝³ : FiniteDimensional K L
inst✝² : Algebra.IsSeparable K L
inst✝¹ : IsIntegrallyClosed A
inst✝ : IsDedekindDomain B
I J : FractionalIdeal B⁰ L
hI : I ≠ 0
hJ : J ≠ 0

⊢ dual A K I ≤ dual A K J ↔ J ≤ I
-- Mathlib/RingTheory/DedekindDomain/Different.lean
A : Type u_1
K : Type u_2
L : Type u
B : Type u_3
inst✝¹⁸ : CommRing A
inst✝¹⁷ : Field K
inst✝¹⁶ : CommRing B
inst✝¹⁵ : Field L
inst✝¹⁴ : Algebra A K
inst✝¹³ : Algebra B L
inst✝¹² : Algebra A B
inst✝¹¹ : Algebra K L
inst✝¹⁰ : Algebra A L
inst✝⁹ : IsScalarTower A K L
inst✝⁸ : IsScalarTower A B L
inst✝⁷ : IsDomain A
inst✝⁶ : IsFractionRing A K
inst✝⁵ : IsIntegralClosure B A L
inst✝⁴ : IsFractionRing B L
inst✝³ : FiniteDimensional K L
inst✝² : Algebra.IsSeparable K L
inst✝¹ : IsIntegrallyClosed A
inst✝ : IsDedekindDomain B
I J : FractionalIdeal B⁰ L
hI : I ≠ 0
hJ : J ≠ 0

⊢ dual A K I ≤ dual A K J ↔ J ≤ dual A K (dual A K I)
-- Mathlib/Analysis/Calculus/FDeriv/Basic.lean
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x✝ : E
s t : Set E
L L₁ L₂ : Filter E
x : E
a✝ : Nontrivial E

⊢ fderivWithin 𝕜 f univ x = fderiv 𝕜 f x
-- Mathlib/Analysis/Calculus/FDeriv/Basic.lean
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x✝ : E
s t : Set E
L L₁ L₂ : Filter E
x : E
a✝ : Nontrivial E
H : 𝓝[univ \ {x}] x ≠ ⊥

⊢ fderivWithin 𝕜 f univ x = fderiv 𝕜 f x
-- Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean
a : UnitAddCircle
s : ℂ
hs : ∀ (n : ℕ), s ≠ -↑n
hs' : a ≠ 0 ∨ s ≠ 1

⊢ hurwitzZetaEven a (1 - s) = 2 * (2 * ↑π) ^ (-s) * Complex.Gamma s * Complex.cos (↑π * s / 2) * cosZeta a s
-- Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean
a : UnitAddCircle
s : ℂ
hs : ∀ (n : ℕ), s ≠ -↑n
hs' : a ≠ 0 ∨ s ≠ 1
this : hurwitzZetaEven a (1 - s) = completedHurwitzZetaEven a (1 - s) * (1 - s).Gammaℝ⁻¹

⊢ hurwitzZetaEven a (1 - s) = 2 * (2 * ↑π) ^ (-s) * Complex.Gamma s * Complex.cos (↑π * s / 2) * cosZeta a s
-- Mathlib/NumberTheory/LSeries/HurwitzZetaEven.lean
a : UnitAddCircle
s : ℂ
hs : ∀ (n : ℕ), s ≠ -↑n
hs' : a ≠ 0 ∨ s ≠ 1
this : hurwitzZetaEven a (1 - s) = completedHurwitzZetaEven a (1 - s) * (1 - s).Gammaℝ⁻¹

⊢ completedCosZeta a s * (s.Gammaℂ * Complex.cos (↑π * s / 2) * s.Gammaℝ⁻¹) = s.Gammaℂ * Complex.cos (↑π * s / 2) * (completedCosZeta a s / s.Gammaℝ)
-- Mathlib/Analysis/NormedSpace/MStructure.lean
X : Type u_1
inst✝² : NormedAddCommGroup X
M : Type u_2
inst✝¹ : Ring M
inst✝ : Module M X
P : { P // IsLprojection X P }

⊢ ↑P * ↑Pᶜ = 0
-- Mathlib/GroupTheory/Perm/Fin.lean
n n✝ : ℕ
hi : n✝ + 1 < n + 1
h0 : ⟨n✝ + 1, hi⟩ ≠ 0

⊢ ⟨n✝ + 1, hi⟩.cycleRange.cycleType = {↑⟨n✝ + 1, hi⟩ + 1}
-- Mathlib/GroupTheory/Perm/Fin.lean
n n✝ : ℕ
hi : n✝ + 1 < n + 1
h0 : ⟨n✝ + 1, hi⟩ ≠ 0

⊢ (finRotate (↑⟨n✝ + 1, hi⟩ + 1)).cycleType = {↑⟨n✝ + 1, hi⟩ + 1}
-- Mathlib/Geometry/Euclidean/Triangle.lean
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
h : dist p1 p2 = dist p1 p3

⊢ ∠ p1 p2 p3 = ∠ p1 p3 p2
-- Mathlib/Geometry/Euclidean/Triangle.lean
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
h : ‖p1 -ᵥ p2‖ = ‖p1 -ᵥ p3‖

⊢ ∠ p1 p2 p3 = ∠ p1 p3 p2
-- Mathlib/Geometry/Euclidean/Triangle.lean
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
h : ‖p1 -ᵥ p2‖ = ‖p1 -ᵥ p3‖

⊢ InnerProductGeometry.angle (p1 -ᵥ p2) (p3 -ᵥ p2) = InnerProductGeometry.angle (p1 -ᵥ p3) (p2 -ᵥ p3)
-- Mathlib/Geometry/Euclidean/Triangle.lean
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
h : ‖p1 -ᵥ p2‖ = ‖p1 -ᵥ p3‖

⊢ p3 -ᵥ p2 = p1 -ᵥ p2 - (p1 -ᵥ p3)
-- Mathlib/Geometry/Euclidean/Triangle.lean
V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
h : ‖p1 -ᵥ p2‖ = ‖p1 -ᵥ p3‖

⊢ p2 -ᵥ p3 = p1 -ᵥ p3 - (p1 -ᵥ p2)
-- Mathlib/Order/Interval/Finset/Basic.lean
ι : Type u_1
α : Type u_2
inst✝¹ : PartialOrder α
inst✝ : LocallyFiniteOrder α
a b c : α

⊢ Icc a b = {c} ↔ a = c ∧ b = c
-- Mathlib/MeasureTheory/Integral/IntervalIntegral.lean
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A
f g : ℝ → E
a b : ℝ
μ : Measure ℝ
hf : IntervalIntegrable f volume a b
c : ℝ

⊢ IntervalIntegrable (fun x => f (c + x)) volume (a - c) (b - c)
-- Mathlib/Topology/Order/ScottTopology.lean
α : Type u_1
β : Type u_2
inst✝ : CompleteLattice α
s t : Set α

⊢ DirSupClosed s ↔ ∀ ⦃d : Set α⦄, d.Nonempty → DirectedOn (fun x x_1 => x ≤ x_1) d → d ⊆ s → sSup d ∈ s
-- Mathlib/Analysis/Convex/Normed.lean
ι : Type u_1
E : Type u_2
P : Type u_3
inst✝³ : SeminormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : PseudoMetricSpace P
inst✝ : NormedAddTorsor E P
s t : Set E
x : E
hx : x ≠ 0

⊢ IsConnected {y | SameRay ℝ x y ∧ y ≠ 0}
-- Mathlib/Analysis/Convex/Normed.lean
ι : Type u_1
E : Type u_2
P : Type u_3
inst✝³ : SeminormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : PseudoMetricSpace P
inst✝ : NormedAddTorsor E P
s t : Set E
x : E
hx : x ≠ 0

⊢ IsConnected {y | ∃ r, 0 < r ∧ r • x = y}
-- Mathlib/Algebra/Polynomial/Lifts.lean
R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f : R →+* S
d : ℕ

⊢ ∀ {p : S[X]}, p ∈ lifts f → p.natDegree = d → ∃ q, map f q = p ∧ q.degree = p.degree
-- Mathlib/Algebra/Polynomial/Lifts.lean
R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f : R →+* S
n : ℕ
hn : ∀ m < n, ∀ {p : S[X]}, p ∈ lifts f → p.natDegree = m → ∃ q, map f q = p ∧ q.degree = p.degree

⊢ ∀ {p : S[X]}, p ∈ lifts f → p.natDegree = n → ∃ q, map f q = p ∧ q.degree = p.degree
-- Mathlib/Algebra/Polynomial/Lifts.lean
R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f : R →+* S
n : ℕ
hn : ∀ m < n, ∀ {p : S[X]}, p ∈ lifts f → p.natDegree = m → ∃ q, map f q = p ∧ q.degree = p.degree
p : S[X]
hlifts : p ∈ lifts f
hdeg : p.natDegree = n
erase_zero : ¬p.eraseLead = 0

⊢ ∃ q, map f q = p ∧ q.degree = p.degree
-- Mathlib/Algebra/Polynomial/Lifts.lean
R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f : R →+* S
n : ℕ
hn : ∀ m < n, ∀ {p : S[X]}, p ∈ lifts f → p.natDegree = m → ∃ q, map f q = p ∧ q.degree = p.degree
p : S[X]
hlifts : p ∈ lifts f
hdeg : p.natDegree = n
erase_zero : ¬p.eraseLead = 0
deg_erase : p.eraseLead.natDegree < p.natDegree

⊢ ∃ q, map f q = p ∧ q.degree = p.degree
-- Mathlib/Algebra/Polynomial/Lifts.lean
R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f : R →+* S
n : ℕ
hn : ∀ m < n, ∀ {p : S[X]}, p ∈ lifts f → p.natDegree = m → ∃ q, map f q = p ∧ q.degree = p.degree
p : S[X]
hlifts : p ∈ lifts f
hdeg : p.natDegree = n
erase_zero : ¬p.eraseLead = 0
deg_erase : p.eraseLead.natDegree < p.natDegree
pzero : p ≠ 0

⊢ ∃ q, map f q = p ∧ q.degree = p.degree
-- Mathlib/Algebra/Polynomial/Lifts.lean
R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f : R →+* S
n : ℕ
hn : ∀ m < n, ∀ {p : S[X]}, p ∈ lifts f → p.natDegree = m → ∃ q, map f q = p ∧ q.degree = p.degree
p : S[X]
hlifts : p ∈ lifts f
hdeg : p.natDegree = n
erase_zero : ¬p.eraseLead = 0
deg_erase : p.eraseLead.natDegree < p.natDegree
pzero : p ≠ 0
lead_zero : p.coeff p.natDegree ≠ 0

⊢ ∃ q, map f q = p ∧ q.degree = p.degree
-- Mathlib/Algebra/Polynomial/Lifts.lean
R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f : R →+* S
n : ℕ
hn : ∀ m < n, ∀ {p : S[X]}, p ∈ lifts f → p.natDegree = m → ∃ q, map f q = p ∧ q.degree = p.degree
p : S[X]
hlifts : p ∈ lifts f
hdeg : p.natDegree = n
erase_zero : ¬p.eraseLead = 0
deg_erase : p.eraseLead.natDegree < p.natDegree
pzero : p ≠ 0
lead_zero : p.coeff p.natDegree ≠ 0
lead : R[X]
hlead : map f lead = (monomial p.natDegree) (p.coeff p.natDegree) ∧ lead.degree = ((monomial p.natDegree) (p.coeff p.natDegree)).degree

⊢ ∃ q, map f q = p ∧ q.degree = p.degree
-- Mathlib/Algebra/Polynomial/Lifts.lean
R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f : R →+* S
n : ℕ
hn : ∀ m < n, ∀ {p : S[X]}, p ∈ lifts f → p.natDegree = m → ∃ q, map f q = p ∧ q.degree = p.degree
p : S[X]
hlifts : p ∈ lifts f
hdeg : p.natDegree = n
erase_zero : ¬p.eraseLead = 0
deg_erase : p.eraseLead.natDegree < p.natDegree
pzero : p ≠ 0
lead_zero : p.coeff p.natDegree ≠ 0
lead : R[X]
hlead : map f lead = (monomial p.natDegree) (p.coeff p.natDegree) ∧ lead.degree = ((monomial p.natDegree) (p.coeff p.natDegree)).degree
deg_lead : lead.degree = ↑p.natDegree

⊢ ∃ q, map f q = p ∧ q.degree = p.degree
-- Mathlib/Algebra/Polynomial/Lifts.lean
R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f : R →+* S
n : ℕ
hn : ∀ m < n, ∀ {p : S[X]}, p ∈ lifts f → p.natDegree = m → ∃ q, map f q = p ∧ q.degree = p.degree
p : S[X]
hlifts : p ∈ lifts f
hdeg : p.natDegree = n
erase_zero : ¬p.eraseLead = 0
deg_erase : p.eraseLead.natDegree < n
pzero : p ≠ 0
lead_zero : p.coeff p.natDegree ≠ 0
lead : R[X]
hlead : map f lead = (monomial p.natDegree) (p.coeff p.natDegree) ∧ lead.degree = ((monomial p.natDegree) (p.coeff p.natDegree)).degree
deg_lead : lead.degree = ↑p.natDegree

⊢ ∃ q, map f q = p ∧ q.degree = p.degree
-- Mathlib/Algebra/Polynomial/Lifts.lean
R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f : R →+* S
n : ℕ
hn : ∀ m < n, ∀ {p : S[X]}, p ∈ lifts f → p.natDegree = m → ∃ q, map f q = p ∧ q.degree = p.degree
p : S[X]
hlifts : p ∈ lifts f
hdeg : p.natDegree = n
erase_zero : ¬p.eraseLead = 0
deg_erase : p.eraseLead.natDegree < n
pzero : p ≠ 0
lead_zero : p.coeff p.natDegree ≠ 0
lead : R[X]
hlead : map f lead = (monomial p.natDegree) (p.coeff p.natDegree) ∧ lead.degree = ((monomial p.natDegree) (p.coeff p.natDegree)).degree
deg_lead : lead.degree = ↑p.natDegree
erase : R[X]
herase : map f erase = Polynomial.erase p.natDegree p ∧ erase.degree = (Polynomial.erase p.natDegree p).degree

⊢ ∃ q, map f q = p ∧ q.degree = p.degree
-- Mathlib/Algebra/Polynomial/Lifts.lean
R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f : R →+* S
n : ℕ
hn : ∀ m < n, ∀ {p : S[X]}, p ∈ lifts f → p.natDegree = m → ∃ q, map f q = p ∧ q.degree = p.degree
p : S[X]
hlifts : p ∈ lifts f
hdeg : p.natDegree = n
erase_zero : ¬p.eraseLead = 0
deg_erase : p.eraseLead.natDegree < n
pzero : p ≠ 0
lead_zero : p.coeff p.natDegree ≠ 0
lead : R[X]
hlead : map f lead = (monomial p.natDegree) (p.coeff p.natDegree) ∧ lead.degree = ((monomial p.natDegree) (p.coeff p.natDegree)).degree
deg_lead : lead.degree = ↑p.natDegree
erase : R[X]
herase : map f erase = Polynomial.erase p.natDegree p ∧ erase.degree = (Polynomial.erase p.natDegree p).degree

⊢ map f (erase + lead) = p ∧ (erase + lead).degree = p.degree
-- Mathlib/Algebra/Polynomial/Lifts.lean
R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f : R →+* S
n : ℕ
hn : ∀ m < n, ∀ {p : S[X]}, p ∈ lifts f → p.natDegree = m → ∃ q, map f q = p ∧ q.degree = p.degree
p : S[X]
hlifts : p ∈ lifts f
hdeg : p.natDegree = n
erase_zero : ¬p.eraseLead = 0
deg_erase : p.eraseLead.natDegree < n
pzero : p ≠ 0
lead_zero : p.coeff p.natDegree ≠ 0
lead : R[X]
hlead : map f lead = (monomial p.natDegree) (p.coeff p.natDegree) ∧ lead.degree = ((monomial p.natDegree) (p.coeff p.natDegree)).degree
deg_lead : lead.degree = ↑p.natDegree
erase : R[X]
herase : map f erase = Polynomial.erase p.natDegree p ∧ erase.degree = (Polynomial.erase p.natDegree p).degree

⊢ (erase + lead).degree = p.degree
-- Mathlib/Algebra/Polynomial/Lifts.lean
R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f : R →+* S
n : ℕ
hn : ∀ m < n, ∀ {p : S[X]}, p ∈ lifts f → p.natDegree = m → ∃ q, map f q = p ∧ q.degree = p.degree
p : S[X]
hlifts : p ∈ lifts f
hdeg : p.natDegree = n
erase_zero : ¬p.eraseLead = 0
deg_erase : p.eraseLead.natDegree < n
pzero : p ≠ 0
lead_zero : p.coeff p.natDegree ≠ 0
lead : R[X]
hlead : map f lead = (monomial p.natDegree) (p.coeff p.natDegree) ∧ lead.degree = ((monomial p.natDegree) (p.coeff p.natDegree)).degree
deg_lead : lead.degree = ↑p.natDegree
erase : R[X]
herase : map f erase = Polynomial.erase p.natDegree p ∧ erase.degree = (Polynomial.erase p.natDegree p).degree

⊢ (erase + lead).degree = lead.degree
-- Mathlib/Algebra/Polynomial/Lifts.lean
R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f : R →+* S
n : ℕ
hn : ∀ m < n, ∀ {p : S[X]}, p ∈ lifts f → p.natDegree = m → ∃ q, map f q = p ∧ q.degree = p.degree
p : S[X]
hlifts : p ∈ lifts f
hdeg : p.natDegree = n
erase_zero : ¬p.eraseLead = 0
deg_erase : p.eraseLead.natDegree < n
pzero : p ≠ 0
lead_zero : p.coeff p.natDegree ≠ 0
lead : R[X]
hlead : map f lead = (monomial p.natDegree) (p.coeff p.natDegree) ∧ lead.degree = ((monomial p.natDegree) (p.coeff p.natDegree)).degree
deg_lead : lead.degree = ↑p.natDegree
erase : R[X]
herase : map f erase = Polynomial.erase p.natDegree p ∧ erase.degree = (Polynomial.erase p.natDegree p).degree

⊢ erase.degree < lead.degree
-- Mathlib/Algebra/Polynomial/Lifts.lean
R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f : R →+* S
n : ℕ
hn : ∀ m < n, ∀ {p : S[X]}, p ∈ lifts f → p.natDegree = m → ∃ q, map f q = p ∧ q.degree = p.degree
p : S[X]
hlifts : p ∈ lifts f
hdeg : p.natDegree = n
erase_zero : ¬p.eraseLead = 0
deg_erase : p.eraseLead.natDegree < n
pzero : p ≠ 0
lead_zero : p.coeff p.natDegree ≠ 0
lead : R[X]
hlead : map f lead = (monomial p.natDegree) (p.coeff p.natDegree) ∧ lead.degree = ((monomial p.natDegree) (p.coeff p.natDegree)).degree
deg_lead : lead.degree = ↑p.natDegree
erase : R[X]
herase : map f erase = Polynomial.erase p.natDegree p ∧ erase.degree = (Polynomial.erase p.natDegree p).degree

⊢ (Polynomial.erase p.natDegree p).degree < p.degree
-- Mathlib/Data/List/Cycle.lean
α : Type u_1
s : Cycle α

⊢ s.reverse.Subsingleton ↔ s.Subsingleton
-- Mathlib/Topology/AlexandrovDiscrete.lean
ι : Sort u_1
κ : ι → Sort u_2
α : Type u_3
β : Type u_4
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
s✝ t : Set α
a x y : α
inst✝¹ : AlexandrovDiscrete α
inst✝ : AlexandrovDiscrete β
s : Set α

⊢ 𝓟 (exterior s) = 𝓝ˢ s
-- Mathlib/RingTheory/PolynomialAlgebra.lean
R : Type u_1
A : Type u_2
inst✝⁴ : CommSemiring R
inst✝³ : Semiring A
inst✝² : Algebra R A
n : Type w
inst✝¹ : DecidableEq n
inst✝ : Fintype n

⊢ matPolyEquiv (diagonal fun x => X) = X
-- Mathlib/Algebra/EuclideanDomain/Basic.lean
R : Type u
inst✝ : EuclideanDomain R
a b c : R
ha : a ≠ 0
h : a * b = c

⊢ b = c / a
-- Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean
R : Type u
inst✝¹ : CommRing R
W✝ : Affine R
F : Type u
inst✝ : Field F
W : Affine F
x₁ x₂ y₁ y₂ : F
hx : x₁ ≠ x₂

⊢ y₁ * (x₂ - W.addX x₁ x₂ (W.slope x₁ x₂ y₁ y₂)) + y₂ * (W.addX x₁ x₂ (W.slope x₁ x₂ y₁ y₂) - x₁) + W.negAddY x₁ x₂ y₁ (W.slope x₁ x₂ y₁ y₂) * (x₁ - x₂) = 0
-- Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean
R : Type u
inst✝¹ : CommRing R
W✝ : Affine R
F : Type u
inst✝ : Field F
W : Affine F
x₁ x₂ y₁ y₂ : F
hx : x₁ ≠ x₂

⊢ y₁ * (x₂ - (((y₁ - y₂) / (x₁ - x₂)) ^ 2 + W.a₁ * ((y₁ - y₂) / (x₁ - x₂)) - W.a₂ - x₁ - x₂)) + y₂ * (((y₁ - y₂) / (x₁ - x₂)) ^ 2 + W.a₁ * ((y₁ - y₂) / (x₁ - x₂)) - W.a₂ - x₁ - x₂ - x₁) + ((y₁ - y₂) / (x₁ - x₂) * (((y₁ - y₂) / (x₁ - x₂)) ^ 2 + W.a₁ * ((y₁ - y₂) / (x₁ - x₂)) - W.a₂ - x₁ - x₂ - x₁) + y₁) * (x₁ - x₂) = 0
-- Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean
R : Type u
inst✝¹ : CommRing R
W✝ : Affine R
F : Type u
inst✝ : Field F
W : Affine F
x₁ x₂ y₁ y₂ : F
hx : x₁ ≠ x₂

⊢ (y₁ * (x₂ * ((x₁ - x₂) ^ 2 * (x₁ - x₂)) - ((y₁ - y₂) ^ 2 * (x₁ - x₂) + W.a₁ * (y₁ - y₂) * (x₁ - x₂) ^ 2 - (x₁ - x₂) ^ 2 * (x₁ - x₂) * W.a₂ - (x₁ - x₂) ^ 2 * (x₁ - x₂) * x₁ - (x₁ - x₂) ^ 2 * (x₁ - x₂) * x₂)) + y₂ * ((y₁ - y₂) ^ 2 * (x₁ - x₂) + W.a₁ * (y₁ - y₂) * (x₁ - x₂) ^ 2 - (x₁ - x₂) ^ 2 * (x₁ - x₂) * W.a₂ - (x₁ - x₂) ^ 2 * (x₁ - x₂) * x₁ - (x₁ - x₂) ^ 2 * (x₁ - x₂) * x₂ - (x₁ - x₂) ^ 2 * (x₁ - x₂) * x₁)) * ((x₁ - x₂) * ((x₁ - x₂) ^ 2 * (x₁ - x₂))) + ((y₁ - y₂) * ((y₁ - y₂) ^ 2 * (x₁ - x₂) + W.a₁ * (y₁ - y₂) * (x₁ - x₂) ^ 2 - (x₁ - x₂) ^ 2 * (x₁ - x₂) * W.a₂ - (x₁ - x₂) ^ 2 * (x₁ - x₂) * x₁ - (x₁ - x₂) ^ 2 * (x₁ - x₂) * x₂ - (x₁ - x₂) ^ 2 * (x₁ - x₂) * x₁) + y₁ * ((x₁ - x₂) * ((x₁ - x₂) ^ 2 * (x₁ - x₂)))) * (x₁ - x₂) * ((x₁ - x₂) ^ 2 * (x₁ - x₂)) = 0
-- Mathlib/Data/Set/Image.lean
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f✝ : ι → α
s t✝ : Set α
f : α → β
t : Set β
x : β
x✝ : x ∈ range f ∩ t
y : α
h_eq : f y = x
hx : x ∈ t

⊢ y ∈ f ⁻¹' t
-- Mathlib/Data/Set/Image.lean
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f✝ : ι → α
s t✝ : Set α
f : α → β
t : Set β
x : β
x✝ : x ∈ range f ∩ t
y : α
h_eq : f y = x
hx : x ∈ t

⊢ x ∈ t