摘要:
在 Windows msys2 下编译 scryer-prolog 阅读全文
摘要:
Coq是个证明助手(proof assistant),可以帮助你书写形式化(formal)的证明。
一个“形式化的证明”是指一个数学证明,但用于书写它的语言类似于一门编程语言。(实际上,Coq使用的语言就是一门编程语言,不过这点我们待会再谈)相对普通的证明,正规的证明更难以让人类阅读,但其更易被程序所理解,这使得程序可以验证其正确性,避免人类会犯下的低级错误。 阅读全文
摘要:
本文详细介绍了一种经典的k-SAT问题求解算法——DPLL算法,并给出了代码实现样例和使用说明。 阅读全文
![DPLL 算法(求解k-SAT问题)详解(C++实现)](https://img2022.cnblogs.com/blog/2134746/202203/2134746-20220308200257496-163503798.png)
摘要:
心血来潮在 Github 收集了各个主流编程语言的编译器源码,列出了各个编译器文件链接以及实现语言 阅读全文
![各个编程语言编译器源码收集](https://img2022.cnblogs.com/blog/2134746/202202/2134746-20220205110632752-669582581.png)
摘要:
我花了数天整理了这些定理的描述,如果描述涉及到一些较深的概念,我就一并把这些概念的定理列在定理描述之前,争取做到有高中数学基础的读者均能看懂定理的描述。
文中列出了定理的中文翻译、《最伟大的 100 个定理》中的英文定理名称(一部分为概述)、该定理所属的数学领域(为我的个人整理,标有问号的是我不确定的)、定理描述、其 Coq 形式化实现(一部分没有)和对应的 Wikipedia 链接(可作为拓展阅读)。
Coq 作为现代人类数理逻辑学的精华,在中文互联网上却十分冷门,作者希望通过本文来宣传一下 Coq神奇的定理检验功能。 阅读全文
![在 Coq 中形式化 100 个定理](https://img2022.cnblogs.com/blog/2134746/202202/2134746-20220204163657195-1906476689.png)
摘要:
康托展开 引入 康托展开(Cantor expansion)用于将排列转换为字典序的索引(逆展开则相反) 百度百科 维基百科 方法 假设我们要求排列 5 2 4 1 3 的字典序索引 逐位处理: 第一位:5 2 4 1 3,如果一个排列的第一位比 \(5\) 小(有 \(4\) 种情况) 则不管其后 阅读全文
![康托展开+逆展开(Cantor expension)详解+优化](https://img2020.cnblogs.com/blog/2134746/202110/2134746-20211026204314599-526640829.png)
摘要:
线段树(Segment Tree)复习笔记 By Chesium 2021/10/21 线段树能够维护满足以下条件的区间问题: \[ f(l,r)=g[f(l,m),f(m+1,r)] \] 即区间 \([l,r]\) 的答案可以通过合并 \([l,m]\) 和 \([m+1,r]\) 的答案得到。 阅读全文
![线段树复习笔记](https://img2020.cnblogs.com/blog/2134746/202110/2134746-20211021115530769-468198590.png)
摘要:
初学 Coq 时看的是 Mathematical Components 这本书,它自带了一个 Coq 的库,这是它的安装教程 这个库的安装要用到 OCaml Package Manager (OPAM) ,而它在本文所写之时(2021/9/25)仍不支持 Windows 我采用作者推荐的方式安装:采 阅读全文