在Agda中,可以定义具有方程式的数据类型吗?

乔纳森·加拉格尔

我想描述整数:

data Integer : Set where
    Z : Integer
    Succ : Integer -> Integer
    Pred : Integer -> Integer
    ?? what else

上面没有定义整数。我们需要Succ(Pred x)= x和Pred(Succ x)= x。然而,

    spReduce : (m : Integer) -> Succ (Pred m) = m
    psReduce : (m : Integer) -> Pred (Succ m) = m

无法添加到数据类型。无疑,对整数的更好定义是,

data Integers : Set where
    Pos : Nat -> Integers
    Neg : Nat -> Integers

但是我很好奇是否有一种向数据类型添加方程式的方法。

仙人掌

似乎您想做的是Integers通过Succ (Pred m)m等号标识的等价关系将您的类型定义为商类型。Agda不再支持它-有一个实验性的库试图做到这一点(通过强制商类型上的所有函数都需要通过需要表示不变性证明的辅助函数来定义),但是随后有人发现实现不够防水,因此可能导致不一致(基本上是通过访问假定的一种假设) (从外部无法访问),有关详细信息,您可以看到以下消息

我们不确定这种破解是否正确。现在,感谢丹·多尔(Dan Doel),我知道不是。

[...]

鉴于这些观察,很容易证明上述假设是不正确的:

我认为,目前您最好的选择(如果您希望/需要坚持使用松散的表示形式,并使其等同于收紧),则是Setoid为您的类型定义一个

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

IPython(Jupyter)笔记本在所有方程式中产生幻影线

我可以在CMake中定义结构数据类型吗?

使用Sympy解决具有和和索引的方程式

Tablesorter自定义方程式的计算数据

可以定义可变参数类型的数据类型吗?

我可以在Haskell中定义参数不相等的参数数据类型吗?

是否可以定义存储与参数相同数据类型的lambda函数的数据类型?

如何在FiPy中编写具有自变量的方程式项?

我可以定义具有相同属性但值不同的两个接口的联合类型吗?

dymola如何将所有方程式分为不同的组?

熊猫:带有方程式的Excel单元格在熊猫中给出“ 0” read_excel()

有用于绘制方程式的图表的工具吗?

我可以在R中更有效地编写方程式吗?

如果带有非参数测试的方程式中的所有分支必须具有相同数量的方程式-Modelica

我可以将方程式用作python中的参数吗

R Markdown文档中的所有方程式中的Displaystyle整个文档

Scipy fsolve解决具有特定需求的方程式

如何解决@error:GEKKO中的方程式定义

我可以用Sage中的符号方程式代替吗?

我可以为字段定义“因子”数据类型吗?

mongodb可以基于方程式进行查询吗?

是否可以将具有变量的方程式的字符串转换为方程式?

在现有方程式中添加标准

错误:“ det”的方程式具有不同数量的参数

如何在python中求解具有tanh()的方程式

带有方程式的非常旧的文档文件

我可以根据用户在用户表单中输入的公式创建方程式吗?

如何在 R 中对我的数据使用方程式?

是否可以将具有相同数据类型的多个列映射到 sqoop 中的新数据类型?