chriswarbo-net: 1c40889eec8bac6b75363626cd3a83b909ddaba7
1: ---
2: title: "Ivory: Adjoins And Quotients"
3: ---
4:
5: We've seen how [sums and products](sums_and_products.html) determine the
6: structure of Ivory expressions. Now we'll define the elements of these sums and
7: products.
8:
9: ## Adjoining ##
10:
11: Each level of the Ivory tower includes the levels above. In algebraic terms,
12: each is an [extension](https://en.wikipedia.org/wiki/Field_extension) of the
13: level above, with extra values *adjoined*. The result of this "adjoining" is a
14: level containing:
15:
16: - All of the values of the level above.
17: - The value we adjoined.
18: - All sums and products of those values, AKA the *closure* of addition and
19: multiplication.
20:
21: The power of this approach comes from taking the closure. For example, we can't
22: turn `natural`{.scheme} into `integer`{.scheme} by appending each negative
23: number separately. Yet if we allow arbitrary products, we only need to append
24: `(- 1)`{.scheme} directly: every other negative `integer`{.scheme} will arise as
25: the product of `(- 1)`{.scheme} with an existing `natural`{.scheme}.
26:
27: The following levels are extensions in this way:
28:
29: - `zero`{.scheme} adjoins the value `0`{.scheme} to `void`{.scheme}.
30: - `natural`{.scheme} adjoins the value `1`{.scheme} to `zero`{.scheme}.
31: - `integer`{.scheme} adjoins the value `(- 1)`{.scheme} to `natural`{.scheme}.
32: - `dyadic`{.scheme} adjoins the value `(^ 2 (- 1))`{.scheme} to
33: `integer`{.scheme}.
34: - `sexagesimal` adjoins the values `(^ 3 (- 1))`{.scheme} and
35: `(^ 5 (- 1))`{.scheme} to `dyadic`{.scheme}.
36: - `geometric`{.scheme} adjoins values of the form `(i n)`{.scheme},
37: `(h n)`{.scheme} and `(d n)`{.scheme} to `scalar`{.scheme}.
38: - `
39:
40:
41:
42: On its own, these
43:
44: New element symbols are *adjoined* which introduces new symbols; and *quotients*.
Generated by git2html.