另类数学分析 - 从lambda演算谈起

本文详细介绍了λ演算的基本概念,包括对象、标识符、表达式和逻辑量词。阐述了有序对、λ表达式及其规约规则,并定义了逻辑运算如非、与、或、异或。此外,还建立了自然数的定义,包括后继运算、加法、乘法等,并探讨了自然数的性质。最后,提及了可判定对象和集合的概念。
摘要由CSDN通过智能技术生成

注:这篇文章主要是写给自己和lcw看的,可能会比较混乱和难以理解

默认的概念

  • 对象:数学上一切皆可以看做对象。

  • 朴素的相等关系(\(=\not=\)):一个对象始终等于其本身,不等于其他任何一个对象。

  • 定义:定义是给满足某种条件的一类对象起名字。

  • 标识符:又叫做名称或者代数,指代对象所使用的名字。

  • 表达式:又叫做算式,一个由若干个对象有序排列所构成的整体。

  • 逻辑量词:任意(\(\forall\))、存在(\(\exists\))。

逻辑对象与运算

1 定义 有序对:有序对是一种特殊的对象。由两个对象 \(a,b\) 所构成的整体,就是有序对,记作 \((a,b)\)

2 记号 \((a,b,c)\):若一个有序对所包含的第二个对象是另一个二元组,则我们可以使用简化记号 \((a,b,c)\) 表示 \((a,(b,c))\)

3 定义 lambda表达式:在lambda演算系统中,一个合法的lambda表达式能且仅能为下面三种中的任意一种(下面简称“合法的lambda表达式”为“表达式”):

  1. 标识符:用于代指一个对象 \(x\),如果已经定义了这个名称所对应的对象,则称为绑定名称,否则称为自由名称,记作 \(x\)

  2. 抽象:一个由标识符 \(x\) 和表达式 \(M\) 所组成的特殊的有序对,记作 \(\lambda x.M\)

  3. 应用:一个由表达式 \(M\) 和表达式 \(N\) 所组成的特殊的有序对,记作 \(MN\)

4 记号 消除歧义约定:考虑到有的表达式直接书写会产生歧义(例如 \(\lambda x.xy\),可以解释为 \(\lambda x.(xy)\) 或者 \((\lambda x.x)y\)),为此我们必须在必要的地方添加括号以改变运算顺序。另一方面,在不添加括号时,我们约定:

  • 一个抽象的表达式部分将尽最大可能向右扩展,即:\(\lambda x.MN\) 代表的是一个抽象 \(\lambda x.(MN)\) 而不是应用 \((\lambda x.M)N\)

  • 应用是左结合的,即 \(M N P\) 意为 \((M N) P\) 而非 \(M (N P)\)

5.1 定义 替换规约:对于一个表达式 \(M\),将其中所有的自由名称 \(a\) 替换为 \(b\),记作 \(M[a\leftarrow b]\)

5.2 定义 \(\beta\)规约:对于一个应用 \(MN\),其中 \(M\) 是一个形如 \(\lambda x.E\) 的抽象,则应用 \(MN\) 可以规约为 \(E[x\leftarrow N]\)

5.3 定义 \(\alpha\)规约:对于一个抽象 \(\lambda x.x\) 和一个任意标识符 \(y\),抽象 \(\lambda x.x\) 可以规约为 \(\lambda y.y\)

5.4 定义 \(\eta\)规约:对于一个形如 \(\lambda x.f x\) 的抽象,可以将其规约为 \(f\)

5.5 定义 表达式等价:我们称表达式 \(a\) 和表达式 \(b\) 是等价的,当且仅当 \(a\)\(b\) 分别通过有限次规约(上述四种任意)后可以得到一个相等的表达式,或者一个表达式经过有限次规约后可以分别得到 \(a\)\(b\),此时记作 \(a\equiv b\),否则称 \(a\)\(b\) 不等价,记作 \(a\not\equiv b\)

6.1 定义 真:我们称 \(\lambda x.\lambda y.x\) 为真(又称为K组合子),记作 \(\circledast\)\(\mathrm K\)

6.2 定义 假:我们称 \(\lambda x.\lambda y.y\) 为假(又称为 \(0\)),记作 \(\circledcirc\)\(0\)

7.1 定义 逻辑非:我们称 \(\lambda x.x \circledcirc\circledast\) 为逻辑非运算,记作 \(\lnot x\)

7.2 定义 逻辑与:我们称 \(\lambda x.\lambda y.xyx\) 为逻辑与运算,记作 \(x\wedge y\)

7.3 定义 逻辑或:我们称 \(\lambda x.\lambda y.xxy\) 为逻辑或运算,记作 \(x\vee y\)

7.4 定义 逻辑异或:我们称 \(\lambda x.\lambda y.x(\lnot y)y\) 为逻辑异或运算,记作 \(x\oplus y\)

8 定义 命题:一个表达式 \(p\) 被称为命题,当且仅当 \(p\) 与真等价或者 \(p\) 与假等价。

9.1 定义 蕴含:我们称 \(\lambda x.\lambda y.xy\circledast\) 为蕴含,记作 \(x\Rightarrow y\)

9.2 定义 命题等价:我们称 \(x\Leftrightarrow y\),是指 \(x\Rightarrow y\wedge y\Rightarrow x\)

基础建设

