Coq 与自然数列表中最大元素的小于或等于关系
我想使用list\u max\u le的定义。在应用“搜索列表”后,我什么也没有得到。如何在Coq中定义列表最大值?我想您已经有了Coq 与自然数列表中最大元素的小于或等于关系,coq,Coq,我想使用list\u max\u le的定义。在应用“搜索列表”后,我什么也没有得到。如何在Coq中定义列表最大值?我想您已经有了需要导入列表。这样检查列表最大值。就可以工作了。Search list\u max\u le.不显示任何内容,因为Search搜索的引理在其类型/语句中具有搜索项,但在其类型中没有具有list\u max\u le的引理。您可以执行Search“list\u max\u le”。搜索名称中包含list\u max\u le的引理 如果问题是“我如何找到需要的模块?”:
需要导入列表。
这样检查列表最大值。
就可以工作了。Search list\u max\u le.
不显示任何内容,因为Search
搜索的引理在其类型/语句中具有搜索项,但在其类型中没有具有list\u max\u le
的引理。您可以执行Search“list\u max\u le”。
搜索名称中包含list\u max\u le
的引理
如果问题是“我如何找到需要的模块?”:我可以在谷歌上搜索“Coq标准库引理名称”
,也可以在Coq源的理论文件夹中搜索grep。也许我们应该有一个包含完整标准库的文件,以便更容易地搜索引理
Require Import List.
Search "list" "max".
通过使用引号“
可以搜索名称中包含指定字符串的定义。上面的搜索将生成结果
list_max: list nat -> nat
list_max_le:
forall (l : list nat) (n : nat), list_max l <= n <-> Forall (fun k : nat => k <= n) l
list_max_app:
forall l1 l2 : list nat, list_max (l1 ++ l2) = Nat.max (list_max l1) (list_max l2)
list_max_lt:
forall [l : list nat] (n : nat),
l <> nil -> list_max l < n <-> Forall (fun k : nat => k < n) l
但在这种情况下,定义的可读性不是很强
如果不使用“
”进行搜索,则使用尝试匹配部分类型定义的模式进行搜索
所以如果你搜索
Search list_max.
您可以搜索包含术语list\u max
的所有定义
list_max_le:
forall (l : list nat) (n : nat), list_max l <= n <-> Forall (fun k : nat => k <= n) l
list_max_app:
forall l1 l2 : list nat, list_max (l1 ++ l2) = Nat.max (list_max l1) (list_max l2)
list_max_lt:
forall [l : list nat] (n : nat),
l <> nil -> list_max l < n <-> Forall (fun k : nat => k < n) l
如果您需要导入列表。
搜索“最大”列表。
将向您展示有关最大值和列表的所有已知信息。我已在Coq脚本中添加了列表最大值的定义。但我还是得到了这样一条信息“list\u max\le not a defined object”。奇怪的是,你能最小化你的脚本并展示给我们吗?我有一个引理,它的说法是,如果自然数列表中的最大值为零,那么任何第n个索引处的值也为零。证明子目标“Forall(fun x:nat=>x您是否有
需要导入列表。
作为您文件的第一行?搜索“列表”“最大值”。返回什么?
list_max_le:
forall (l : list nat) (n : nat), list_max l <= n <-> Forall (fun k : nat => k <= n) l
list_max_app:
forall l1 l2 : list nat, list_max (l1 ++ l2) = Nat.max (list_max l1) (list_max l2)
list_max_lt:
forall [l : list nat] (n : nat),
l <> nil -> list_max l < n <-> Forall (fun k : nat => k < n) l
Search "ind" list.