Liste des Groupes | Revenir à s logic |
On 2025-02-28 21:58:34 +0000, olcott said:Clocksin and Mellish concretely show the result of the
On 2/28/2025 3:56 AM, Mikko wrote:No, that is not said. In a footnote they say that the behaviour is undefined,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).
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 theAssuming that the unification does not fail.
directed graph of the evaluation sequence of the expression.
That you fail to understands that the following means thisIt means that the pariticular implementation you used exploited the
is your lack of understanding not my mistake.
>
?- LP = not(true(LP)).
LP = not(true(LP)).
"need not fail" permission, producing a cycle in the data structure.
?- unify_with_occurs_check(LP, not(true(LP))).For this operation there is no "need not fail". The standard specifies that
false.
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 onThe supreme authority is not Clocksin and Mellish but ISO/IEC 13211.
the same page until you totally understand it. You only need
example the yellow highlighted text.
Les messages affichés proviennent d'usenet.