- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下反射(reflect)谓词:
Require Import mathcomp.ssreflect.all_ssreflect.
Inductive reflect (P : Prop) (b : bool) : Prop :=
| ReflectT (p : P) (e : b = true)
| ReflectF (np : ~ P) (e : b = false).
我正在尝试将 bool 合取与逻辑合取关联起来,并通过以下单行证明:
Lemma andP (b1 b2 : bool) : reflect (b1 /\ b2) (b1 && b2).
Proof.
case b1; case b2; constructor =>//; by case.
Qed.
但是,我不明白最后的;按情况。
应用。当我们检查没有最后一个 的证明时;视情况而定。
:
Lemma andP (b1 b2 : bool) : reflect (b1 /\ b2) (b1 && b2).
Proof.
case b1; case b2; constructor =>//.
我们有 6 个子目标(2 个基本正确):
6 subgoals (ID 45)
b1, b2 : bool
============================
true /\ false
subgoal 2 (ID 46) is:
true && false = true
subgoal 3 (ID 116) is:
false /\ true
subgoal 4 (ID 117) is:
false && true = true
subgoal 5 (ID 187) is:
false /\ false
subgoal 6 (ID 188) is:
false && false = true
我不确定如何从这里开始,因为它们都是 false
- 我们如何证明这一点?我试着做 。 case.
单独,但这不起作用。 ;按案例
一次承认这些子目标?
谢谢。
最佳答案
战术的顺序组合行为在最近几年发生了一些变化。如今,像 constructor
这样的策略可以在执行它们的延续时回溯。因为你对 reflect
的定义与标准的有点不同,如果你只是调用 constructor
,Coq 会立即应用 ReflectT
,导致在三种情况下卡住了目标:
Lemma andP (b1 b2 : bool) : reflect (b1 /\ b2) (b1 && b2).
Proof.
case b1; case b2=> /=.
- constructor=> //.
- (* constructor. *) (* Stuck *)
当您使用顺序组合时,constructor
策略回溯,正确找到 ReflectF
构造函数。
constructor; by try case.
- constructor; by try case.
- constructor; by try case.
Qed.
关于辅 enzyme Q/SSReflect : How to do case analysis when reflecting && and/\,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58249969/
我正在尝试使用“车队模式”来保留 3 个变量(两个参数和返回值)之间的依赖关系: Require Import Vector. (* "sparse" vector type *) Notation
我有以下反射(reflect)谓词: Require Import mathcomp.ssreflect.all_ssreflect. Inductive reflect (P : Prop) (b
我有两个网卡(eth0/eth1)向路由器发送数据。一次只有一个人发送数据。我还需要一个静态配置,无论 NIC 是否打开/关闭,该配置都不会改变。 如果我关闭 eth0,我希望 eth1 能够完成这项
在 Vanilla Coq 中,我会写 Require Import Coq.Arith.Arith. Goal nat -> nat -> False. intros n m. destru
我是一名优秀的程序员,十分优秀!