为什么 mathlib 对 UFD 的定义是这样的:
class unique_factorization_domain (? : Type*) [integral_domain ?] :=
(factors : ? ? multiset ?)
(factors_prod : ?{a : ?}, a ? 0 ? (factors a).prod ~? a)
(prime_factors : ?{a : ?}, a ? 0 ? ?x?factors a, prime x)
Run Code Online (Sandbox Code Playgroud)
(要求通过类型类推断来推断整数域结构)但它对 PID 的定义是这样的:
class principal_ideal_domain (? : Type*) extends integral_domain ? :=
(principal : ? (S : ideal ?), S.is_principal)
Run Code Online (Sandbox Code Playgroud)
扩展整体域结构?有什么不同?旧的结构命令与它有关吗?