Isabelle:更改列表中的元素

Isabelle: changing an element inside a list

VDM中,我们可以做如下的事情

someSequence(index) := someSequence(index) union {x}

其中 someSequence 是一组序列。

Isabelle 中,如何访问列表中的元素并像上面的示例那样修改它?有办法吗?

感谢您的帮助!

你说的是序列集,但你问的是列表。这是列表函数:

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

他们不试图使列表函数库详尽无遗。您可以使用他们所做的,作为如何定义您自己的示例。