十八

一体同观分

金刚般若波罗蜜经 · 第十八品 / 三十二品

原文

“须菩提!于意云何?如来有肉眼不?”

“如是,世尊!如来有肉眼。”

“须菩提!于意云何?如来有天眼不?”

“如是,世尊!如来有天眼。”

“须菩提!于意云何?如来有慧眼不?”

“如是,世尊!如来有慧眼。”

“须菩提!于意云何?如来有法眼不?”

“如是,世尊!如来有法眼。”

“须菩提!于意云何?如来有佛眼不?”

“如是,世尊!如来有佛眼。”

“须菩提!于意云何?如恒河中所有沙,佛说是沙不?”

“如是,世尊!如来说是沙。”

“须菩提!于意云何?如一恒河中所有沙,有如是沙等恒河,是诸恒河所有沙数,佛世界如是,宁为多不?”

“甚多,世尊。”

佛告须菩提:“尔所国土中,所有众生,若干种心,如来悉知。何以故?如来说:诸心皆为非心,是名为心。所以者何?须菩提!过去心不可得,现在心不可得,未来心不可得。”

白话

“须菩提,你怎么看?如来有肉眼吗?”

“是的,世尊,如来有肉眼。”

“须菩提,你怎么看?如来有天眼吗?”

“是的,世尊,如来有天眼。”

“须菩提,你怎么看?如来有慧眼吗?”

“是的,世尊,如来有慧眼。”

“须菩提,你怎么看?如来有法眼吗?”

“是的,世尊,如来有法眼。”

“须菩提,你怎么看?如来有佛眼吗?”

“是的,世尊,如来有佛眼。”

“须菩提,你怎么看?恒河里的那些沙子,佛说过它们是沙子吗?”

“是的,世尊,如来说过它们是沙子。”

“须菩提,你怎么看?假如有像一条恒河中沙粒数目那么多的恒河,再有像这所有恒河中全部沙粒数目那么多的佛世界,这样的世界算多吗?”

“非常多,世尊。”

佛告诉须菩提:“这么多国土中所有众生的种种心,如来全都知道。为什么?如来说,那些心都不是心,只是名义上叫作心。为什么这么说?须菩提,过去的心得不到,现在的心得不到,未来的心也得不到。”

这一品在说什么

  1. 佛依次问须菩提:如来有没有肉眼、天眼、慧眼、法眼、佛眼?须菩提五次答有。佛的认知能力五层具足,最低一层的肉眼也不舍弃。
  2. 佛插入一问:恒河里的沙,佛说不说它是沙?答:说。佛眼虽能照见空性,仍然承认世俗层面的沙就是沙,不否认日常认知。
  3. 以恒河沙数的恒河、再乘以沙数的佛世界为喻,把认知对象扩大到极限:如此多世界中所有众生的每一种心念,如来全部知道。
  4. 随即拆掉刚才立起来的命题:这些「心」都不是实体意义上的心(诸心皆为非心),只是权且叫作心。
  5. 给出理由并收尾:过去心不可得,现在心不可得,未来心不可得——心念在时间上无一刻可以被把捉,所以「悉知」知到的不是一堆固定对象,而是无实体的流。

深度解读

《金刚经》前半部分反复破的是「所」——外在的对象:佛土不可庄严、身相不可执取、福德无实。第 17 品「究竟无我分」把矛头转向「能」:连发心求觉悟的那个「我」也不可得。顺着这条线,第 18 品处理的是最后一个、也是最隐蔽的堡垒:能认知的「心」本身。你可以接受外境是空的,甚至接受「我」是概念安立的,但那个正在思考这句话的心念,总该是实实在在的吧?本品的回答是:它也不可得。

