CVC输入语言

声明

位向量表达式(或项)由位向量常数、位向量变量以及下列函数构成。在STP中,所有变量必须在使用前声明。声明一个长度为32的位向量变量的例子是:x : BITVECTOR(32);。声明数组的例子如下:
x_arr : ARRAY BITVECTOR(32) OF BITVECTOR(5000);

功能和术语

长度为0的位向量变量(或术语)是不允许的。位向量常数可以用二进制或十六进制格式表示。最右边的位称为最低有效位(LSB),最左边的位称为最高有效位(MSB)。LSB的索引是0,而n位常数的MSB的索引是n-1。这个约定自然地扩展到所有位向量表达式。以下是一些以二进制和十六进制表示的位向量常数的例子:

0bin0000111101010000
0hex0f50

STP中的位向量实现支持非常多的函数和谓词。这些函数分为字级函数、位级函数和算术函数。

字级函数

名称符号示例
连接@t1@t2@…@tm
提取[i:j]x[31:26]
左移<<0bin0011 << 3 = 0bi n0011000
右移>>x[24:17] >> 5, 另一个例子: 0bin1000 >> 3 = 0bin0001
符号扩展BVSX(bv,n)BVSX(0bin100, 5) = 0bin11100
数组读取[index]x_arr[t1]
数组写入WITHx_arr WITH [index] := value

注释:

  • 对于提取项,例如 t[i:j],n > i >= j > 0,其中 n 是 t 的长度。
  • 对于左移项,t << k 表示将 k 个 0 追加到 t 的右端。t << k 的长度为 n * +* k。
  • 对于右移项,t >> k 表示通过 k 个 0 跟随t[n-1,k]得到的位向量,其长度为 t >> k 为 n。

例子

  1. 连接
ASSERT x@y = 0b1101@0b11;  // 连接 x 和 y,假设 x = 1101 和 y = 11

位级函数

名称符号示例
位与&t1 & t2 & … & tm
位或|t1 | t2 | … | tm
位非~~t1
位异或BVXORBVXOR(t1, t2)
位与非BVNANDBVNAND(t1, t2)
位或非BVNORBVNOR(t1, t2)
位同或BVXNORBVXNOR(t1, t2)

注意: 所有位运算函数的参数必须具有相同的长度。

算术函数

名称符号示例
位向量加法BVPLUSBVPLUS(n, t1, t2, …, tm)
位向量乘法BVMULTBVMULT(n, t1, t2)
位向量减法BVSUBBVSUB(n, t1, t2)
位向量一元负BVUMINUSBVUMINUS(t1)
位向量除法BVDIVBVDIV(n, t1, t2)
有符号位向量除法SBDIVSBDIV(n, t1, t2)
位向量模数BVMODBVMOD(n, t1, t2)
有符号位向量模数SBVMODSBVMOD(n, t1, t2)

注释:

  • 输出位的数量必须被指定(一元负数除外)。
  • 所有输入必须具有相同的长度。
  • BVUMINUS(t)BVPLUS(n, ~t, 0bin1) 的简写,其中 n 是 t 的长度。
  • BVSUB(n, t1, t2)BVPLUS(n, t1, BVUMINUS(t2)) 的简写。

STP 还支持条件表达式,例如 IF cond THEN t1 ELSE t2 ENDIF,其中 cond 是布尔表达式,t1t2 可以是位向量表达式。这样可以模拟多路选择器。一个例子是:

x, y : BITVECTOR(1);
QUERY(x = (IF 0bin0 = x THEN y ELSE BVUMINUS(y) ENDIF));

谓词

名称符号示例
等于=t1=t2
小于BVLTBVLT(t1, t2)
大于BVGTBVGT(t1, t2)
小于或等于BVLEBVLE(t1, t2)
大于或等于BVGEBVGE(t1, t2)
有符号小于SBVLTSBVLT(t1, t2)
有符号大于SBVGTSBVGT(t1, t2)
有符号小于或等于SBVLESBVLE(t1, t2)
有符号大于或等于SBVGESBVGE(t1, t2)

注意:

  • STP 要求像 x = y 这样的原子公式中,x 和 y 必须是长度相同的表达式。
  • STP接受原子公式的布尔组合。

