17) Extending and improving the bit-crunching Algorithm “Iphigenia”

Algorithm “Iphigenia” was invented in 1987 and implemented as a demo program (“bitprover”) in 1990. Soon afterwards, it became evident that the dream of creating optical computing hardware using this algorithm (in cooperation with Dr. Nikos Vainos) had to be postponed indefinitely due to lack of funds. So, all further work on this algorithm was suspended, while I became involved in other types of work (article writing and software dictionary development). However, in recent work reviving this algorithm, it became evident that the range of logic expressions, which can be stored as “bit-patterns for logic deduction”, can be extended in a number of ways. For example:

(using two independent copies of the bit-array knowledge base). The results are easy to get:

000 010 (A#1,B)#1 -isolated bit - row
010 100 (A,B#1)#1
010 000 (B#1,C)#1
001 010 (B,C#1)#1
100 001 (A#1,C) -logic query (1): “
A=>C ” ?

100 010 (A#1,B)#1
010 000 (A,B#1)#1
010 001 (B#1,C)#1
000 010 (B,C#1)#1 -isolated bit - row
001 100 (A#1,C) -logic query (2): “
C=>A” ?

The “next generations” (after “transferring isolated bits diagonally” by rule “RDT”) are:

010 100 (A,B#1)#1
0
10 000 (B#1,C)#1 -“zeroed row” (i.e. result = “TRUE”)
0
01 010 (B,C#1)#1
110 001 (A#1,C) -a new bit transferred diagonally

100 010 (A#1,B)#1
010 000 (A,B#1)#1 -“zeroed row” (i.e. result = “TRUE”)
010 001 (B#1,C)#1
011 100 (A#1,C) -a new bit transferred diagonally

So it was straightforward to answer the query “A=C”, proving it true (given “A=B and B=C”).

The range of logic expressions which can be converted to Iphigenia-compatible bit-encoded arrays can of course be extended further. Readers familiar with PROLOG and Horn Clause Logic may have realised that each “bit-encoded row”, in such a logic system, resembles a Prolog Clause of the form
Goal <= A and B and C...” - except that (at this stage) such expressions do not contain variables. Now, since (almost) any logic expression can be translated to Horn-Clauses, it can also be translated into “bit-array patterns” for bit-crunching algorithm “Iphigenia”.

The only real problem is how to deal with variables and predicate logic expressions, rather than propositional logic expressions.

Well, here are some crucial steps, on the road to arriving there:

Next section:

Elementary Variables and Unifications in Multiple Form Logic