论证分三步。第一步立「五眼」。肉眼(梵文 māṃsa-cakṣus)是凡夫的生理视觉;天眼(divya-cakṣus)指不受障碍物和距离限制的知觉能力;慧眼(prajñā-cakṣus)指照见空性的智慧;法眼(dharma-cakṣus)指了知一切法门差别、观机施教的能力;佛眼(buddha-cakṣus)是前四者的圆满总和。值得注意的是提问方向:佛不是问「如来是否只用佛眼」,而是从肉眼问起,五问五答,一个不缺。这就是「一体同观」这个品名(出自梁昭明太子的分品)的第一层含义:五眼不是五个器官,而是同一能知之体的五个层次;六祖惠能《金刚经口诀》一系的解读把它概括为一眼摄五眼、一沙摄恒河沙、一世界摄多世界、一心摄若干心。佛具足肉眼,意味着觉悟者并没有丢弃凡夫的认知通道,只是在同一通道上看得更彻底——紧接着的「佛说是沙不」一问是同一个意思的验证:佛眼照见沙无自性,但佛不会否认沙是沙。般若不坏世俗谛,这是全经「即非、是名」句式的认识论基础。

第二步把认知对象推到极限。恒河沙数的恒河、沙数的世界、其中一切众生的「若干种心」,如来悉知。这句话如果停在这里,就是一个全知论断,和前十七品的破执方向完全相反。所以第三步立刻自拆:「诸心皆为非心,是名为心。」这里有一个鸠摩罗什译本看不出来、对读梵本才显形的关键细节:梵本此处的词不是「心」(citta)而是「心流」(citta-dhārā,dhārā 意为水流、相续)。梵本原文说:所谓「心流」,如来说是「非流」(a-dhārā),是名「心流」。Conze 英译作 trends of thought,Harrison 依犍陀罗写本译作 streams of thought / streamless。也就是说,佛「悉知」的从来不是一颗颗静止的心,而是众生念念相续的流;而这个流之为「非流」,正因为它没有一个贯穿始终的自体——每一刹那的念头生起即灭,前念不是后念,没有任何东西真正「流」过去。罗什把 citta-dhārā 简译为「心」,文字更利落,但把「流」这个论证枢纽藏进了下一句。

下一句就是全经最著名的句子之一:「过去心不可得,现在心不可得,未来心不可得。」梵本作 atītaṃ cittaṃ nopalabhyate(过去心不可得)、anāgataṃ cittaṃ nopalabhyate(未来心不可得)、pratyutpannaṃ cittaṃ nopalabhyate(现在心不可得)——upalabhyate 意为「被把捉、被认取」,na-upalabhyate 即「无法被当作对象抓到」。注意梵本的顺序是过去、未来、现在,罗什调整为过去、现在、未来。论证很干净:过去的念头已经灭了,抓到的只是记忆;未来的念头还没生,抓到的只是预期;「现在」的念头呢——当你转身去抓它时,它已经成了过去。三个时态穷尽了心念可能存在的位置,每个位置都扑空,所以「心」不是一个可得的东西。这不是说思维活动不发生,而是说思维活动里找不到一个叫「心」的实体。

对「诸心皆为非心」历代注家有一处真实的分歧。禅宗一系(六祖口诀的路数,南怀瑾《金刚经说什么》也倾向此说)把「非心」读作「妄心非真心」:众生迁流不息的念头是妄心,妄心背后有不生不灭的真心,三心不可得是叫你放下妄心以显真心。而依梵本和中观立场的解读(印顺《般若经讲记》属这一系)则认为经文没有预留一个「真心」:非心就是心无自性,刹那生灭、缘起而有,如此而已,另立真心反而又成了执取。前者是如来藏思想的读法,后者是般若中观的读法,两者在中国佛教史上长期并存。就本品文本自身而言,「不可得」是彻底的遮遣,没有肯定任何剩余物——这也是德山宣鉴公案的力量所在:这位注解《金刚经》几十年的讲师,被卖饼老妇一句「三心不可得,上座点哪个心」问得哑口无言。理论上知道心不可得,和当下承认自己此刻正无心可点,是两件事。