注释

%开头的是注释。

例子

Example1

x : BITVECTOR(5);   //声明了一个名为 x 的位向量变量,它的长度是5位。
y : BITVECTOR(4); //明了一个名为 y 的位向量变量,它的长度是4位
QUERY( 		//查询表达式,STP将尝试验证括号内的表达式是否总是为真BVPLUS(9, x@0bin0000, (0bin000@(~y)@0bin11))[8:4]=BVPLUS(5, x, 0bin000@~(y[3:2]))
);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/149047.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

线程对象的生命周期、线程等待和分离

线程对象的生命周期、线程等待和分离 #include <iostream> #include<thread> using namespace std;bool is_exit false;//用于判断主线程是否退出 void ThreadMain() {cout << "begin sub thread main ID: " << this_thread::get_id() &l…

难题妙解——前K个高频单词

1.题目解析 692.前K个高频单词 本题⽬我们利⽤map统计出次数以后&#xff0c;返回的答案应该按单词出现频率由⾼到低排序&#xff0c;有⼀个特殊要 求&#xff0c;如果不同的单词有相同出现频率&#xff0c;按字典顺序排序 2.算法原理 2.1思路一 ⽤排序找前k个单词&#xff0c…

栈的操作:进栈,出栈,读栈顶元素

代码&#xff1a; #include<iostream> using namespace std; template<class T> class sq_Stack {private:int mm;int top;T *s;public:sq_Stack(int);void prt_sq_Stack();int flag_sq_Stack();void ins_sq_Stack(T);T del_sq_Stack();T read_sq_Stack(); }; tem…

【自学笔记】支持向量机(3)——软间隔

引入 上一回解决了SVM在曲线边界的上的使用&#xff0c;使得非线性数据集也能得到正确的分类。然而&#xff0c;对于一个大数据集来说&#xff0c;极有可能大体呈线性分类趋势&#xff0c;但是边界处混杂&#xff0c;若仍采用原来的方式&#xff0c;会得到极其复杂的超平面边界…

Linux: filesystem:resize2fs: error: superblock checksum does not match

最近遇到一个resize2fs命令的错误:superblock checksum does not match superblock while trying to open。 而且问题的出现有随机性。 <qrms6-oam-b:root>/root: #rpm -qf /usr

通信工程学习:什么是VM虚拟机

VM&#xff1a;虚拟机 VM虚拟机&#xff08;Virtual Machine&#xff09;是一种通过软件模拟的计算机系统&#xff0c;它能够在物理计算机上模拟并运行多个独立的虚拟计算机系统。以下是关于VM虚拟机的详细解释&#xff1a; 一、VM虚拟机的定义与原理 定义&#xff1a; VM虚拟…

【ZYNQ 开发】填坑!双核数据采集系统LWIP TCP发送,运行一段时间不再发送且无法ping通的问题解决

问题描述 之所以说是填坑&#xff0c;是因为之前写了一篇关于这个双核数据采集系统的调试记录&#xff0c;问题的具体表现是系统会在运行一段时间后&#xff08;随机不定时&#xff0c;长了可能将近两小时&#xff0c;短则几分钟&#xff09;&#xff0c;突然间就不向电脑发送数…

Redis渐进式遍历

我们知道&#xff0c;keys* 是一次性把所有的key都获取到&#xff0c;这个操作太危险&#xff0c;可能会一次性得到太多的key而阻塞服务器。但是通过渐进式遍历&#xff0c;既能够获取到所有的key&#xff0c;又能不会卡死服务器。 redis使用scan命令进行渐进式遍历&#xff0…

对条件语言模型(Conditional Language Model)的目标函数的理解

在翻看LORA这篇论文的时候&#xff0c;忽然对条件语言模型优化的目标函数产生了一些疑问&#xff0c;下面是理解。 这个目标函数描述了条件语言模型&#xff08;Conditional Language Model&#xff09;的目标&#xff0c;即通过最大化对数似然估计来学习参数( Φ \Phi Φ)&a…

MySQL和SQL的区别简单了解和分析使用以及个人总结

