[FOM] Algorithm for assigning truth values

Sandy Hodges SandyHodges at attbi.com
Fri Sep 27 21:12:24 EDT 2002

I'm still tinkering with the algorithm; but here is something on the
basic idea - perhaps someone will have a suggestion.

Here's a sentence token net:

1.  2+2=5
2.  ~ True(1)
3.  True(4) & True(2)
4.   ~ True(3)
5.   ~ True(3)
6.   True(3) <=> ~ True(4)

For nets of this type, we can call tokens 1 and 2 the "stem", 3 and 4
the "loop", and 5 and 6 the "commentary".   1 and 2 get their truth
value by grounding - 1 is false based on arithmetic, and 2 is true based
on 1.  3 and 4 are a classic Liar loop; 5 and 6, are outside the
loop.    The truth values in this case will be F, T, Para, Para, T, and
F, respectively.    5 is true, because it correctly describes the truth
value of 3, which is paradoxical and so not true.   4, which is the same
formula as 5, is in the loop and is paradoxical.   So it is essential,
in assigning truth values, to know which tokens are in the loop, and
which are commentary.

It seems easy to recognize the loop and the commentary: the tokens in
the commentary are not referred to by the tokens in the loop, while the
tokens in the loop are referred to by each other.    But this can be
obscured by "idle" reference.   Suppose instead of 4, we had

4'.   ~ True(3) & (2+2=4 or True(6))

The truth value of 4' is never going to depend on the truth value of 6,
since the right conjunct will be true regardless.    But if we treated
this idle reference from 4' to 6 the same way we treat significant
reference, then 6 (and thus 5) would be in the loop, and would be
paradoxical.   For reasons I won't go into here, I don't want this to
happen, so I want not to count idle reference when deciding what's in
the loop.    But which references are idle can be hard to say.    So I
want some basis for treating 5 and 6 as outside of the loop, that does
not depend on showing that references to them are idle.   This is the
Let U be an arbitrary assignment of truth values to the tokens in a net,
for example <T, Para, F, T, Para, T>, for the above tokens 1 - 6.  We
can work out an evaluation E(U): another vector, calculated based on
U.   For example, token 3 is "True(3) & True(2)"; according to U, 3 is
F, so True(3) is false, so  "True(3) & True(2)" is false.   The value
for each token can be worked out similarly: all together, E(U) is <F, F,
F, T, T, T>.    I am using here the "strong" truth, so if 2 is
paradoxical, "True(2)" is false (rather than being paradoxical).
Given strong truth, E(U) is going to consist only of "T"s and "F"s, no
"Para"s, for any U.

The E function may have a fixed point, but may not.   But it is always
the case, for a finite sentence net, that the series U, E(U), E(E(U)),
E(E(E(U))), ... will reach a limit cycle.   But different starting U's
may lead to different limit cycles.   For a given token net D, let K(D)
be the set of all vectors that are in any limit cycle.   For example,
for the tokens

7. ~ True(8)
8. ~ True(7)

there are two cycles, namely <T,T> -> <F,F> -> <T,T>, and <T,F> -> <F,T>
-> <T,F>.    K({7,8}) is {<T,T>, <T,F>, <F,T>, <F,F> }.

For a given net D, Let S(D) be the supervaluation of K(D): that is, S(D)
is a vector that is:
T, where all the vectors in K(D) are T,
F, where all the vectors in K(D) are F, and
Para, where some vectors in K(D) have T and some have F.
The S for token net {1,2,3,4,5,6} is <F,T,Para,Para,Para,Para>.

Let A(B) be the supervaluation of {B,E(B)}, for any vector B.    A(B)
differs from B only by calling Para zero or more tokens which B calls T
or F; so the series B, A(B), A(A(B)), ... always reaches a fixed
point.    Call this fixed point G(B).    I call G the "audit"
operation.   For D={1,2,3,4,5,6}, E(S(D)) is <F,T,F,T,T,F>.    A(S(D))
is <F,T,Para,Para,Para,Para>. G(S(D)) is <T,T,Para,Para,Para,Para>.

G(S(D)) differs from what I claim to be the correct solution, which is

In the limit cycles for net {1,...,6}, T and F oscillated for tokens 3
and 4, as expected for tokens in the loop.   But while 3 and 4 "drove"
the oscillation, 5 and 6 were caught up by it, and oscillated also.  So
5 and 6 got called Para by S(D), and thus by G(S(D)).  So the key
problem is to find a way to recognize that 5 and 6 are in the
commentary, in a way which will not be tricked by idle reference.

Suppose we had assumed that the right answer for net {1,...,6} was
<F,T,Para,Para,Para,F>.   Call this vector X.   Holding X constant, we
try a particular assignment of T and F to those tokens which X calls
Para.   For example <F,T,F,F,T,F>.   Call this M.    Do an evaluation of
M, but only evaluate those tokens which X calls Para.   The result is
<F,T,F,T,T,F>, call this E'(X,M).    Find all the vectors in limit
cycles of M,E'(X,M),E'(X,E'(X,M)),...   Call this set K'(X).    Take the
supervaluation of K'(X) and call it S'(X).     Find G(S'(X)).   Call it

Q(X) is <T,T,Para,Para,Para,F>, which is X.

Not all vectors are fixed points of the Q function.   For example if we
start with Y = <T,T,T,F,T,F>, then S'(Y) is <T,T,T,F,T,F>, A(S'(Y)) is
<Para,T,Para,Para,Para,Para>, and Q(Y) is <Para,T,Para,Para,Para,Para>.

Vectors which are fixed points of Q include:
Of these, the second is "better" than the first, because it gives a T ot
F value to something the first calls Para.   And the third is likewise
better than the second.    The third is a "best" vector - there is no
better vector.   There is not some other best vector which would be an
alternative to <F,T,Para,Para,T,F>.    This is the same solution which
we also reached by deciding which tokens were in the commentary and
which in the loop.

------- -- ---- - --- -- --------- -----
Sandy Hodges / Alameda,  California,   USA
mail to SandyHodges at attbi.com will reach me.

More information about the FOM mailing list