聊聊程序验证。

给定某程序,和其正确实现所需要满足的性质(Property),也就是 specification,然后用去验证程序是否正确,就是所谓程序验证(Program verification)。说白了就是两步:一、写出程序的 spec;二、构造程序满足此 spec 的证明。

举个时髦的例子,比如对于自动驾驶的程序,一个可能的 spec 是:当前方X米内有障碍物时,系统必须在Y毫秒内发出停车指令。

目前常见的验证有两种方式:
* 一种用交互式定理证明器(比如 Coq, Agda),两步都要人工参与,它们一般基于直觉主义逻辑(intuitionistic logic),可以编码非常复杂的性质和证明 [1];
* 另一种只要人工写 spec,步骤 B 自动化完成(比如 Dafny, VCC)。它们底层一般用到类似 Z3 这样的证明器,但这种方法只能表达和验证很有限的一些性质,比如只能表达部分简单的一阶逻辑。

从本科末到读博前期,我花了不少业余时间在前者上面;近几个月参与的开源项目则用了后者。谈一点自己的感受。

很多情况下,大家会想到步骤二(构造证明)是个很麻烦的过程。的确如此 [2]。但 A 也不简单。我发现很多时候,程序的 spec 并不好表达。

不少情况下,程序的 spec 并不会比程序本身更简单。举个图中讨论的字符串反转的例子,我当时的第一反应想到的 spec 是这样:
∀ s, reverse(reverse(s)) = s
因为 reverse 是自身的逆函数。虽然这个 spec 一定是 reverse 可以满足的,但它显然太宽泛了:它会漏掉 reverse(s) = s 这样的恒等函数,于是我加了个限制:reverse(str) ≠ str
因为感觉除了反转和恒等函数,很难构造出一个别的逆函数是自身的函数。但这个 spec 被网友指出根本就不对,因为对于回文串,正确的字符串反转要满足 reverse(s) = s. 这样的话,spec 要进一步变成:
∀ s, reverse(reverse(s)) = s ∧ (¬isPalindrome(s) → reverse(s) = s)
然后还得定义 isPalindrome……有种回到了开始的感觉。

所以字符串反转最好的 spec 是什么呢?大概是这样:
∀ str, ∀ 0 ≤ i ≤ len(str), len(str) = len(reverse(str)) ∧ str[i] = str[len(str)-1-i]
而这,和程序的实现本身也没什么区别了。

还有很多情况下,程序的 spec 并不容易被形式化。比如人脸识别,我们可能用自然语言都说不清它应该满足怎样的要求。

但也有一些场景,spec 很好写,这些东西往往偏数学一些(感觉上是?),有很干净的性质。
一个典型例子是在 Haskell 里给自定义的数据类型加上幺半群(Monoid)实例,即有单位元(Identity element)的半群(semigroup)。那么只要按数学要求证明有单位元(∀ a, e • a = a and a • e = a)和有结合律(∀ a b c, (a • b) • c = a • (b • c))就可以。
另一个复杂些的例子是验证编译器的正确性。定义好源语言和目标语言的形式语义,然后定义两种语义应该满足的相等关系。最后证明编译这个转换可以保证该相等关系。

当然由于数学本身的复杂性,很多数学命题的形式化也没那么简单。英国数学家 Kevin Buzzard 对 Lean 很有兴趣,他的团队花了不少时间才将一些数学命题形式化 [3]。

而自动证明的验证工具,不仅能表达的命题有限,电脑也没聪明到能推断作证明所需要的一些不变式(invariant),结果就是对于循环和递归这类结构,总是要手动标注不变式,也是个不小的工作量。

怎么让程序验证有更多应用,更能扩展到复杂程序,还有很长的路。

--------------------

[1] 想提一下柯里-霍华德同构(Curry–Howard correspondence)所说的“命题即类型、程序即证明”,真是我学计算机以来最有美感的概念之一.
[2] 一个常见的例子是,验证过的微内核 seL4,平均用 20 行 Isabelle/HOL 证明一行 C 代码.
[3] 参考他们的 Xena project.

