自然数
默认情况下自然数文字是映射到内置自然数类型。这可以是更改为FROMNAT公司
内置,它绑定到接受自然数:
这会导致自然数文字n个
要去糖来自Nat n个
.注意,脱糖发生在隐式论证是这样插入的来自Nat
可以有任意数量的隐式或实例参数。这可以是通过定义类型类包含来自Nat
:
此定义要求任何自然数都可以映射到给定的类型,因此它不适用于以下类型翅片 n个
。这可以通过精炼来解决这个编号
带有附加约束的类:
记录编号{一} (A类: 设置一) : 设置 (lsuc公司) 哪里
领域
约束 :国家→ 设置一来自Nat : (n个:国家) {{_:约束n}} →A类打开编号{{...}}公众的使用 (来自Nat)
{-#从Nat#-}构建FROMNAT
这是中使用的定义阿格达。内置。FromNat公司
.A型编号
实例对于翅片 n个
然后可以定义如下:
数据是否为True:布尔→ 设置 哪里
炎 :IsTrue为真实例
的确 :IsTrue为真的确=炎_<?_ :国家→国家→布尔零<?零=假零<?成功=真的例如x<?零=假例如x<?成功=x<?年国家财政部 : ∀ {n个} (米:国家) {{_:是否为True(米<?n个)}} →财务n国家财政部{零}零{{()}}国家财政部{零} (例如) {{()}}国家财政部{例如}零{{炎}} =零国家财政部{例如} (例如) {{t吨}} =苏克(国家财政部)
实例
数字Fin : ∀ {n个} →编号(财务n)数量。约束(数字Fin{n个})k个=是否为True(k<?n个)来自Nat NumFin k的数字=国家财政部