WEBVTT

1
00:00:00.180 --> 00:00:03.907
Why keep both a graph and a matrix?

2
00:00:03.907 --> 00:00:09.689
The repository can represent the same Boolean rule as a written expression, a compiled graph,

3
00:00:09.689 --> 00:00:17.131
or an explicit grid of answers. Our example takes exclusive-or between A AND B and C OR D.

4
00:00:17.131 --> 00:00:22.877
We will compare what these objects contain and learn
which questions each representation can answer.

5
00:00:23.057 --> 00:00:25.878
The root operation is exclusive-or.

6
00:00:25.878 --> 00:00:31.370
Its left child computes A and B; its right child computes C or D.

7
00:00:31.370 --> 00:00:36.455
At the leaves are four variables. This tree describes how to compute a result.

8
00:00:36.455 --> 00:00:41.249
It does not yet contain a separate output cell for every possible assignment.

9
00:00:41.429 --> 00:00:44.808
The public compile expression function builds a compiled

10
00:00:44.808 --> 00:00:50.392
object containing a node graph and an expression hash.

11
00:00:50.392 --> 00:00:55.500
The builder normalizes supported operations and can share repeated structure.

12
00:00:55.500 --> 00:01:01.781
Compilation prepares a representation that later evaluators or materializers can use;

13
00:01:01.781 --> 00:01:05.055
it is not itself a dense output matrix.

14
00:01:05.235 --> 00:01:11.899
To make a dense CM, declare row variables A B and column variables C D.

15
00:01:11.899 --> 00:01:17.367
The repository uses false-first binary order, zero-zero through one-one.

16
00:01:17.367 --> 00:01:24.960
That differs from the paper’s true-first examples. Each output
cell is now the rule evaluated at one complete assignment.

17
00:01:25.140 --> 00:01:29.749
Choose A one, B one, C zero, D zero.

18
00:01:29.749 --> 00:01:35.635
AND produces one, OR produces zero, and the root exclusive-or produces one.

19
00:01:35.635 --> 00:01:40.872
This assignment selects row three and column zero in the repository layout.

20
00:01:40.872 --> 00:01:44.214
The same answer appears in that matrix cell.

21
00:01:44.394 --> 00:01:48.457
An expression hash helps identify a stored expression structure.

22
00:01:48.457 --> 00:01:53.357
It is not a proof that all logically equivalent formulas have the same key. For example,

23
00:01:53.357 --> 00:01:59.940
distributivity gives two equivalent formulas with different
expression structures. Their truth tables agree,

24
00:01:59.940 --> 00:02:05.637
but the repository’s expression hashes differ in our checked example.

25
00:02:05.817 --> 00:02:11.367
Suppose you receive a sixteen-entry array together with the row and column variable lists.

26
00:02:11.367 --> 00:02:16.777
Is that an expression graph, an explicit CM, or merely a hash key?

27
00:02:16.777 --> 00:02:28.805
Identify the artifact by what it contains and what you can do with it.

28
00:02:28.985 --> 00:02:34.569
The array with its axis lists is an explicit CM. It lets you address stored results.

29
00:02:34.569 --> 00:02:39.747
A graph stores operations and dependencies; a hash is an identity key.

30
00:02:39.747 --> 00:02:46.388
Next we will build this exact example using the actual public API, then validate every lookup.