【财经新闻早知道】#特斯拉召回部分国产电动汽车#

宏观经济

◆证监会召开2022年债券监管工作会议强调,全面深化债券发行注册制改革和扩大开放。

◆银保监会发布提醒,强调防范以“元宇宙”名义进行的非法集资和诈骗等犯罪活动。

◆央行行长易纲在出席G20财长和央行行长会议时表示,中国通胀总体温和,将保持稳健的货币政策灵活适度,加大跨周期调节力度,推动经济高质量发展。

◆发改委等12部门印发《促进工业经济平稳增长的若干政策》提出,组织实施光伏产业创新发展专项行动,鼓励中东部地区发展分布式光伏,推进广东、福建、浙江、江苏、山东等海上风电发展。

◆发改委等14部门印发《关于促进服务业领域困难行业恢复发展的若干政策》提出,2022年暂停航空运输企业预缴增值税一年;不得无政策依据对餐厅、商超、景点、电影院等实施关停措施。

◆广州期货交易所总经理朱丽红日前表示,正加快研发工业硅、多晶硅、锂、稀土等金属期货品种,尽快完成相关上市准备。

◆浙江人社厅2月18日在官微回应“浙江大学生创业失败代偿贷款”时表示,代偿后实在没能力偿还的,经审批后核销。

◆央视网:2月20日,北京冬奥会圆满落幕,中国队以9金4银2铜的成绩收官,锁定金牌榜第三名,金牌数和奖牌数均创历史新高。其中钢架雪车、冰球等项目也刷新了最好成绩。为中国健儿喝彩!中国队的拼搏、热爱、坚持不会终结。不止胜负,未来可期!所有冬奥健儿,都是好样的!

◆中信证券:本轮美联储加息周期大概率是“短程冲刺”而非“加息长跑”,预计全年加息节奏或将先急后缓,3月加息50bps概率不高,相对市场全年加息7次的激进预期而言,更倾向于全年加息3~4次。但缩表速度预计仍将较为激进,不可低估其紧缩力度。

行业动向

◆国际奥委会主席巴赫:对于体育行业而言,冬奥会是一个重要的推动因素。根据预测,中国的冬季运动的市场价值在2025年将会达到1500亿美元。中国的体量非常之大,这也会给全世界的冬季运动带来巨大的推动作用。

◆中工网:所谓“东数西算”,“数”指的是数据,“算”指的是算力,即对数据的处理能力。作为数字经济发展的核心生产力,算力是国民经济发展的重要基础设施。全社会对算力需求仍十分迫切,预计每年仍将以20%以上的速度快速增长。“东数西算”就是通过构建数据中心、云计算、大数据一体化的新型算力网络体系,将东部算力需求有序引导到西部。“东数西算”既是适应数字经济发展的必然要求,也是着眼实现“双碳”目标的战略选择。

◆信通院:数据中心产业上游主要是为数据中心建设提供所必须的基础设施或条件;产业中游主要是服务商,包括电信运营商、第三方中立IDC服务商、云计算厂商以及从各行业涌入的新进入者;产业下游主要是数据中心的使用者,如云计算企业等。数据中心建设资金需求高,地理位置是行业竞争的关键,也与其提供的服务质量和成本密切相关。目前北上广三地数据中心约占全国份额的26%,环一线城市数据中心产业带逐渐形成。

◆经济观察网:1月,全球最大的钻石开采供应商戴比尔斯将原钻价格上调了约8%,是自去年12月以来第5次上调价格。钻石成品价格指数在2022年首月大涨5.67%,超过2021年12月4.35%的涨幅,创下多年来最大单月涨幅纪录。业内称,国内钻石企业对未来钻石价格上涨有较大预期。

◆国泰君安:当前以消费与基建链为核心的低估值板块具备部分优势,“稳增长”行情仍在途中。整体来看,当前市场偏低风险偏好、经济基本面仍未兑现之下,价值仍将阶段占优,而成长尤其是赛道型公司的机会还需要等待风险偏好的回暖。沪深300拥挤度水平抬升更为明显,反映微观交易结构开始转向积极状态,新的主线和共识正在逐步形成。

