安琪儿是什么意思| 更年期综合症吃什么药| 快照是什么意思| 脸颊为什么会凹陷| 电疗是什么| 亚蒂息肉是什么意思| 云南白药植物长什么样| 正常人突然抽搐是什么原因| 清醒的反义词是什么| 镉是什么东西| 远视眼是什么意思| XXJ什么意思| 左肾积水有什么症状| 口加才是什么字| 药物流产最佳时间什么时候| 1929年属什么| 沙棘原浆有什么功效| 国家为什么重视合肥| 中国的全称是什么| 脚抽筋吃什么钙片好| 为什么会有眼屎| 聚酯纤维是什么材料| 脉浮是什么意思| 加特纳菌阳性是什么病| 久而久之下一句是什么| 粘液丝高是什么原因| s是什么牌子| 嗓子疼低烧吃什么药| 恶露是什么意思| 抗锯齿是什么意思| 突兀什么意思| 查钙含量做什么检查| 秋葵与什么菜相克| 被舔是什么感觉| 儿郎是什么意思| 12345是什么投诉电话| 海蜇是什么动物| 什么是次数| 月经期间洗澡会有什么影响吗| 欲仙欲死是什么意思| 欧尼什么意思| 耳鸣有什么症状| 樱桃和车厘子有什么区别| 尽善尽美是什么生肖| 梦见邻居是什么意思| 什么是胃肠型更年期| 七月五号是什么星座| 知了在树上干什么| 什么血型好| 算什么男人歌词| 暄字五行属什么| 最大的沙漠是什么| 海螺不能和什么一起吃| 讲师是什么职称| 晚上口渴是什么原因引起的| kenzo属于什么档次| 李子什么颜色| 头发容易油是什么原因| pinky是什么意思| 丙申五行属什么| 饕餮是什么意思| 做梦下大雨是什么兆头| 信指什么生肖| 小孩腰疼是什么原因引起的| 儿女情长是什么意思| 249是什么意思| 乙肝全是阴性是什么意思| 梦到亲人死了是什么征兆| 今天是什么生肖| 什么是智商| 新陈代谢慢吃什么药| 感恩节吃什么| 输卵管囊肿是什么原因引起的| 什么的雪人| 小孩肚脐眼上面疼是什么原因| im医学上是什么意思| 来龙去脉是什么生肖| 吃什么消肿| 夏令时是什么意思| 虎落平阳被犬欺是什么生肖| 血红蛋白是查什么的| 猫驱虫药什么牌子好| 长颈鹿吃什么树叶| 创伤急救的原则是什么| 为什么会脱发| 印度人口什么时候超过中国| 一什么明月| 骶椎腰化什么意思| 梦见买袜子是什么意思| 水痘可以吃什么| 黄痰吃什么药| 腮腺炎不能吃什么东西| 卡卡西是什么意思| 知性是什么意思| 嗓子疼吃什么食物好| 尿频是什么意思| 8月29是什么星座| 嘴巴周围长痘痘是什么原因| 此贝是什么字| fizz是什么意思| 手机电池为什么会鼓包| 不孝有三无后为大是什么意思| primark是什么牌子| 危楼是什么意思| 狗狗睡姿代表什么图解| 砷对人体有什么危害| 一个月一个并念什么| 大便里急后重什么意思| 什么是天眼| 纽带是什么意思| 游离甲状腺素偏低是什么意思| 什么水果上火| spa是什么服务| 乙肝两对半245阳性是什么意思| 人体最长的骨头是什么| 1981年是什么命| 三个代表是什么| 月经量少吃什么调理快| 伤风是什么意思| 咳嗽属于什么科室| 胃病不能吃什么| 弓加耳念什么| 为什么同房过后会出血| 什么时候泡脚效果最好| 手抖是因为什么| 生物制剂是什么药| 上火有什么症状| 肚子一直咕咕叫是什么原因| hpv吃什么提高免疫力| 心率慢吃什么药| 经期不能吃什么水果| 酸奶有什么营养价值| 脑动脉硬化是什么意思| 生化常规主要是检查什么的| 前庭神经炎挂什么科| 邪是什么意思| 幽门螺旋杆菌感染吃什么药| 45年属什么| 宫腔内无回声区是什么意思| 怼怼是什么意思| 66年属马是什么命| 504是什么错误| 百福图挂在家里什么位置好| 咽炎吃什么| 驳是什么意思| 梅肉是什么肉| 锦囊妙计是什么意思| 一月份什么星座| 血糖高吃什么药好| 孕妇适合吃什么| 工作是什么意思| 婚检女性检查什么项目| 命中注定是什么意思| 707是什么意思| 罗汉果是什么| 嘴巴发苦是什么原因| 10个月的宝宝吃什么辅食最好| 百忙之中什么意思| 手腕痛是什么原因| o型血和o型血生的孩子是什么血型| 750是什么金| 医的笔顺是什么| 什么粉底液最好用| columbia是什么牌子| 君子兰什么时候开花| 吃什么可以自然掉体毛| 牙疼能吃什么食物| 咳嗽有黄痰吃什么药| 三唑酮主治什么病害| 什么人容易长智齿| 发菜是什么菜| 庄子是什么学派| 哮喘吃什么药最有效| 前胸后背疼挂什么科| 什么映雪| 电解质是什么| 卖关子是什么意思| 知了在树上干什么| 戒手淫有什么好处| 吃什么食物补铁| 潮汐是什么意思| 二级建造师什么时候出成绩| 病毒的遗传物质是什么| 蟹爪兰用什么肥料最好| 生肖龙和什么生肖最配| 5月7号是什么星座| 小便失禁是什么原因| 梦见把老鼠打死是什么意思| 什么生肖怕老婆| 手脚麻木吃什么药最管用| 筒骨炖什么好吃| 席梦思床垫什么牌子好| 每逢佳节倍思亲的上一句是什么| 9月17号是什么星座的| 胃阳不足吃什么中成药| 打开心扉是什么意思| 牡丹花什么时候开花| 囊肿挂什么科| 维生素b2有什么作用| 胆囊切除后吃什么好| 炖牛肉放什么调料最好| 饱和脂肪酸是什么意思| 京东自营店什么意思| 解暑喝什么| 铲子是什么意思| 牟作为姓氏时读什么| 男人遗精是什么原因造成的| 1973年是什么命| 抗巨细胞病毒抗体igg高是什么意思| 梦见僵尸是什么预兆| 心志是什么意思| 头昏吃什么药效果最好| 梦见蛇追我是什么预兆| 沾花惹草是什么生肖| 未见卵黄囊及胚芽是什么意思| 除外是什么意思| 肺气泡吃什么药| 五音不全是什么意思| 嗝气是什么原因引起的| fazeya是什么牌子| 鳄鱼的天敌是什么动物| 属猪的跟什么属相最配| 贡缎是什么面料| 十月十九是什么星座| 世界上最多笔画的字是什么字| 女生私处长什么样| 嗓子痛吃什么药| bees是什么意思| 吃什么有助于伤口愈合| 溃疡吃什么水果| 吃什么降血糖最快| c60是什么| brush什么意思| 月亮什么颜色| 馥字五行属什么| 鳞状上皮细胞高是什么原因| 山昆读什么| labs是什么意思| 血儿茶酚胺是查什么的| 吃什么容易减肥| 交链孢霉过敏是什么| 经常想吐恶心是什么原因| 金牛座属于什么象星座| 迪士尼狗狗叫什么名字| 瘴气是什么意思| ad和d3有什么区别| 煲什么汤去湿气最好| 为什么医院不开金刚藤| 什么发什么颜| 璎珞是什么意思| o是什么元素| 敬邀是什么意思| 什么是裸眼视力| 什么是有机食品| 为什么单位不愿意申请工伤| 芒果可以做什么美食| 医生代表什么生肖| 杭州市市长什么级别| 首鼠两端是什么意思| 闭门思过是什么意思| 烦躁不安的意思是什么| 什么时候期末考试| 湿疹什么样子| 复试是什么意思| 百度

