coq - COQ 证明助手 - 应用假设
问题描述
我正在 Coqide 做一个非常简单的证明作业。
我正在尝试将假设H2应用于我的子目标,但由于某种原因它不起作用。我不知道为什么;有人可以解释为什么apply H2.
命令不适用。
2 subgoals
A : Type
x : A
l1, l2 : list A
H : Prefix l1 l2
H2 : x :: l2 = (x :: l1) ++ [] -> Prefix (x :: l1) (x :: l2)
______________________________________(1/2)
x :: l2 = (x :: l1) ++ []
______________________________________(2/2)
exists l3 : list A, x :: l2 = (x :: l1) ++ l3
解决方案
apply H2
没有机会工作,因为它的结论是Prefix (x :: l1) (x :: l2)
看起来不像你的目标。的前提H2
是你的目标:x :: l2 = (x :: l1) ++ []
然而,这意味着你只有apply
H2
在你设法首先解决你的目标时才能做到……不是很有用。
推荐阅读
- node.js - 在 D3 中加载 CSV 数据时出现问题。svg.selectAll(...).data(...).enter 不是函数
- linux-kernel - 有没有办法将 kexec 功能添加到busybox initrd?
- pandas - 在 C++ 中读取 Arrow Feather 文件
- python - 将 TF1 通用句子编码器加载到 TF2 - hub
- xml - 在字符串中查找重复的子字符串
- python - 从其“父级”合并价值项目和相关信息
- c++ - 为什么串行执行比并行执行花费更少的时间?
- swift - 如何将删除键添加到 NSCharacterSet
- nginx - nginx位置和proxy_pass的问题
- python - 将 Tensorflow 1.13 和 Keras 2.2.4 与 Anaconda 一起使用