◆证券时报:2月14日至18日,共有151家公司迎来机构的调研,合计被调研169次,环比增幅达到32%。其中共有15家公司被调研2次以上,这些公司大多与基建相关,被调研3次的公司分别来自建筑材料、机械设备、建筑装饰行业。

◆中国基金报:海外大型主动管理基金公司最新持仓披露完毕,对于热门行业整体以减持为主。各大机构减持大型科技、消费,但对去年超跌的部分优质中概互联标的已进行加仓。在新能源个股上,机构对于特斯拉的持仓出现分歧,但一些新生力量却获得不少机构开仓加满的待遇。此外,疫情概念整体出现减持操作。

◆限售解禁:本周,共有62只限售股解禁,解禁数量共计88.60亿股,解禁市值达到800.07亿元。其中,淮北矿业以201.86亿元排名解禁榜第一,京东方A和北汽蓝谷分别以143.97亿元、112.64亿元排名第二和第三。

◆新股申购:本周将有5只新股发行,包括主板1只,创业板2只,科创板1只,北交所1只。

◆中国基金报:近日可转债市场集体下挫,今年开年转债基金最大回撤已超14%,持续三年的转债牛市也遭遇挑战。然而,部分基金通过分散或降低持仓等方式,在转债市场大跌中顽强收红。业内称,转债投资更需精选个券,规避转股溢价率较高品种,并降低收益预期,通过长期持有来消化估值和穿越周期。

◆深圳市:1月,全市一手住宅共成交3572套,环比下降3%,同比下降57%;二手房网签量为1583套,环比下降23%,同比大幅下降82%。从挂牌走势看,去年12月起,机构对外二手房出售挂牌量呈持续下降态势。预计随着各家机构整改完毕,房源挂牌量将趋于平稳。

◆北京商报:伴随着团建等社交活动,或在子女的带动下,部分中老年人也开始接触并体验剧本杀。业内称,中老年玩家大多会选择带有家国、历史等元素的剧本。但因一场游戏时间较长,少则需要三四个小时,多则甚至可达十多个小时,需要玩家有一定的体力与精力,使得中老年玩家市场的空间相对有限。

◆期货日报:近期,PTA加工费呈现快速压缩态势,从春节前的576元/吨下降至306元/吨,降幅近47%,为2020年5月以来新低,PTA厂家再次面临亏损。业内称,加工费大幅下降主因为春节期间PTA装置正常运行而下游聚酯季节性检修,PTA季节性累库后市场现货充裕,价格承压。

◆上证报:三星、海信、TCL、华为等均推出了价格在数千元到一两万元的Mini LED电视。业内称,2022年Mini LED显示需求或翻倍,Mini LED电视表现值得期待;未来三五年Mini LED将是显示的大方向,率先布局的企业有望受益行业大规模量产。

◆中国经营报:近4个月来,国内已有3家连锁咖啡品牌、2家连锁餐饮品牌调价。餐饮行业纷纷将涨价原因指向成本,业内称,上游成本从去年开始就居高不下,这种情况不仅中国存在,全球也是一样。而对处于供应链下游的餐饮企业来说,去年上游增长的成本,正逐渐传导过来。

◆上周五,在岸人民币兑美元16:30收盘,报6.3265,涨0.1594%,周涨0.5142%;人民币中间价报6.3343,跌0.0347%,周涨0.5308%。

◆富时罗素指数新纳入102只A股,其中大盘A股共26只,中盘A股4只,小盘A股72只,将于3月18日收盘后(3月21日开盘前)正式生效。

◆新三板:上周,无新增挂牌公司,成交金额20.99亿,环比增加4.39%。截至目前,新三板挂牌公司总数达6896家。

◆美股:上周五,道指跌幅0.68%,报34079.18点,周跌1.90%;标普500指数跌幅0.72%,报4348.87点,周跌1.58%;纳指跌幅1.23%,报13548.07点,周跌1.76%。

◆黄金:上周五,COMEX 3月黄金期货收跌0.1%,报1899.8美元/盎司,周涨2.04%。