·十六中学开展中小学干部教师信息技术能力提升..

百度 但智能技术和算法,对大众生活方式的渗透,同样产生了非经济意义上的垄断后果公司不会集体作恶,但你无法确保智能技术不会被掌握技术的个人滥用。

In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of a system with respect to a certain formal specification or property, using formal methods of mathematics.[1] Formal verification is a key incentive for formal specification of systems, and is at the core of formal methods. It represents an important dimension of analysis and verification in electronic design automation and is one approach to software verification. The use of formal verification enables the highest Evaluation Assurance Level (EAL7) in the framework of common criteria for computer security certification.[2]

Formal verification can be helpful in proving the correctness of systems such as: cryptographic protocols, combinational circuits, digital circuits with internal memory, and software expressed as source code in a programming language. Prominent examples of verified software systems include the CompCert verified C compiler and the seL4 high-assurance operating system kernel.

The verification of these systems is done by ensuring the existence of a formal proof of a mathematical model of the system.[3] Examples of mathematical objects used to model systems are: finite-state machines, labelled transition systems, Horn clauses, Petri nets, vector addition systems, timed automata, hybrid automata, process algebra, formal semantics of programming languages such as operational semantics, denotational semantics, axiomatic semantics and Hoare logic.[4]

Approaches

edit

