如何通过prolog处理配方?

use*_*729 3 prolog formula

如果

a+b+c=1
a^2+b^2+c^2=2
a^3+b^3+c^3=3
Run Code Online (Sandbox Code Playgroud)

然后

a^4+b^4+c^4=?
Run Code Online (Sandbox Code Playgroud)

我知道结果是25/6,但如何通过prolog计算它?

我尝试过但失败了:

[1] 5 ?- A+B+C=:=1,A**2+B**2+C**2=:=2,A**3+B**3+C**3=:=3.
ERROR: Unhandled exception: =:=/2: Arguments are not sufficiently instantiated
Run Code Online (Sandbox Code Playgroud)

Ben*_*dis 5

不幸的是,使用Prolog作为数值求解器并非易事.

?- X is 1 + 2*X.
Run Code Online (Sandbox Code Playgroud)

当答案看起来非常明显时,会引发同样的错误.

虽然Prolog能够钻取其知识库以神奇地解决逻辑问题,但它不能对数字做同样的事情.问题不仅是大多数常见数字集的无穷大而且还有连续性(即1.1234567890123456789之后出现了什么数字?).

所以,简而言之:即使在Prolog中,我也不相信有可能编写一个简单的程序来解决这个问题.

但是,有一些尝试在Prolog中实现了一些数值解算器(参见右上角的缓存版本).