◆原油:上周五,WTI 3月原油期货收跌0.75%,报91.07美元/桶,周跌2.98%。布伦特4月原油期货收涨0.61%,报93.54美元/桶,周跌1.64%。

公司动态

◆特斯拉自2月18日起,召回2020年12月28日至2022年1月15日期间生产的部分国产Model 3(12003辆)和Model Y(14044辆)电动汽车,共计26047辆。

◆ 证券时报:近日有微博员工表示,微博正在大面积裁员,有的员工还被要求主动离职,已有员工被约谈。微博公关人员称,不存在裁员一说。公司为加强优势领域和业务聚焦,调整部分组织(架构),优先为涉及的员工进行调岗安置,无适合岗位的情况下协商解除劳动关系,但并无相关数据提供。

◆证券时报:杜邦近日宣布,将以110亿美元的价格向塞拉尼斯出售交通和材料部门的大部分业务。这项交易预计2022年底完成。杜邦此次出售的资产包括工程塑料和高性能树脂等业务,这些业务去年销售额约35亿美元,税息折旧及摊销前利润在8亿美元左右。

重要公告

◆*ST金刚:于2月18日收到通知,法定代表人、董事长郭留希因涉嫌违规不披露重要信息罪被公安机关依法采取强制措施,相关事项尚待公安机关进一步调查。召开董事会紧急会议,同意免去郭留希董事长、不再代行董事会秘书职责。

◆今世缘拟90.76亿元投资实施智能化酿酒陈贮中心项目。

◆中科电气拟与宁德时代合作建设锂电池负极材料一体化项目。

◆十天九板浙江建投收到关注函,要求核查是否存在涉嫌内幕交易情形。

◆凯莱英获新一批《供货合同》,金额约35.42亿元。

◆亚辉龙称MBL向公司增加采购3.17亿元新冠病毒抗原检测试剂盒。

◆海辰药业抗新冠药奈玛特韦原料药及其关键中间体项目获备案。

◆科兴制药与安泰维合作开发抗新冠病毒小分子口服药。

◆康希诺重组新型冠状病毒疫苗(5型腺病毒载体)获批用于序贯加强免疫接种。

◆恒生指数公司宣布,恒生科技指数成份股加入商汤集团、小鹏汽车、理想汽车,同时剔除同程旅行、微盟集团、汽车之家;联想、农夫山泉获纳入恒生指数,变动将于2022年3月7日起生效。

◆海底捞预计2021年净亏损约38亿元至45亿,集团2021年收入预计超过人民币400亿元,增长超过40%。

#信阳生活# 【返程高峰:今天,中国铁路郑州局集团有限公司预计发送旅客53.3万人】10月7日是国庆假期最后一天。记者从中国铁路郑州局集团有限公司获悉,该集团公司今日迎来返程客流高峰,预计发送旅客53.3万人。

为满足旅客返程需要,该集团公司管内各大火车站精准分析旅客出行计划,并统筹做好疫情防控工作,加大候车区域自然通风换气频次,定期对客运场所的座椅、电梯扶手、自动售取票机等重点部位进行消杀。此外,该集团公司管内郑州、商丘、洛阳、南阳等地火车站还推出多项便民服务举措,他们通过官方微博、微信等“线上”渠道不断向外延伸重点旅客服务触角,优先为重点旅客办理验证、检票,努力提升旅客出行体验。

温馨提示:国庆假期开行旅客列车具体车次、开行日期、停靠站等信息均以中国铁路客户服务中心12306网站或各大车站公告为准。因假期人员出行较为集中,敬请需要出行的旅客合理规划出行时间,及时到车站候车,避免耽误行程。进站乘车过程中,请规范佩戴口罩,配合车站工作人员做好体温检测和健康码核验工作。