Model checking

edit

Model checking involves a systematic and exhaustive exploration of the mathematical model. Such exploration is possible for finite models, but also for some infinite models, where infinite sets of states can be effectively represented finitely by using abstraction or taking advantage of symmetry. Usually, this consists of exploring all states and transitions in the model, by using smart and domain-specific abstraction techniques to consider whole groups of states in a single operation and reduce computing time. Implementation techniques include state space enumeration, symbolic state space enumeration, abstract interpretation, symbolic simulation, abstraction refinement.[citation needed] The properties to be verified are often described in temporal logics, such as linear temporal logic (LTL), Property Specification Language (PSL), SystemVerilog Assertions (SVA),[5] or computational tree logic (CTL). The great advantage of model checking is that it is often fully automatic; its primary disadvantage is that it does not in general scale to large systems; symbolic models are typically limited to a few hundred bits of state, while explicit state enumeration requires the state space being explored to be relatively small.

Deductive verification

edit

Another approach is deductive verification.[6][7] It consists of generating from the system and its specifications (and possibly other annotations) a collection of mathematical proof obligations, the truth of which imply conformance of the system to its specification, and discharging these obligations using either proof assistants (interactive theorem provers) (such as HOL, ACL2, Isabelle, Rocq (previously known as Coq) or PVS), or automatic theorem provers, including in particular satisfiability modulo theories (SMT) solvers. This approach has the disadvantage that it may require the user to understand in detail why the system works correctly, and to convey this information to the verification system, either in the form of a sequence of theorems to be proved or in the form of specifications (invariants, preconditions, postconditions) of system components (e.g. functions or procedures) and perhaps subcomponents (such as loops or data structures).

Application to software

edit

Formal verification of software programs involves proving that a program satisfies a formal specification of its behavior. Subareas of formal verification include deductive verification (see above), abstract interpretation, automated theorem proving, type systems, and lightweight formal methods. A promising type-based verification approach is dependently typed programming, in which the types of functions include (at least part of) those functions' specifications, and type-checking the code establishes its correctness against those specifications. Fully featured dependently typed languages support deductive verification as a special case.

Another complementary approach is program derivation, in which efficient code is produced from functional specifications by a series of correctness-preserving steps. An example of this approach is the Bird–Meertens formalism, and this approach can be seen as another form of program synthesis.

These techniques can be sound, meaning that the verified properties can be logically deduced from the semantics, or unsound, meaning that there is no such guarantee. A sound technique yields a result only once it has covered the entire space of possibilities. An example of an unsound technique is one that covers only a subset of the possibilities, for instance only integers up to a certain number, and give a "good-enough" result. Techniques can also be decidable, meaning that their algorithmic implementations are guaranteed to terminate with an answer, or undecidable, meaning that they may never terminate. By bounding the scope of possibilities, unsound techniques that are decidable might be able to be constructed when no decidable sound techniques are available.

Verification and validation

edit

Verification is one aspect of testing a product's fitness for purpose. Validation is the complementary aspect. Often one refers to the overall checking process as V & V.

  • Validation: "Are we trying to make the right thing?", i.e., is the product specified to the user's actual needs?
  • Verification: "Have we made what we were trying to make?", i.e., does the product conform to the specifications?

The verification process consists of static/structural and dynamic/behavioral aspects. E.g., for a software product one can inspect the source code (static) and run against specific test cases (dynamic). Validation usually can be done only dynamically, i.e., the product is tested by putting it through typical and atypical usages ("Does it satisfactorily meet all use cases?").

Automated program repair

edit