10.1 定义 Y组合子:我们称 \(\lambda f.(\lambda x.f(xx))(\lambda x.f(xx))\) 为Y组合子,记作 \(\mathrm Y\)

10.2 定义 I组合子:我们称 \(\lambda x.x\) 为I组合子,记作 \(\mathrm I\)

10.3 定义 S组合子:我们称 \(\lambda x.\lambda y.\lambda z.xz(yz)\) 为S组合子,记作 \(\mathrm S\)

10.4 定理\(\mathrm I\equiv\mathrm S\mathrm K\mathrm K\)。(证明显然)

10.5 二元组:我们称 \(\lambda x.\lambda y.\lambda f.fxy\) 为二元组,记作 \(\mathrm P\)

10.6 定义 B组合子:我们称 \(\lambda x.\lambda y.\lambda z.x(yz)\) 为B组合子,记作 \(\mathrm B\)

10.7 定义 W组合子:我们称 \(\lambda x.\lambda y.xyy\) 为W组合子,记作 \(\mathrm W\)

自然数

11.1 定义 后继运算:我们称 \(\lambda n.\lambda f.\lambda x.f(nfx)\) 为后继运算,记作 \({}^+n\)

11.2 记号 后继:我们称 \(a\rightarrow b\),是指 \({}^+a\equiv b\)

12 定义 可达:对于两个表达式 \(a,b\),我们称 \(a\) 可达 \(b\),当且仅当下面两点中的任意至少一点成立,记作 \(a\rightsquigarrow b\),否则称 \(a\) 不可达 \(b\),记作 \(a\not\rightsquigarrow b\)

  1. \(a\rightarrow b\)

  2. \(\exists_{c}a\rightsquigarrow c\wedge c\rightsquigarrow b\)

13.1 定义 自然数: 我们称表达式 \(a\) 是一个自然数,当且仅当 \(a\leftrightarrow0\vee0\rightsquigarrow a\)。(注:这个定义等价于表达式 \(\mathrm Y(\lambda f.\lambda n.n(\lambda x.\mathrm Bf(\lambda n.n(\lambda p.\mathrm P(\mathrm B{}^+p\circledast)(p\circledast))(\mathrm P00)\circledcirc)x)\circledast)a\) 可以规约到 \(\circledast\)。)

13.2 记号 \(1,2,\cdots\):我们记 \(1={}^+0,2={}^+1,\cdots\)

14.1 定义 加法\(\lambda m.\lambda n.\lambda f.\lambda x.mf(nfx)\) ,记作 \(m+n\)

14.2 定义 零命题\(\lambda n.n(\lambda x.\circledcirc)\circledast\),记作 \(n=0\)

14.3 定义 乘法\(\lambda m.\lambda n.m(+n)0\),记作 \(m\times n\)

14.4 定义 正自然数:对于一个自然数 \(n\),当且仅当 \(n(\lambda x.\circledast)\circledcirc\) 等价于 \(\circledast\)\(n\) 被称为正自然数。

14.5 定义 自然数指数运算\(\lambda m.\lambda n.nm\),记作 \(m^n\)

15.1 定义 前驱\(\lambda n.n(\lambda p.\mathrm P(\mathrm B{}^+p\circledast)(p\circledast))(\mathrm P00)\circledcirc\),记作 \({}^-n\)

15.2 定义 半减法\(\lambda m.\lambda n.n{}^-x\),记作 \(m\ominus n\)

15.3 定义 自然数小于等于\(n\ominus m=0\),记作 \(n\leqslant m\)

15.4 定义 自然数大于等于\(m\leqslant n\),记作 \(n\geqslant m\)

15.5 定义 自然数等于\(n\leqslant m\wedge n\leqslant m\),记作 \(n=m\)

15.6 定义 自然数小于\(n\leqslant m\wedge\lnot n=m\),记作 \(n<m\)

15.7 定义 自然数大于\(m<n\),记作 \(n>m\)

16.1 定理 加法交换律:对于自然数 \(n,m\)\(n+m=m+n\)

证明:TODO:补充证明 \(\qquad\texttt{Q.E.D}\)

16.2 定理 乘法交换律:对于自然数 \(n,m\)\(n\times m=m\times n\)

证明:TODO:补充证明 \(\qquad\texttt{Q.E.D}\)

TODO: 补充其他运算性质

集合

17 定义 可判定对象:一个对象 \(x\) 要么是不可判定的,要么存在一个抽象 \(\triangle_x\),满足对其进行 \(\beta\)规约时有

\[_\beta\triangle_xy=\begin{cases}\mathrm K &\text{可判定}x\equiv y\\0 &\text{其他情况}\end{cases} \]

18.1 定义 空集\(\lambda x.\circledcirc\),记作 \(\varnothing\)

18.2 定义 单元素集:对于一个可判定的对象 \(x\)\(\lambda a.\triangle_xa\) 为关于 \(x\) 的单元素集,记作 \(\{x\}\)

18.3 定义 属于\(\lambda A.\lambda x.Ax\),记作 \(x\in A\),其中 \(x\) 是一个可判定对象,\(A\) 为一个表达式。

18.4 定义 并集\(\lambda A.\lambda B.\lambda x.Ax\circledast Bx\),记作 \(A\cup B\),其中 \(A,B\) 均为表达式。

19 定义 有限制的集合:一个集合是有限制的集合,当且仅当

to be continued...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值