各大火车站“鲜”资讯
【郑州地区】郑州车站预计发送旅客6.5万人,开行列车272趟。截至目前,西安、武汉方向余票紧张。
郑州东站预计发送旅客12.5万人,开行列车695趟。截至目前,西安、武汉方向还有少量余票。
【商丘地区】商丘车站预计发送旅客3.4万人,开行列车215趟,加开临客6趟,临客开行方向主要是兰州、连云港、郑州等城市。截至目前,高铁列车郑州方向还有少量余票,其余各方向余票紧张。普速列车广州、深圳、宁波、青岛、杭州方向余票紧张。
民权站预计发送旅客0.4万人,开行列车36趟。截至目前,杭州、深圳、重庆、成都、太原、上海方向余票紧张,哈尔滨、烟台方向余票充裕。
商丘南站预计发送旅客0.36万人,开行列车35趟。截至目前,广州、东莞东、深圳、沈阳、北京西方向余票紧张。
【洛阳地区】洛阳车站预计发送旅客1.5万人,开行列车71趟,加开临客1趟,临客开行方向主要是兰州。截至目前,北京、上海、广州、深圳、宁波、启东方向余票紧张。
洛阳龙门高铁站预计发送旅客2.5万人。截至目前,重庆、兰州方向余票紧张,西安、银川方向余票充裕。
【南阳地区】南阳车站预计发送旅客1万人,开行列车35趟,加开临客2趟,临客开行方向主要是郑州、重庆等城市。截至目前,广州、深圳、上海、北京、杭州、武汉方向余票紧张,重庆、洛阳方向余票充裕。
南阳东站预计发送旅客1.5万人,开行列车72趟,加开临客10趟,临客开行方向主要是郑州、洛阳等城市。截至目前,全国各方向余票均紧张。
【新乡地区】新乡车站预计发送旅客1万人,开行列车58趟。截至目前,上海、广州、北京、西安方向余票紧张,成都方向余票充裕。
新乡东站预计发送旅客1.2万人,开行列车88趟。截至目前,上海、广州、北京、武汉、成都等方向余票紧张,郑州、西安方向尚有余票。
【安阳地区】安阳车站预计发送旅客0.92万人,开行列车50趟。截至目前,北京、上海、广州方向余票紧张,邯郸、郑州方向余票充裕。
安阳东站预计发送旅客1.2万人,开行列车109趟,加开临客2趟,临客开行方向主要是北京、郑州等城市。截至目前,全国各方向余票均紧张。
【鹤壁地区】鹤壁东车站预计发送旅客 1万人,开行列车84趟,加开临客1列。截至目前,上海、北京、西安、广州方向余票紧张,郑州方向余票充裕。
鹤壁车站预计发送旅客 0.25万人,开行列车26趟。截至目前,上海、北京、天津方向余票紧张,新乡、郑州、安阳方向尚有余票。
【长治地区】长治东站预计发送旅客0.9万人,开行列车49趟。截至目前,北京、上海、广州方向余票紧张,其它各方向余票充裕。
【晋城地区】晋城东站预计发送旅客0.8万人,开行列车53趟。截至目前,北京、上海、广州方向余票紧张,太原、郑州方向余票充裕。
【焦作地区】焦作车站预计发送旅客0.7万人,开行列车77趟,加开临客12趟,临客开行方向主要是太原、郑州等城市。截至目前,郑州、太原方向余票充裕。
【开封地区】开封车站预计发送旅客0.65万人,开行列车56趟。截至目前,北京、上海方向余票紧张,郑州、商丘、洛阳、西安方向余票充裕。
【许昌地区】许昌车站预计发送旅客0.45万人,开行列车35列。截至目前,北京、广州、武汉、郑州方向还有少量余票。
【兰考地区】兰考车站预计发送旅客0.43万人,开行列车46列。截至目前,郑州、商丘方向还有少量余票。(河南日报客户端记者 董娉 郭北晨 通讯员 闫波 申富坤)https://t.cn/A6biMCvY