理工男视角

ENGINEER'S NOTES

本品的核心命题可以精确翻译成一句工程语言:心不是状态(state),是流(stream);而对流做「取当前值」操作,返回的必然不是流本身。

先看「一体同观」。五眼像同一份数据源上的五个视图(view):肉眼是原始像素,天眼是去掉遮挡的全量渲染,慧眼看到的是底层数据结构(空性),法眼是带完整 schema 和文档的管理端视图,佛眼是所有视图的联合。关键设计是:高级视图不废除低级视图。佛眼具足肉眼,正如你理解了 TCP/IP 全栈之后,浏览器里的网页仍然是网页——「佛说是沙」就是这个意思,看穿抽象层不等于否认抽象层的有效性。

再看「三心不可得」。把心念序列建模成一个事件流:每个念头是一个事件,产生即完成。现在对这个流执行 getCurrentThought()

这类似于分布式系统里的一个硬结论:对一个持续运行的系统,不存在与「此刻」严格同时的全局一致性快照——你观测到的任何「当前状态」都是重建出来的过去。也像流处理系统里没有「现在这个元素」这种对象,游标指向的 now 在指向的瞬间即已失效。「诸心皆为非心,是名为心」则是在指出一个类型错误(type error):把「心」当名词用,是把一个过程(process)具体化(reify)成了对象(object)——好比把函数的执行误当成一个可以拿在手里的返回值。「心」这个词是个方便的句柄(handle),句柄背后没有那个想象中的实体。

类比到此为止都成立,但要标出失效点。工程类比容易把「不可得」降级为测量问题:采样太慢、时钟不同步、观测有延迟——言下之意,如果有无限快的采样,还是能抓到的。佛教的主张更强:不是工程上抓不到,而是本体上无此物可抓。念头不是「变化太快的对象」,而是根本没有对象性——缘起而现,无自性可言。这一步没有工程对应物,因为工程默认了实体存在,只是难以测量;般若否定的正是这个默认。类比是脚手架,砌到这里,墙要自己往上长。

写给高级程序员

FOR SENIOR ENGINEERS

第 17 品破掉了发心的「我」,本品清扫作用域里剩下的最后一个对象:能知的「心」。工程师对这个对象太熟悉了——几乎所有关于「人」的建模里,都躺着一个长生命周期的 mind:有身份,有状态,跨调用持存,可以被引用、被读取、被持有。本品的论证,等价于证明这个类型是无居民的(uninhabited):不是它的值恰好为空,而是根本不存在任何值属于它。

先看本品立的部分。五眼具足、「佛说是沙」,翻译成工程语言是:这个证明不动运行时。值层面的一切照常成立——沙是沙,念头照常生灭,观察照常发生;将被否定的,只是我们在这些现象之上虚构出来的那个持久实体。类型层的手术不影响值层的行为,这是「般若不坏世俗谛」的工程表述。

然后佛把断言推到极限——恒河沙数世界中众生的若干种心,如来悉知——随即自拆:诸心皆为非心。前面的「理工男视角」已经在运行时层面演示过抓取如何失败,并承认「本体上无此物可抓」这一步没有工程对应物。其实有,只是不在运行时,而在类型系统里。类型理论区分两件事:一个请求失败(实体存在,但超时、404、返回空),和一个类型无居民(该类型不存在任何值,任何声称返回它的函数都不可能正常返回)。前者是 null 和异常的世界——null 的意思是「格子存在,格子里恰好没东西」,它仍然预设了格子;后者是 never 的世界:无格子,无物,无失败可言,因为从未有一个成功的可能。「不可得」(nopalabhyate,无法被认取为对象)的精确译名不是 null,是 never。

