# indexing boolean algebra

Boolean algebra can be encoded by indexing, for example, a venn diagram for two sets: \(A\) and \(B\) divide diagram to four parts: \(1, 2, 3, 4\). Thus

- \(A = \{1, 2\}\)
- \(B = \{1, 3\}\)
- \(A \cup B = \{1, 2, 3\}\)
- \(A \cap B = \{1\}\)
- \((A \cup B)' = \{4\}\)

The benefit of the encoding is the encoding let any sets can be treated as finite sets operation. So for any set check a boolean algebra is valid, indexing helps you check them by computer.

## 1. Encoding to program

(define I (set 1 2 3 4)) (define A (set 1 2)) (define B (set 1 3)) (define ∅ (set)) (define ∩ set-intersect) (define ∪ set-union) (define (not S) (set-subtract I S)) (define (→ A B) (∪ (not A) B)) (define (- A B) (∩ A (not B))) (define (≡ A B) (∪ (∩ A B) (∩ (not A) (not B))))

## 2. Checking based on encoding

Now, you can check \(A \to B = (A - B)'\) by the following program.

(equal? (→ A B) (not (- A B)))

And you will know \((A \cap (A - B)') = \emptyset\) is invalid since the following program returns false.

(equal? (∩ A (not (- A B))) ∅)

## 3. Futher

You can even extend this method for \(A, B, C\), for \(A, B, C, D\) and so on, but then that's too far for this article.