模型检测–例子内容摘要:
Translator VERDS Model Checker Negative Conclusion Specification Error Trace 反例分析 以下输入产生不正确结果 1 3 5 7 9 11 13 15 17 19 0 2 4 6 8 10 12 14 16 18 4 不正确运行 修正后的例子 : ISR2 include /**************************************************/ int in()。 int isr(int x,int k)。 int isk(int n,int k)。 /**************************************************/ int main() { int n=0。 int m=0。 int k=1。 printf(INFO: system is now active\n)。 while (1) { n=in()。 k=isk(n,k)。 m=isr(n,k)。 printf(RESULT: %i\n\n,m)。 } } /**************************************************/ int isr(int x,int k) { int y1=0。 int y2=0。 int y3=0。 y1=0。 y2=1。 y3=1。 if (x==2||(x2amp。 amp。 k==20)) x=x1。 while (y3=x) { y1=y1+1。 y2=y2+2。 y3=y3+y2。 } return y1。 } /**************************************************/ int isk(int n,int k) { if (k!=20) { if (k!=n) k=21。 else if (k==19) k=0。 else k=k+2。 } else { k=21。 } return k。 } /**************************************************/ int in() { char c=0。 int k=0。 while (1) { k=0。 putc(39。 N39。 ,stdout)。 putc(39。 :39。 ,stdout)。 putc(9,stdout)。 c=getc(stdin)。 if (c==39。 \n39。 ) { printf(INFO: the input must be 1 or 2 digits\n\n)。 continue。 } if (c39。 039。 ||c39。 939。 ) { while (1) { c=getc(stdin)。 if (c==39。 \n39。 ) break。 } printf(INFO: the input must be 1 or 2 digits\n\n)。 continue。 } k=c39。 039。 c=getc(stdin)。 if (c==39。 \n39。 ) { return k。 } if (c39。 039。 ||c39。 939。 ) { while (1) { c=getc(stdin)。 if (c==39。 \n39。 ) break。 } printf(INFO: the input must be 1 or 2 digits\n\n)。 continue。 } if (k2) k=k*10+(c39。 039。 )。 else if (k==2amp。 amp。 c==39。 039。 ) k=20。 else { while (1) { c=getc(stdin)。 if (c==39。 \n39。 ) break。 } printf(INFO: the input number must be in {0,...,20}\n\n )。 continue。 } c=getc(stdin)。 if (c!=39。 \n39。 ) { while (1) { c=getc(stdin)。 if (c==39。 \n39。 ) break。 } printf(INFO: the input must be 1 or 2 digits\n\n)。 continue。 } return k。 } } ./isr2 INFO: system is now active N: 2 RESULT: 1 N: 10 RESULT: 3 N: 20 RESULT: 4 N: 30 INFO: the input number must be in {0,...,20} N: 5 RESULT: 2 N: 模型检测 ./verds –c –sp 验证结果 验证过程 C Program Model Automatic Translator VERDS Model Checker Specification Positive Conclusion 模型检测的缺点与优点 • 缺点 –可直接验证的程序规模小 –可直接验证的程序结构简单 • 优点 : –自动验证 –对不正确的程序可生成诊断信息 形式验证 • 推理验证 • 模型检测 • 推理验证与模型检测相结合 推理验证 +模型检测 include /**************************************************/ int in()。 int isr(int x,int k)。 int isk(int n,int k)。 /**************************************************/ int main() { int n=0。 int m=0。 int k=1。 printf(INFO: system is now active\n)。 while (1) { n=in()。 k=isk(n,k)。 m=isr(n,k)。 printf(RESULT: %i\n\n,m)。 } } /**************************************************/ int isr(int x,int k) { int y1=0。 int y2=0。 int y3=0。 y1=0。 y2=1。 y3=1。 if (x==2||(x2amp。 amp。 k==20)) x=x1。 while (y3=x) { y1=y1+1。 y2=y2+2。 y3=y3+y2。 } return y1。 } /**************************************************/ int isk(int n,int k) { if (k!=20) { if (k!=n) k=21。 else if (k==19) k=0。 else k=k+2。 } else { k=21。 } return k。 } /**************************************************/ int in() { char c=0。 int k=0。 while (1) { k=0。 putc(39。 N39。 ,stdout)。 putc(39。 :39。 ,stdout)。 putc(9,stdout)。 c=getc(stdin)。 if (c==39。 \n。模型检测–例子
本资源仅提供20页预览,下载后可查看全文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
相关推荐
模拟电路综合课程设计音响放大器设计
性达到如下指标: 1kHz处增益为 0dB, 125hZ和 8kHz处增益为+12dB的调节范围。 四、总体思路 话音 放大器 二阶有源 低通滤波 音调 控制器 功率 放大 扬声器 话筒 五、实验安排 1. 设计讲解,并在实验台上完成主要组成电路实验 2. 自学芯片引脚及功能 3. 完成芯片及辅助元件的总体布局设计 4. 完成话音放大器的焊接和调试 5. 完成二阶低通滤波电路的焊接和调试 6.
模糊倒车控制系统拖斗拖车
─拖斗拖车 模 糊 倒 车 控 制 系 统 ── 拖 斗 拖 车 模糊系统与神经网络 池 峰 模糊规则与隶属度曲线定义 yx, vu,模 糊 倒 车 控 制 系 统 ── 拖 斗 拖 车 模糊系统与神经网络 池 峰 模糊规则与隶属度曲线定义 LEx LCxCExRCx RIx模 糊 倒 车 控 制 系 统 ── 拖 斗 拖 车 模糊系统与神经网络 池 峰
横跨新农药研发和新医药研发领域,具有丰富的主持研
基于结构 基于片段 检测方法的进步,从植物本身到分子水平 仪器工具的快速发展NMR/UPLC/MS Idea的来源成了瓶颈 研发技术(手段)的变化 分子量 活性 规模化 /机械化 /自动化要求 更方便专业化的剂型 多重功能 剂型技术(手段)的变化 登记要求的变化 生物技术 转基因作物 生物农药 公众的偏好 特点,接近收获期使用 缺点