### worked example: if-then-machines

```    description:
if-then machines are my simplified model of neurons
they consist of several patterns that "trigger" the neuron, and then a resulting output ket
in this example we show they can implement simple logic, and a type of fuzzy logic

code:
-- if (A and B) then C
pattern |node: 1: 1> => |A> + |B>
then |node: 1: *> => |C>

-- if (A or B) then D
pattern |node: 2: 1> => |A>
pattern |node: 2: 2> => |B>
then |node: 2: *> => |D>

-- if (C and D) then E
pattern |node: 7: 1> => |C> + |D>
then |node: 7: *> => |E>

if-then |*> #=> then similar-input[pattern] words-to-list |_self>
if-then-2 |*> #=> (then similar-input[pattern])^2 words-to-list |_self>

if-then |*> #=> drop-below[0.98] then similar-input[pattern] words-to-list |_self>
if-then-2 |*> #=> (drop-below[0.98] then similar-input[pattern])^2 words-to-list |_self>

|null> => print |>
|null> => print |if (A and B) then C>
|null> => print |if (A or B) then D>
|null> => print |if (C and D) then E>
|null> => table[input, if-then, if-then-2] (|A> + |B> + |A and B>)

-- if ((E and F) or (G and H and I) or J) then K
pattern |node: 3: 1> => |E> + |F>
then |node: 3: *> => |K1>

pattern |node: 4: 1> => |G> + |H> + |I>
then |node: 4: *> => |K2>

pattern |node: 5: 1> => |J>
then |node: 5: *> => |K3>

pattern |node: 6: 1> => |K1>
pattern |node: 6: 2> => |K2>
pattern |node: 6: 3> => |K3>
then |node: 6: *> => |K>

|null> => print |if ((E and F) or (G and H and I) or J) then K>
|null> => table[input, if-then, if-then-2] (|E> + |F> + |G> + |H> + |I> + |J> + |G and H> + |G and I> + |H and I> + |E and F> + |G, H and I>)

examples:
-- first, the fuzzy version:

if (A and B) then C
if (A or B) then D
if (C and D) then E
+---------+-----------+-----------+
| input   | if-then   | if-then-2 |
+---------+-----------+-----------+
| A       | D, 0.50 C | 0.75 E    |
| B       | D, 0.50 C | 0.75 E    |
| A and B | C, D      | E         |
+---------+-----------+-----------+

if ((E and F) or (G and H and I) or J) then K
+------------+---------+-----------+
| input      | if-then | if-then-2 |
+------------+---------+-----------+
| E          | 0.50 K1 | 0.50 K    |
| F          | 0.50 K1 | 0.50 K    |
| G          | 0.33 K2 | 0.33 K    |
| H          | 0.33 K2 | 0.33 K    |
| I          | 0.33 K2 | 0.33 K    |
| J          | K3      | K         |
| G and H    | 0.67 K2 | 0.67 K    |
| G and I    | 0.67 K2 | 0.67 K    |
| H and I    | 0.67 K2 | 0.67 K    |
| E and F    | K1      | K         |
| G, H and I | K2      | K         |
+------------+---------+-----------+

-- now the non-fuzzy version:

if (A and B) then C
if (A or B) then D
if (C and D) then E
+---------+---------+-----------+
| input   | if-then | if-then-2 |
+---------+---------+-----------+
| A       | D       |           |
| B       | D       |           |
| A and B | C, D    | E         |
+---------+---------+-----------+

if ((E and F) or (G and H and I) or J) then K
+------------+---------+-----------+
| input      | if-then | if-then-2 |
+------------+---------+-----------+
| E          |         |           |
| F          |         |           |
| G          |         |           |
| H          |         |           |
| I          |         |           |
| J          | K3      | K         |
| G and H    |         |           |
| G and I    |         |           |
| H and I    |         |           |
| E and F    | K1      | K         |
| G, H and I | K2      | K         |
+------------+---------+-----------+

future:

source code: