invariants相关内容

如何证明这个不变量?

我的目标是证明霍纳法则是正确的.为此,我将霍纳当前计算的值与“真实"的值进行比较.多项式. 所以我做了这段代码: 带有 SPARK_Mode 的包体 Poly 是函数 Horner (X : Integer; A : Vector) return Integer isY : 整数 := 0;Z : 整数 := 0 与 Ghost;开始对于我在反向 A'First .. A'Last 循环pra ..
发布时间:2021-10-26 16:38:49 其他开发

Liskov替代原则保留什么?

当我读到具体类型的对象被该具体类型的子类的实例替换时,必须保留程序的正确性,即程序的不变性. 我想知道程序的正确性和不变性到底是什么意思? 解决方案 假设您有一个class Animal,有人问您该做什么,该做什么用以及如何判断是否它已正确实施.想象一下,您给出了完整而详细的答案,但没有遗漏任何内容.现在... 如果class Cow是class Animal的子类,那么答案中 ..

协变类型T发生在不变位置

我正在Scala中迈出第一步,我想使以下代码有效: trait Gene[+T] { val gene: Array[T] } 编译器给出的错误是:covariant type T occurs in invariant position in type => Array[T] of value gene 我知道我可以做类似的事情: trait Gene[+T] { ..
发布时间:2020-06-26 19:19:27 其他开发

Python中的类不变式

类不变式绝对可以在编码中使用,因为它们可以在清晰的编程时提供即时反馈错误已被检测到,并且由于明确了参数和返回值的含义,它们还提高了代码的可读性.我确定这也适用于Python. 但是,通常在Python中,对参数的测试似乎不是"Pythonic"的处理方式,因为它与鸭嘴式习惯相反. 我的问题是: 在代码中使用断言的Pythonic方法是什么? 例如,如果我具有以下功能: ..
发布时间:2020-06-26 19:19:24 Python

不变式和验证规则有什么区别?

我经常在DDD中看到术语不变式. 此处 Dino Esposito谈到了这一点.如果查看.NET库,则会看到 ValidationAttribute 类. 不变式和验证规则是否相同?例如,我能否说只有订单总额超过$ 250的50%折扣是可用的是不变的? 还是不变的,即不变式是为了保护对象免受无效影响,而验证是即使对象更改了状态(它可以处于有效或无效状态),也要检查对象的有效性?在上面的示例中 ..
发布时间:2020-06-26 19:19:21 其他开发

DDD不变式业务规则和验证

我正在寻找有关在何处添加域实体的验证规则以及实施最佳做法的建议.我确实进行了搜索,但没有找到想要的东西,或者错过了. 我想知道验证属性在特定范围或长度内不为null的推荐方法是什么...我已经看到了使用IsValid()的几种方法以及有关强制执行的其他讨论.构造函数,这样该实体就永远不会处于无效状态,或者使用预处理和后处理,而其他使用FluentValidation api则可以看到不变性如 ..

如果通过合同进行设计,除了成员函数的不变性之外,是否还需要前提条件和后置条件?

我了解在DbC方法中,先决条件和后置条件附加到一个函数上. 我想知道的是,这是否同样适用于成员函数. 例如,假设我在每个公共函数的末尾使用不变式,则成员函数将如下所示: 编辑:(清理我的示例) void Charcoal::LightOnFire() { invariant(); in_LightOnFire(); StartBurning(); ..

线性搜索的循环不变式

如算法介绍中所述( http://mitpress.mit.edu/algorithms ) ,练习说明以下内容: 输入:数组 A [1..n] 和值 v 输出:索引 i ,如果 A [i] = v 或 NIL 在 A 中找不到> v 写LINEAR-SEARCH的伪代码, 扫描整个序列, 寻找v。使用循环不变式, 证明您的算法正确。 (确保循环不变的 满足三个必要的属 ..
发布时间:2020-06-03 20:26:43 其他开发

代码合同:抽象类中的不变量

在将不变式与代码约定一起使用时遇到问题。 我想在我的抽象类中定义一个不变式,但是它只是被忽略了。下面的代码显示了我的界面和抽象类。 [ContractClass(typeof(IPointContract))] 接口IPoint { int X {get; } int Y {get; } } [ContractClassFor(typeof(IPoint))] 抽 ..
发布时间:2020-05-31 22:35:18 C#/.NET

埃菲尔铁塔的一成不变

我正在尝试在Eiffel中创建一个不变的POINT类.下面的代码定义一个吗? x和y字段的{NONE}可访问性就足够了吗?我可以给类不变式写一些东西,如x = x',还是可以实现不变性? class POINT create make feature {NONE} x: DOUBLE y: DOUBLE feature ..
发布时间:2020-05-28 21:03:16 其他开发

GPU供应商之间的OpenGL确定性渲染

我目前正在使用OpenGL编写科学的成像应用程序. 我想知道当我的代码(C ++/OpenGL和简单的GLSL)在不同的硬件(ATI vs NVidia,各种NVidia世代)上执行时,OpenGL渲染(以从FBO中检索的像素而言)是否应该完全确定.和各种操作系统)? 更确切地说,每次在任何硬件(可以运行基本的GLSL和OpenGL 3.0的硬件)上运行代码时,我都需要 exact 相 ..
发布时间:2020-05-20 21:52:03 其他开发

确定循环不变性的最佳方法是什么?

在使用形式化方面来创建一些代码时,是否存在确定循环不变性的通用方法,或者根据问题而定,它会完全不同吗? 解决方案 已经指出,一个相同的循环可以具有多个不变量,并且可计算性不利于您.这并不意味着您无法尝试. 实际上,您正在寻找归纳不变性:不变性一词也可以用于每次迭代都为真的属性,但是仅仅知道它是否成立在一次迭代中推断出它在下一次保持不变.如果 I 是归纳不变式,则 I 的任何结果都是不 ..
发布时间:2020-05-04 04:22:19 其他开发

什么是不变式?

这个词似乎在许多上下文中都得到了使用.我能想到的最好的是,它们表示一个不变的变量.这不是常量/最终用途(对Java不利吗?)? 解决方案 不变量比变量更“概念上".通常,它是程序状态的始终为真的属性.可以确保保持不变的函数或方法称为保持不变. 例如,二叉搜索树可能具有不变性,即对于每个节点,该节点的左子节点的键小于该节点自己的键.正确编写此树的插入函数将保持该不变. 您可以说, ..
发布时间:2020-04-27 03:31:16 其他开发

JPA实体上的空构造方法和设置方法

我不喜欢在JPA实体上至少有一个空的构造函数和公共设置器的要求.虽然我从EntityManager方面了解了问题,但这使类不变式失效. 有人对此解决方案(设计模式或惯用语言级别)有解决方案吗? 谢谢! 伊戈尔 解决方案 对于JPA,默认构造函数是必需的,但是,不需要使用setter.您可以根据放置批注的位置选择属性访问策略(字段或方法). 以下代码将使用直接字段访问 ..
发布时间:2019-09-20 18:55:24 其他开发

什么是java中的类不变量?

我搜索了该主题,但除了维基百科之外,我没有找到任何其他有用的文档或文章。 任何人都可以用简单的语言向我解释它的含义或者向我推荐一些简单易懂的文档吗? 解决方案 这并不意味着特别指向java。 类不变量只是一个属性对于类的所有实例,总是,无论其他代码是什么。 例如, class X { final Y y = new Y(); } X具有类不 ..
发布时间:2018-12-25 20:06:57 Java开发

是否有可能编程和检查Haskell中的不变量?

例如,一个函数可能会返回一个有序列表,另一个函数可能会列出一个列表将被命令。 我知道定理证明存在,但我没有使用它们的经验。 我也相信智能编译器[sic!]可以利用它们来优化程序。 那么,是否可以写下不变量并使编译器检查它们? 解决方案 好的,答案是肯定的,不是。没有办法只写一个与类型分开的不变量并检查它。在Haskell的研究分支中有一个名为ESC / Haskell的实现, ..
发布时间:2018-06-04 15:04:23 其他开发

Scala匿名函数genric方差问题

我正在学习Scala,我很难理解反向变量,协变量,不变性等。从为什么这个例子没有编译,又如何(合作,反对和in)差异工作?我已经学会了如何将函数视为另一个函数的子类型。 (真的很有用!) 下面的代码是我认为解决我的难题的重要部分。我提取了一些我认为会给问题增加不必要的复杂性的部分。根据示例,我有一个Student对象,它将充当工厂来生成函数。 函数将采用AnyVal的类型或子类型(In ..
发布时间:2018-04-23 14:41:27 其他开发