MySQL的基本了解 运行环境&#xff0c;这是一种后台运行的服务&#xff0c;想要使用必须打开后台服务&#xff0c;这个后台服务启动的名字是在安装中定义的如下图&#xff08;个人定义MySQL88&#xff09;区分大小写图片来源 可以使用命令net start/stop 服务名&#xff0c;开…

【高并发内存池】基本框架 + 固定长度内存池实现 1

高并发内存池 1. 基本框架2. 定长内存池的实现2.1 介绍定长内存池2.2 T* New()2.3 void Delete(T* obj) 3. 源码&#xff08;附赠测试&#xff09;4. 总结 1. 基本框架 高并发内存池主要由三个部分构成&#xff1a; 1.thread cache:用于小于256KB的内存的分配。线程缓存是每个…

流域碳中和技术

随着全球气候变化的加剧&#xff0c;碳中和已成为实现可持续发展的重要目标之一。碳中和不仅仅是能源和工业领域的调整&#xff0c;它涉及整个生态系统的转型与再生。在这一过程中&#xff0c;流域的生态系统作为水、土、生物多样性等自然资源的集成体&#xff0c;扮演着至关重…

华为高级交换技术笔记 2024-2025

2024-2025 一、9/31.通信模型和封装2.以太网3.MAC地址4.以太网帧5.MAC地址表的建立 二、9/61.交换机的数据的处理2.以太网帧的分类3.广播域4.vlan技术开发背景 一、9/3 1.通信模型和封装 2.以太网 3.MAC地址 4.以太网帧 5.MAC地址表的建立 二、9/6 1.交换机的数据的处理 2.以…

【含2天数 / B】

题目 代码 #include <bits/stdc.h> using namespace std; int day[] {-1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; bool has_2(int x) {while (x){if (x % 10 2)return true;x / 10;}return false; } bool check(int y, int m, int d) {return has_2(y) ||…

十二、JDK17的GC调优策略

文章目录 一、JVM有哪些参数可以调&#xff1f;二、从RocketMQ学习常用GC调优三部曲三、基于JDK17优化JVM内存布局1、定制堆内存大小2、定制非堆内存大小设置元空间设置线程栈空间设置热点代码缓存空间应用程序类数据共享 四、基于JDK17定制JVM的GC参数G1重要参数ZGC重要参数 五…

Android使用OpenCV 4.5.0实现扑克牌识别(源码分享)

一、显示效果展示 二、OpenCV 4.5.0 OpenCV 4.5.0是OpenCV&#xff08;Open Source Computer Vision Library&#xff0c;开源计算机视觉库&#xff09;的一个重要更新版本&#xff0c;该版本在多个方面进行了优化和新增了多项功能。 三、ONNX模型 ONNX&#xff08;Open Neu…

风云4A/4B卫星行列号和经纬度查找表文件下载及读取方式

下载地址 https://satellite.nsmc.org.cn/PortalSite/StaticContent/DocumentDownload.aspx?TypeID15 如图&#xff1a; 点击绿色小图标下载。 下载完了后是压缩包&#xff0c;解压缩后进入文件夹获取raw格式的文件 注意&#xff01;&#xff01; 注意133E对应的卫星文件…

植物检测系统源码分享

植物检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

Java面向对象——内部类(成员内部类、静态内部类、局部内部类、匿名内部类,完整详解附有代码+案例)

文章目录 内部类17.1概述17.2成员内部类17.2.1 获取成员内部类对象17.2.2 成员内部类内存图 17.3静态内部类17.4局部内部类17.5匿名内部类17.5.1概述 内部类 17.1概述 写在一个类里面的类叫内部类,即 在一个类的里面再定义一个类。 如&#xff0c;A类的里面的定义B类&#x…

闪回科技再冲刺上市:曾夸大融资规模,毛利率下滑,有股东退出

近日&#xff0c;闪回科技有限公司&#xff08;下称“闪回科技”&#xff09;递交招股书&#xff0c;准备在港交所主板上市。据贝多财经了解&#xff0c;该公司曾于2024年2月递表&#xff0c;此次是“失效”后的更新版本&#xff0c;清科资本为其独家保荐人。 闪回科技在招股书…