在 VDM 中,我们可以执行以下操作
someSequence(index) := someSequence(index) union {x}
其中someSequence是一系列集合。
在 Isabelle 中,如何访问列表中的元素并像上面的示例一样修改它?有没有办法做到这一点?
感谢您的帮助!
答案 0 :(得分:2)
你谈论一个有序的集合,但你问一个列表。这是列表功能:
value "(list_update [1,2,3,4,5::nat] 2 0) = [1,2,0,4,5]"
有 main.pdf ,它可以快速概述常见类型的功能和语法。第9页是列表概述:
https://isabelle.in.tum.de/website-Isabelle2015/dist/Isabelle2015/doc/main.pdf#page=9
我查看了函数签名,直到我看到它看起来像是一样并返回了正确的参数。
他们是Isabelle / HOL逻辑的PDF。第66章是他们为Isabelle2015定义列表的地方。新版本的页码和章节可能会发生变化。
在页1033,有一个检查列表,它们作为一些常见列表函数的示例:
https://isabelle.in.tum.de/website-Isabelle2015/dist/library/HOL/HOL/document.pdf#page=1033
他们不会尝试使列表函数库详尽无遗。您可以使用他们已经完成的工作,例如如何定义自己的工作。