- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 Isar 时,我发现了一个令人惊讶的行为(对我而言)。
我尝试使用假设,有时 Isar 提示它无法解决未决目标,例如我最典型的例子是有一个假设但无法假设它:
lemma
assumes "A"
shows "A"
proof -
assume "A"
from this show "A" by (simp)
qed
lemma
shows "A⟹A"
proof -
assume "A"
from this show "A" by simp
qed
lemma
assumes "A"
shows "A"
proof -
have "A" by (simp add: assms)
from this show "A" by (simp)
qed
Failed to refine any pending goal
Local statement fails to refine any pending goal
Failed attempt to solve goal by exported rule:
(A) ⟹ A
最佳答案
您可以在文档 Isar-ref 的“第 6 章:证明”中找到答案。理想情况下,您希望通读本章的介绍以及第 6.1 和 6.2 节以完全解决您的疑虑。下面,我介绍最相关的段落:
The logical proof context consists of fixed variables and assumptions.
...
Similarly, introducing some assumption χ has two effects. On the one hand, a local theorem is created that may be used as a fact in subsequent proof steps. On the other hand, any result
χ ⊢ φ
exported from the context becomes conditional wrt. the assumption:⊢ χ ==> φ
. Thus, solving an enclosing goal using such a result would basically introduce a new subgoal stemming from the assumption. How this situation is handled depends on the version of assumption command used: while assume insists on solving the subgoal by unification with some premise of the goal, presume leaves the subgoal unchanged in order to be proved later by the user.
lemma
assumes "A"
shows "A"
proof -
assume "A"
from this show "A" by (simp)
qed
A
.鉴于没有前提,“与前提的统一”是不适用的。
lemma
shows "A⟹A"
proof -
assume "A"
from this show "A" by simp
qed
A⟹A
与前提
A
.因此,您可以使用
assume
: 可以进行统一。
lemma
assumes "A"
shows "A"
proof -
have "A" by (simp add: assms)
from this show "A" by (simp)
qed
show
实现子目标。需要注意的是
from this show "A" by (simp)
与
from assms show "A" by simp
相同或者,更好的是,
from this show "A".
:
lemma
assumes "A"
shows "A"
proof -
from assms show "A".
qed
关于isabelle - Isabelle/Isar 的假设语义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62090372/
一旦我看到了用C++进行某种假设的方法,例如: int x=7; assume (x==7);//if not right a red error will appear and program wi
我正在尝试测试我的数据库类。这是它的简化示例。 class Database: """ it has more methods but I show only the most important "
这只是一个思考练习,我会对任何意见感兴趣。尽管如果它有效,我可以想出一些我会使用它的方法。 传统上,如果你想对由数组或范围等形成的嵌套循环的结果执行一个函数,你会这样写: def foo(x, y)
当某些假设无效时,MSTest 是否有办法不运行测试?就像 JUnit 的“Assume.*”方法一样: //Setup Assume.assumeEquals(2, count); //Only r
为什么会出现这个警告?如果我检查边界,这并不是一个真正的假设。以及如何修复? 如果num_actions_to_skip设置为 1,而不是 2,错误消失。 谢谢 error: assuming sig
书理解和使用 C 指针 , by Richard Reese 说: The null concept is an abstraction supported by the null pointer c
所以我有两个假设,一个是 h : A -> B,另一个是 h2 : A。如何让 h3 : B 出现在我的假设中? 最佳答案 pose proof (h h2) as h3. 引入h3 : B作为新假设
我知道发生冲突的可能性很小,但如果我生成了一批 1000 个 GUID(例如),是否可以安全地假设它们都是唯一的以节省对每个 GUID 的测试? 奖励问题 测试 GUID 唯一性的最佳方法是什么?也许
这个问题已经有答案了: Jackson JSON: get node name from json-tree (5 个回答) 已关闭 7 年前。 我正在尝试迭代 JsonNode 树,并且我编写了以下
我无法弄清楚如何在 Sympy 中假设复数的正实部。Mathematica 代码示例: a = InverseFourierTransform[ R/(I omega - lambda) + Con
这个问题在这里已经有了答案: 关闭 14 年前。 重复: Do web sites really need to cater for browsers that don’t have Javascr
我使用hypothesis 已经有一段时间了。我想知道如何重用 @given parts。 我有一些大约 20 行,我将整个 @given 部分复制到几个测试用例之上。 一个简单的测试例子 @give
您好,我的 C++ 代码中有一个错误。我有 2 个 .cpp 文件和 1 个 .h 文件,我试图从头文件访问 5 个字符串和 1 个 int,但我收到一条错误消息,提示“缺少显式类型(假设为‘int’
我正在尝试使用 IAR 开发一个项目。这是错误消息:错误 [Pe260]:缺少显式类型(假定为“int”) 问候。 当我尝试:void send_data_byte(unsigned char dat
我正在处理一个数组,我想在其中添加它的一些值。在某些时候,为了仅通过一次计算即可完成此操作,它会要求数组外的索引。 有没有办法说,“如果索引在数组之外,则假定值为 0”? 有点像这样:
在 Python 2 中,我想评估一个包含文字表示的字符串。我想安全地执行此操作,所以我不想使用 eval()——相反,我已经习惯了使用 ast.literal_eval()的任务。 但是,我还想在纯
我正在对时间进行大量计算,通过添加秒数来构建相对于其他时间对象的时间对象。该代码应该在嵌入式设备和服务器上运行。大多数文档都说 time_t 是某种算术类型,通常存储自纪元以来的时间。假设 time_
我正在编写一个程序,其中大多数使用的库函数返回-1 并设置错误号。程序的行为是在发生错误时退出。要从程序外部确定确切的退出点和错误(例如使用 gdb),我想使用以下方法: err = func_1(.
这是我今天考试的一道题: 在 C 中,假设指针是严格类型化的(即,指向 int 的指针不能用于指向 char)。这会降低它的表达能力吗?如果不是,您为什么以及如何补偿此限制?如果是,如何?您还需要添加
我将星期几存储在数据库中,其中星期日 = 1,星期一 = 2 等。 在数据库查询中,我需要将日期转换为 System.DayOfWeek。 根据 MSDN : The value of the con
我是一名优秀的程序员,十分优秀!