Program repair is performed with respect to an oracle, encompassing the desired functionality of the program which is used for validation of the generated fix. A simple example is a test-suite—the input/output pairs specify the functionality of the program. A variety of techniques are employed, most notably using satisfiability modulo theories (SMT) solvers, and genetic programming,[8] using evolutionary computing to generate and evaluate possible candidates for fixes. The former method is deterministic, while the latter is randomized.

Program repair combines techniques from formal verification and program synthesis. Fault-localization techniques in formal verification are used to compute program points which might be possible bug-locations, which can be targeted by the synthesis modules. Repair systems often focus on a small pre-defined class of bugs in order to reduce the search space. Industrial use is limited owing to the computational cost of existing techniques.

Industry use

edit

The growth in complexity of designs increases the importance of formal verification techniques in the hardware industry.[9][10] At present, formal verification is used by most or all leading hardware companies,[11] but its use in the software industry is still languishing.[citation needed] This could be attributed to the greater need in the hardware industry, where errors have greater commercial significance.[citation needed] Because of the potential subtle interactions between components, it is increasingly difficult to exercise a realistic set of possibilities by simulation. Important aspects of hardware design are amenable to automated proof methods, making formal verification easier to introduce and more productive.[12]

As of 2011, several operating systems have been formally verified: NICTA's Secure Embedded L4 microkernel, sold commercially as seL4 by OK Labs;[13] OSEK/VDX based real-time operating system ORIENTAIS by East China Normal University;[citation needed] Green Hills Software's Integrity operating system;[citation needed] and SYSGO's PikeOS.[14][15] In 2016, a team led by Zhong Shao at Yale developed a formally verified operating system kernel called CertiKOS.[16][17]

As of 2017, formal verification has been applied to the design of large computer networks through a mathematical model of the network,[18] and as part of a new network technology category, intent-based networking.[19] Network software vendors that offer formal verification solutions include Cisco[20] Forward Networks[21][22] and Veriflow Systems.[23]

The SPARK programming language provides a toolset which enables software development with formal verification and is used in several high-integrity systems.[citation needed]

The CompCert C compiler is a formally verified C compiler implementing the majority of ISO C.[24][25]

See also

edit

References

