在命题和谓词演算中证明了数十个引理之后(有些比其他的更具挑战性,但通常仍然可以在intro-apply-destruct自动驾驶仪上证明),我从一开始就打了一个~forall,并立即被抓住了。显然,我对 Coq 的理解和知识缺乏。所以,我要求使用低级 Coq 技术来证明一般形式的语句
~forall A [B].., C -> D.
exists A [B].., ~(C -> D).
Run Code Online (Sandbox Code Playgroud)
换句话说,我希望有一个通用的 Coq 方法来设置和触发反例。(量化上述函数的主要原因是它是 Coq 中的(或)原始连接词。)如果你想要例子,我建议例如
~forall P Q: Prop, P -> Q.
~forall P: Prop, P -> ~P.
Run Code Online (Sandbox Code Playgroud)
有一个相关的问题既没有提出也没有回答我的问题,所以我认为它不是重复的。
Z3中是否有办法证明/显示给定模型是唯一的,并且不存在其他解决方案?
一个小例子来演示
(declare-const a1 Int)
(declare-const a2 Int)
(declare-const a3 Int)
(declare-const b1 Int)
(declare-const b2 Int)
(declare-const b3 Int)
(declare-const c1 Int)
(declare-const c2 Int)
(declare-const c3 Int)
(declare-const ra Int)
(declare-const rb Int)
(declare-const rc Int)
(declare-const r1 Int)
(declare-const r2 Int)
(declare-const r3 Int)
(assert (>= a1 0))
(assert (>= a2 0))
(assert (>= a3 0))
(assert (>= b1 0))
(assert (>= b2 0))
(assert (>= b3 0))
(assert (>= c1 0))
(assert (>= c2 0))
(assert …Run Code Online (Sandbox Code Playgroud) 我一直在寻找到最近的正则表达式,并盘算了一下,?运营商使*,+或?懒惰.我的问题是它是如何做到的?*?例如它是一个特殊的运算符,还是?对它有影响*?换句话说,没有正则表达式识别*?为一个运营商本身,还是正则表达式识别*?为两个独立的运营商*和??如果*?是被识别为两个独立运算符的情况,那么?影响*它如何变得懒惰.如果?意味着它*是可选的,那么这*不应该意味着它根本不存在.如果是,那么在声明中.*?不会正则表达式匹配单独的字母和整个字符串而不是较短的字符串?请解释一下,我迫切希望了解.非常感谢.
在Java正则表达式中,只打印一个字符串中的三位数字的量词是什么?
Input : 232,60,121,600,1980
Output : 232,121,600
Run Code Online (Sandbox Code Playgroud)
相反,我的输出是:
Output : 232,121,600,198
Run Code Online (Sandbox Code Playgroud)
我在用(\\d{3}).我应该使用什么量词才能只打印三位数字?
考虑以下Perl风味?(我想不是?)正则表达式来测试一个字符串是否是回文:
^((.)(?1)\2|.?)$
Run Code Online (Sandbox Code Playgroud)
试试吧.
下列
my regex palindrome {
^((.)(?1)\2|.?)$
}
say "$word is a palindrome"
if $word ~~ /<palindrome>/
&& $word.chars > 1;
Run Code Online (Sandbox Code Playgroud)
给出错误
===SORRY!===
Quantifier quantifies nothing
at /home/cat/projects/perl6/code/misc/words.pl6:6
------> ^((.)(??1)\2|.?)$
Unrecognized backslash sequence (did you mean $1?)
at /home/cat/projects/perl6/code/misc/words.pl6:6
------> ^((.)(?1)\2?|.?)$
Run Code Online (Sandbox Code Playgroud)
我对(Python)正则表达式有一定的了解,当我说"量化器没有量化"时我得到了它的意思,但是当我要求递归而不是量化时,我不明白为什么它会这样说.
我没有足够的Perl知识来知道为什么它不喜欢反斜杠(另一个错误).
我确实试着搞乱语法和搜索,但就我和互联网而言,这个正则表达式工作,并且摆弄它会产生我不会得到的各种其他错误.
我究竟做错了什么?
我不确定为什么ko不进行类型检查.有没有特别启发性的解释?
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE NoMonomorphismRestriction, FlexibleInstances #-}
module Wrap where
class ExpSYM repr where
lit :: Int -> repr
newtype Wrapped = Wrapped{unWrap :: forall repr. ExpSYM repr => repr}
a = (lit <$> Just 5) :: ExpSYM expr => Maybe expr
ko :: Maybe Wrapped
ko = do v <- a
return $ Wrapped $ v
ok :: Maybe Wrapped
ok = do v <- Just 5
let e = …Run Code Online (Sandbox Code Playgroud) 我在达夫尼一瘸一拐地走着,却不明白触发因素。也许因此,我编写的程序似乎给验证者带来了困难。有时我会花大量时间摆弄我的证明,试图让 Dafny/Boogie 相信它是有效的。当我让某些东西起作用时,有时验证速度很慢(这严重降低了我继续下去的能力)。
很难提出一个精确的问题,因为我不知道它是什么。但让我们从基础开始:
什么是触发器?它们什么时候使用?它们是如何推断的?一旦我理解了这一切,接下来我应该读什么?
作为一名新的Perl工程师通过'Programming Perl'工作,我遇到了以下正则表达式:
/^(.*?): (.*)$/;
Run Code Online (Sandbox Code Playgroud)
此正则表达式旨在解析电子邮件标头并将其插入哈希.电子邮件标头包含在单独的.txt文件中,格式如下:
From: person@site.com
To: email@site.com
Date: Mon, 1st Jan 2000 09:00:00 -1000
Subject: Subject here
Run Code Online (Sandbox Code Playgroud)
我用来处理这个示例正则表达式的整个代码如下:
use warnings;
use strict;
my %fields = ();
open(FILE, 'header.txt') or die('Could not open.');
while(<FILE>)
{
/^(.*?): (.*)$/;
$fields{$1} = $2;
}
foreach(%fields)
{
print;
print "\n";
}
Run Code Online (Sandbox Code Playgroud)
现在,谈谈我的问题.我不确定为什么第一个子模式被修改为使用最小量词.这可能是一个小问题,但我不明白为什么它已经完成.
谢谢你的回复.
在页面的最后,有人试图解释贪婪,不情愿和占有欲量词如何工作:http://docs.oracle.com/javase/tutorial/essential/regex/quant.html
然而,我尝试了一个例子,我似乎并没有完全理解它.
我会直接粘贴我的结果:
Enter your regex: .*+foo
Enter input string to search: xfooxxxxxxfoo
No match found.
Enter your regex: (.*)+foo
Enter input string to search: xfooxxxxxxfoo
I found the text "xfooxxxxxxfoo" starting at index 0 and ending at index 13.
Run Code Online (Sandbox Code Playgroud)
为什么第一个reg.exp.找不到匹配,第二个呢?这两个reg.exp之间的确切区别是什么?
假设我有一个假设和上下文中的H : forall ( x : X ), P x变量。x : X我想进行通用实例化并获得新的假设H' : P x。最无痛的方法是什么?显然apply H in x不起作用。assert ( P x )其次是apply Hdos,但是如果很复杂的话可能会变得非常混乱P。
有一个类似的问题似乎有些相关。但不确定它是否可以应用在这里。