发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • 这样看来土象星座最惨啊,贵人运最差啊,因为猴鼠木星都是入陷的,哪怕三合日月,带来的效用也最弱,而水象的贵人运最好,马、虎木星都是庙旺的,作用杠杠的。星盘占星我的
  • 时隔近一周,今天执法部门再次上门时发现,大祥时尚街的85度c店里,问题标签竟仍!】22号,我们报道了市区两家85度c面包标签存在问题,被监管部门要求整改的事。
  • 一些近期常佩戴的美瞳分享~▫MerMer - Pro Gem 金箔棕上眼有一种灵动的无辜感在里面 日常跟拍照都非常的 颜色是有一点偏红棕色的 显的眼睛非常的
  • #小王的碎碎念日记本# ①浅浅的记录一下今天和芳辰下楼运动了不到十分钟吧,希望能坚持下去,加油②新发现的果冻不错,数不清今天是连续做核酸的第几天了,期待解封,我
  • !我细查了下:我说身上有外来的,被插仙了,然后你找了……约13个师傅看,有拒你卦不给你看的~她说我看看啊~我有记录(然后开始数……加上泰国的师傅,正好十三个)她
  • #人生感悟# #人生哲理#生命中走过的那些人,有多少已有了结局;不确定的以后,会停在哪里;也许时光早已告诉过我;在我频频回头看的时候;在我频频回头看的时候;在我
  • 可能因为其他的墙头上热搜太容易了趴……终于在热搜看到还是好开心【噘嘴】#张铭恩##LiveMusic二次元音乐视听新干线#开奖again!北京线下观看直播活动
  • 法海腹黑又禁欲,小青懵懂又妖娆真的让人看得不知道魂穿哪一个才好。印象深刻的那场戏是法海与小青之间的,这一场戏是整个电影的经典一幕,法海目睹了赤身的异性后产生关于
  • 诚然,散户投资者也是希望看到股价上涨的,但是股价上涨的同时,宋都股份的员工持股计划却高位减持,而这员... 【职场人生:必须搞清楚三件事】一件是“自己的事”一件
  • 每日一惊悚昨天的两次核酸是因为楼下有人中队长,今天早上中队长在楼群贴出阴性的核酸报告,群里恭喜声连连,一半是为别人一半为自己。下午,楼下的中队长哀怨道已接到疾控
  • 简•爱知道他们不可能有平等的婚姻,于是选择了离开。堕落和罪过会随着累赘的血肉之躯离开我们,只留下精神的火花,这才是生命和思想的源泉,就像当初它离开造物主,赋予生
  •  开着小差想着买什么礼物的缪苏帕听到这个,腹诽了一句:呵,但是,最了解糕卡娜的人是我. 但是,这也不妨碍缪苏帕马上登入了自己的小号搜索到了糕卡娜的唯粉群,并且申
  • 市场人气排名: 136 行业人气排名: 4营业总收入: 2.12亿元 同比增长26.14%净利润: 0.34亿元 同比增长85.11%每股净资产:6.10元分类
  • 上证指数之所以预测会继续上涨,具体原因请看置顶文章:上证50,目前唯一的强者!市场人气排名: 123 行业人气排名: 3营业总收入: 86.40亿元 同比增长8
  • 【财库不补 空过因缘】有的人付出很多却财运不佳,或赚到钱守不住,或为损友所累,钱财流失,诸多种种,皆是有财无库。”在生活工作中,安住心神不外驰,外界事物不动心,
  • 配置方面,XZ2 Premium搭载骁龙845处理器,6GB内存,电池容量3450mAh,后置Motion Eye Dual双摄为彩色+黑白方案(传感器都是 1
  • 我们在生活中见识着各种各样对于女性的歧视言论和做法,这很令人费解,为什么在2022年依然有人相信那些生理决定论,简单粗糙地以性别划分优劣和等级。并且,这种篡改并
  • 本来以为会是草帽大海贼团出来跟凯多打,看来没有,相对应的草帽海贼团又要将和之国的武士收入麾下[污][污][污][污]战力爆表![笑cry][笑cry]虽然早就被
  • 玩腻了固定模式的战士们,不妨来换换口味哟~[打call]#使命召唤手游#看到一段访问基辅西郊扎布奇耶(Забучье/Забуччя)村的视频(图1,位于布恰河
  • 刘宇宁,飞起来,带着好多好多人的梦想。你飞起来,仿佛我的人生也绚烂起来。