edit
  1. ^ Sanghavi, Alok (May 21, 2010). "What is formal verification?". EE Times Asia.
  2. ^ "Common Criteria for Information Technology Security Evaluation Part 5: Pre-defined packages of security requirements" (PDF). Retrieved April 15, 2025.
  3. ^ Sanjit A. Seshia; Natasha Sharygina; Stavros Tripakis (2018). "Chapter 3: Modeling for Verification". In Clarke, Edmund M.; Henzinger, Thomas A.; Veith, Helmut; Bloem, Roderick (eds.). Handbook of Model Checking. Springer. pp. 75–105. doi:10.1007/978-3-319-10575-8. ISBN 978-3-319-10574-1.
  4. ^ Introduction to Formal Verification, Berkeley University of California, Retrieved November 6, 2013
  5. ^ Cohen, Ben; Venkataramanan, Srinivasan; Kumari, Ajeetha; Piper, Lisa (2015). SystemVerilog Assertions Handbook (4th ed.). CreateSpace Independent Publishing Platform. ISBN 978-1518681448.
  6. ^ Ahrendt, Wolgang; Beckert, Bernhard; Bubel, Richard; H?hnle, Reiner; Schmitt, Peter H., eds. (2016). Deductive Software Verification - The KeY Book: From Theory to Practice (1st 2016 ed.). Cham: Springer International Publishing : Imprint: Springer. ISBN 978-3-319-49812-6.
  7. ^ Pretschner, Alexander; Müller, Peter; St?ckle, Patrick, eds. (2019). "Building Deductive Program Verifiers - Lecture Notes". Engineering secure and dependable software systems. Amsterdam, Netherlands: IOS Press. ISBN 978-1-61499-976-8.
  8. ^ Le Goues, Claire; Nguyen, ThanhVu; Forrest, Stephanie; Weimer, Westley (January 2012). "GenProg: A Generic Method for Automatic Software Repair". IEEE Transactions on Software Engineering. 38 (1): 54–72. doi:10.1109/TSE.2011.104. S2CID 4111307.
  9. ^ Harrison, J. (2003). "Formal verification at Intel". 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings. pp. 45–54. doi:10.1109/LICS.2003.1210044. ISBN 978-0-7695-1884-8. S2CID 44585546.
  10. ^ Formal verification of a real-time hardware design. Portal.acm.org (June 27, 1983). Retrieved on April 30, 2011.
  11. ^ "Formal Verification: An Essential Tool for Modern VLSI Design by Erik Seligman, Tom Schubert, and M V Achutha Kirankumar". 2015.
  12. ^ "Formal Verification in Industry" (PDF). Retrieved September 20, 2012.
  13. ^ "Abstract Formal Specification of the seL4/ARMv6 API" (PDF). Archived from the original (PDF) on May 21, 2015. Retrieved May 19, 2015.
  14. ^ Christoph Baumann, Bernhard Beckert, Holger Blasum, and Thorsten Bormer Ingredients of Operating System Correctness? Lessons Learned in the Formal Verification of PikeOS Archived July 19, 2011, at the Wayback Machine
  15. ^ "Getting it Right" by Jack Ganssle
  16. ^ Harris, Robin. "Unhackable OS? CertiKOS enables creation of secure system kernels". ZDNet. Retrieved June 10, 2019.
  17. ^ "CertiKOS: Yale develops world's first hacker-resistant operating system". International Business Times UK. November 15, 2016. Retrieved June 10, 2019.
  18. ^ Scroxton, Alex. "For Cisco, intent-based networking heralds future tech demands". Computer Weekly. Retrieved February 12, 2018.
  19. ^ Lerner, Andrew. "Intent-based networking". Gartner. Retrieved February 12, 2018.
  20. ^ Kerravala, Zeus. "Cisco brings intent based networks to the data center". NetworkWorld. Archived from the original on December 11, 2023. Retrieved February 12, 2018.
  21. ^ "Forward Networks: Accelerating and De-risking Network Operations". Insightssuccess Media and Technology Pvt. Ltd. Insights Success. January 16, 2018. Retrieved February 12, 2018.
  22. ^ "Getting Grounded in Intent=based Networking" (PDF). NetworkWorld. Retrieved February 12, 2018.
  23. ^ "Veriflow Systems". Bloomberg. Retrieved February 12, 2018.
  24. ^ "CompCert - The CompCert C compiler". compcert.org. Retrieved February 22, 2023.
  25. ^ Barrière, Aurèle; Blazy, Sandrine; Pichardie, David (January 9, 2023). "Formally Verified Native Code Generation in an Effectful JIT: Turning the CompCert Backend into a Formally Verified JIT Compiler". Proceedings of the ACM on Programming Languages. 7 (POPL): 249–277. arXiv:2212.03129. doi:10.1145/3571202. ISSN 2475-1421. S2CID 253736486.
复方乙酰水杨酸片是什么药 减肥吃什么药效果最好 瑞夫泰格手表什么档次 35岁属什么生肖 癞蛤蟆长什么样
金字旁目字读什么 胃穿孔是什么症状 脖子长痘痘是因为什么原因 肋间神经痛用什么药 突然血糖高是什么原因引起的
什么的秋天 胆固醇偏高是什么原因 按摩有什么好处 维生素h是什么 南通有什么大学
查甲功是什么意思 郑五行属什么 危楼高百尺的危是什么意思 心肌标志物是查什么的 一进大门看见什么最好
梦见纸人是什么意思hcv9jop5ns6r.cn 斯沃琪手表什么档次hcv9jop2ns3r.cn 疝气是什么症状hcv8jop2ns4r.cn 头皮发红是什么原因hcv7jop9ns2r.cn 迎字五行属什么hcv9jop3ns0r.cn
送哥们什么礼物好hcv8jop4ns2r.cn 惊弓之鸟什么意思hcv8jop7ns5r.cn 芸豆长什么样子hcv8jop8ns4r.cn 洗衣机单漂洗是什么意思hcv9jop0ns5r.cn 1979年出生属什么生肖hcv9jop1ns1r.cn
什么人容易得尿毒症hcv7jop5ns4r.cn 3.21什么星座hcv8jop5ns1r.cn 为什么医生不建议献血小板hcv8jop3ns3r.cn 面子里子什么意思hcv9jop1ns8r.cn 大宝贝是什么意思hcv8jop6ns6r.cn
一直打嗝什么原因hcv8jop6ns9r.cn 125是什么意思gysmod.com 臭鳜鱼是什么鱼hanqikai.com 辣眼睛是什么意思baiqunet.com 人间炼狱是什么意思hcv9jop2ns3r.cn
百度