Zulip Chat Archive
Stream: new members
Topic: about metavariables in typeclass
Hbz (Aug 02 2025 at 15:56):
import Mathlib
open Polynomial
open scoped Classical Polynomial
noncomputable section
variable (𝕜 : Type) [Field 𝕜]
def RationalFunctionField := FractionRing (Polynomial 𝕜)
namespace RationalFunctionField
variable {𝕜}
instance : CommRing (RationalFunctionField 𝕜) := by
unfold RationalFunctionField
exact OreLocalization.instCommRing
instance : Field (RationalFunctionField 𝕜) := by
unfold RationalFunctionField
exact FractionRing.field (Polynomial 𝕜)
instance : IsDomain (Polynomial 𝕜) := by
exact instIsDomain
instance : Algebra 𝕜 (RationalFunctionField 𝕜) := by
unfold RationalFunctionField
exact OreLocalization.instAlgebra
instance : Algebra (Polynomial 𝕜) (RationalFunctionField 𝕜) := by
unfold RationalFunctionField
exact OreLocalization.instAlgebra
instance : IsFractionRing (Polynomial 𝕜) (RationalFunctionField 𝕜) := by
unfold RationalFunctionField
exact Localization.isLocalization
def ofPolynomial : Polynomial 𝕜 →ₐ[𝕜] RationalFunctionField 𝕜 :=
{ toFun := algebraMap (Polynomial 𝕜) (RationalFunctionField 𝕜)
map_one' := by simp [algebraMap]
map_mul' := fun x y => by simp [algebraMap]
map_zero' := by simp [algebraMap]
map_add' := fun x y => by simp [algebraMap]
commutes' := fun k => by exact rfl}
def x : RationalFunctionField 𝕜 := ofPolynomial Polynomial.X
def baseSubfield : Subfield (RationalFunctionField 𝕜) :=
Subfield.closure (Set.range (algebraMap 𝕜 _) ∪ {x ^ 2})
#check Module
instance : CommRing (↥(baseSubfield)) :=
Subfield.instCommRing baseSubfield
and i just want to ask why lean tell me
typeclass instance problem is stuck, it is often due to metavariables
Field ?m.32792
and how can i solve it. :slight_smile:
Aaron Liu (Aug 02 2025 at 16:08):
Make baseSubfield take in 𝕜 explicitly
Last updated: Dec 20 2025 at 21:32 UTC