摘要: 在 Windows msys2 下编译 scryer-prolog 阅读全文
posted @ 2022-07-25 00:23 chesium 阅读(138) 评论(0) 推荐(0) 编辑
摘要: Coq是个证明助手(proof assistant),可以帮助你书写形式化(formal)的证明。 一个“形式化的证明”是指一个数学证明,但用于书写它的语言类似于一门编程语言。(实际上,Coq使用的语言就是一门编程语言,不过这点我们待会再谈)相对普通的证明,正规的证明更难以让人类阅读,但其更易被程序所理解,这使得程序可以验证其正确性,避免人类会犯下的低级错误。 阅读全文
posted @ 2022-07-20 02:25 chesium 阅读(3229) 评论(1) 推荐(1) 编辑
摘要: DPLL 算法(求解k-SAT问题)详解(C++实现) 本文详细介绍了一种经典的k-SAT问题求解算法——DPLL算法,并给出了代码实现样例和使用说明。 阅读全文
posted @ 2022-03-08 20:05 chesium 阅读(5766) 评论(0) 推荐(1) 编辑
摘要: 各个编程语言编译器源码收集 心血来潮在 Github 收集了各个主流编程语言的编译器源码,列出了各个编译器文件链接以及实现语言 阅读全文
posted @ 2022-02-05 11:08 chesium 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 在 Coq 中形式化 100 个定理 我花了数天整理了这些定理的描述,如果描述涉及到一些较深的概念,我就一并把这些概念的定理列在定理描述之前,争取做到有高中数学基础的读者均能看懂定理的描述。 文中列出了定理的中文翻译、《最伟大的 100 个定理》中的英文定理名称(一部分为概述)、该定理所属的数学领域(为我的个人整理,标有问号的是我不确定的)、定理描述、其 Coq 形式化实现(一部分没有)和对应的 Wikipedia 链接(可作为拓展阅读)。 Coq 作为现代人类数理逻辑学的精华,在中文互联网上却十分冷门,作者希望通过本文来宣传一下 Coq神奇的定理检验功能。 阅读全文
posted @ 2022-02-04 16:38 chesium 阅读(1062) 评论(0) 推荐(1) 编辑
摘要: 康托展开+逆展开(Cantor expension)详解+优化 康托展开 引入 康托展开(Cantor expansion)用于将排列转换为字典序的索引(逆展开则相反) 百度百科 维基百科 方法 假设我们要求排列 5 2 4 1 3 的字典序索引 逐位处理: 第一位:5 2 4 1 3,如果一个排列的第一位比 \(5\) 小(有 \(4\) 种情况) 则不管其后 阅读全文
posted @ 2021-10-26 20:44 chesium 阅读(497) 评论(0) 推荐(1) 编辑
摘要: 线段树复习笔记 线段树(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]\) 的答案得到。 阅读全文
posted @ 2021-10-21 11:56 chesium 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 初学 Coq 时看的是 Mathematical Components 这本书,它自带了一个 Coq 的库,这是它的安装教程 这个库的安装要用到 OCaml Package Manager (OPAM) ,而它在本文所写之时(2021/9/25)仍不支持 Windows 我采用作者推荐的方式安装:采 阅读全文
posted @ 2021-10-20 16:18 chesium 阅读(191) 评论(0) 推荐(0) 编辑