首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >零长度的array_eq_sub行为

零长度的array_eq_sub行为
EN

Stack Overflow用户
提问于 2017-11-01 23:13:59
回答 1查看 34关注 0票数 1

我在why3中有以下引理

代码语言:javascript
复制
lemma trivial:
  forall a : array 'a, b : array 'a.
  array_eq_sub a b 0 0

这似乎是一种基本的案例行为,但显然并非如此。对于为什么这不起作用,有什么想法吗?

更新

我把这个问题简化为一个失踪的引理:

代码语言:javascript
复制
lemma array_eq_2:
  forall a : array 'a, b : array 'a.
  map_eq_sub a.elts b.elts 0 0 -> array_eq_sub a b 0 0

考虑到array_eq_sub的定义(如文献资料中所指定的),这似乎也很简单。为什么我的推动者找不到解决办法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-02 18:58:32

在努力解决这个问题之后,我决定看一看why3源代码。我找到了一个与文献不同的定义:

代码语言:javascript
复制
predicate array_eq_sub (a1 a2: array 'a) (l u: int) =
  a1.length = a2.length /\ 0 <= l <= a1.length /\ 0 <= u <= a1.length /\
  map_eq_sub a1.elts a2.elts l u

简而言之,数组的长度必须相等,才能使其中的一部分相等。这与文献记录不同,我怀疑这可能是导致许多定理不成立的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47065113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档