佛证明这一点的方法,正是类型理论里证明无居民性的标准方法:穷尽全部构造路径,逐一堵死。「可把捉之心」若有值,只能从三个构造子之一产出——过去、现在、未来,别无第四时。检查过去的构造子:它能产出的只有记忆,而记忆的类型是「关于念的记录」,与念本身不合一,类型检查不过。检查未来的构造子:它尚未被调用,值不存在于任何作用域。检查现在的构造子:调用它这个动作本身就是新起的一念,待调用返回,它想构造的那个「现在」已落入过去构造子的辖区——这是一个没有基例的递归,永不正常返回。三条路径穷尽,皆空,故该类型无居民。在 Curry-Howard 对应下,无居民类型即无法证明的命题:「存在一个可把捉的当下之心」,此命题为假,且是被构造性地、逐分支地证伪的。「过去心不可得,现在心不可得,未来心不可得」就是这三个分支的判决书。

那「心」这个词为什么还能用?「是名为心」:Mind 是一个类型别名,只活在类型层。它在源码里处处合法,能通过检查,能组织代码,能支撑沟通;编译之后它被整体擦除,运行时从来没有一个叫 Mind 的对象在跑。名字的有用与实体的不可得,从头到尾是两个层面的事。我们说「我的心很乱」,语法上没错,就像在注释里引用一个类型;错的是试图在运行时对它取地址。

type Thought = { readonly arisen: number };    // 一念,缘起而现
type Memory = { readonly traceOf: string };    // 关于念的记录,不是念本身
type Expectation = { readonly notYet: true };  // 尚未构造的占位

// 「悉知」并不失效:观察照常发生,产出的是记录与预期
function recallPast(): Memory { return { traceOf: "already ceased" }; }
function anticipateFuture(): Expectation { return { notYet: true }; }

// upalabhyate:把「当下这一念」本身拿到手并持有。
// 本次调用自身即是新起的一念;待它返回,
// 目标已落入 recallPast 的辖区——这是一个没有基例的递归
function graspPresent(): never {
  return graspPresent();
}

// 三个构造路径穷尽时间轴,能产出「被持有之念」的路径为零:
// 「过去心不可得,现在心不可得,未来心不可得」
type Graspable = Extract<
  Memory | Expectation | ReturnType<typeof graspPresent>,
  Thought
>;

// 静态断言:Graspable 无居民——不是空着的格子(null),是无值的类型(never)
const _proof: [Graspable] extends [never] ? true : false = true;

// 「是名为心」:Mind 是合法的名字,编译后被整体擦除,运行时并无此物
type Mind = Thought | Memory | Expectation;

这个映射在一处失效:类型层的证明由站在程序之外的编译器完成,而般若没有外部编译器——执行证明的与被证明「不可得」的是同一个心,德山宣鉴注经几十年却被一句「上座点哪个心」问倒,倒的正是这一点。此外,工程里的擦除止于类型层,运行时的值仍被默认为实有;般若的遮遣连值层的自性也一并否定,不给任何一层留一个「真正存在」的底座。证明写在纸上是类型检查,落在自己身上才是这一品。

关键概念

概念 梵文/巴利文 解释
五眼 pañca cakṣūṃṣi(肉眼 māṃsa-cakṣus、天眼 divya-cakṣus、慧眼 prajñā-cakṣus、法眼 dharma-cakṣus、佛眼 buddha-cakṣus) 同一能知之体的五个层次;佛五眼具足,高层认知不废除低层认知
诸心非心 citta-dhārā / a-dhārā 梵本作「心流」与「非流」:心念是无自体的相续流,「心」只是假名
三心不可得 atītaṃ / pratyutpannaṃ / anāgataṃ cittaṃ nopalabhyate 过去已灭、现在不住、未来未至,三个时态穷尽后无一处能把捉到「心」这个实体
不可得 anupalabdhi(动词 nopalabhyate) 无法被认取为对象;是遮遣实体,不是否认现象发生

金句

过去心不可得,现在心不可得,未来心不可得。

如来说:诸心皆为非心,是名为心。

参考资料