Liste des Groupes | Revenir à s logic |
On 3/3/25 7:38 PM, olcott wrote:No that is not it. You don't seem to understandOn 3/3/2025 9:05 AM, Mikko wrote:In the logic that Prolog supports, which is very limited.On 2025-03-01 19:42:50 +0000, olcott said:>
>On 3/1/2025 2:37 AM, Mikko wrote:>On 2025-02-28 21:58:34 +0000, olcott said:>
>On 2/28/2025 3:56 AM, Mikko wrote:>On 2025-02-26 14:42:23 +0000, olcott said:>
>On 2/26/2025 3:12 AM, Mikko wrote:>On 2025-02-25 21:07:31 +0000, olcott said:>
>On 2/25/2025 9:27 AM, Mikko wrote:>On 2025-02-24 21:31:26 +0000, olcott said:>
>On 2/24/2025 2:51 AM, Mikko wrote:>On 2025-02-22 17:24:59 +0000, olcott said:>
>On 2/22/2025 3:12 AM, Mikko wrote:>On 2025-02-21 23:22:23 +0000, olcott said:>
>On 2/20/2025 3:01 AM, Mikko wrote:>On 2025-02-18 13:50:22 +0000, olcott said:>
>There is nothing like that in the following concrete example:>
LP := ~True(LP)
>
In other words you are saying the Prolog is incorrect
to reject the Liar Paradox.
>
Above translated to Prolog
>
?- LP = not(true(LP)).
LP = not(true(LP)).
According to Prolog rules LP = not(true(LP)) is permitted to fail.
If it succeeds the operations using LP may misbehave. A memory
leak is also possible.
>?- unify_with_occurs_check(LP, not(true(LP))).>
false
This merely means that the result of unification would be that LP conains
itself. It could be a selmantically valid result but is not in the scope
of Prolog language.
>
It does not mean that. You are wrong.
It does in the context where it was presented. More generally,
unify_with_occurs_check also fails if the arguments are not
unfiable. But this possibility is already excluded by their
successfull unification.
IT CANNOT POSSIBLY BE SEMANTICALLY VALID
Of course it is. Its semantics is well defined by the Prolog standard.
Go freaking read the Clocksin and Mellish.
an "infinite term" means NOT SEMANTICALLY VALID.
Prolog does not define any semantics other than the execution semantics
of a prolog program. Therefore no data structure has any own semantics.
>
The result of the exectution of an instruction like LP == not(true(LP))
is not fully defined by the standard so we may say that that instruction
is semantically invalid.
>
When we ask for Prolog to determine whether an expression
in Prolog is true according to its facts and rules and the
evaluation of the expression gets stuck in an infinite loop
then this expression IS SEMANTICALLY INCORRECT.
Which is not done anywhere above.
>
In other words you can't remember things that I said
a few messages ago and I have to endlessly repeat everything
every time?
Is this just an instance or your favorite sin? If not, what do you think
I didn't remember?
>page 3 has the liar paradox and the Cloksin & Mellish Quote>
https://www.researchgate.net/ publication/350789898_Prolog_detects_and_rejects_pathological_self_reference_in_the_Godel_sentence
It just says that your prolog system is defective as it does not reject
your LP = not(true(LP)). The Prolog standard says that this operation may
but need not fail. It also cortectly says that
LP = not(true(LP)), write(LP)
would not work.
There is no "need not fail" Clocksin and Mellish says
impossible to succeed (paraphrase).
No, that is not said. In a footnote they say that the behaviour is undefined,
i.e., an implementation may choose what to do. They do say that a typical
implementation does not fail, which implies "need not fail".
>More precisely it says that there is a cycle in the>
directed graph of the evaluation sequence of the expression.
Assuming that the unification does not fail.
>That you fail to understands that the following means this>
is your lack of understanding not my mistake.
>
?- LP = not(true(LP)).
LP = not(true(LP)).
It means that the pariticular implementation you used exploited the
"need not fail" permission, producing a cycle in the data structure.
>?- unify_with_occurs_check(LP, not(true(LP))).>
false.
For this operation there is no "need not fail". The standard specifies that
the operation must fail.
>Because the Prolog Liar Paradox has an “uninstantiated subterm of itself” we can know that unification will fail because it specifies “some kind of infinite structure.”>
Wrong. You above said that the unification LP = not(true(LP)) did not
fail. It may fail on another implementation but that is not required.
>Go back and read the Clocksin and Mellish example and quote on>
the same page until you totally understand it. You only need
example the yellow highlighted text.
The supreme authority is not Clocksin and Mellish but ISO/IEC 13211.
Clocksin and Mellish concretely show the result of the
infinitely recursive structure of their concrete example.
Irrelevant.
>
Your above replies prove that you do not understand this
thus cannot correctly say that it is irrelevant.
>
Prolog determines that all expressions that are
isomorphic to their concrete example are semantically
incorrect because these expressions have an infinitely
recursive structure.
>
>
>
Les messages affichés proviennent d'usenet.