Practical people have often found it easier to express complex mathematical expressions by using a two dimensional grid of values or expressions. They can be manipulated as precisely as other formulae but are often quicker to write and easier to read.
Where the table, row and col uniquely determine the text of the Item
To be precise the above are partial tables - it is possible for there to be no Text associated with a particular entry in the table. A table is complete if every Entry has a Text (even if empty):
.Table heading
.Row item item item
.Item item item
...
.Close.TableThe items in each column areseparated by either a tab in a line or the keyword .Item at the start of a line. Rows start with the keyword .Row.
.Table x<y x=y x>y
.Row max'=y max'=x max'=x
.Row min'=x
.Item min'=y
.Item min'=y
.Close.Table[ Extended Dynamic And/Or tables ] below
. . . . . . . . . ( end of section Concrete Syntax) <<Contents | End>>
Here is a compressed form where vaule are put under both variables
and operators:
Table
( | P | and | Q | ) | <= | P |
---|---|---|---|---|---|---|
( | 1 | 1 | 1 | ) | 1 | 1 |
( | 0 | 0 | 1 | ) | 1 | 0 |
( | 1 | 0 | 0 | ) | 1 | 1 |
( | 0 | 0 | 0 | ) | 1 | 0 |
- | P | not P |
---|---|---|
Q | 1 | 1 |
not Q | 1 | 1 |
In theory, the values in a Karnaugh map can be symbols or expressions. The result are the same as [ Function Tables ] below. [click here if you can fill this hole]
There are two forms. The
simplest one lists conditions and actions in the first
column and truth values (T,F,-) in the top columns, and
letters in the lower half:
Table
Conditions | 1 | 2 |
---|---|---|
x<y | T | F |
Actions | ||
min:=x | A | - |
max:=y | B | - |
max:=x | - | A |
min:=y | - | B |
- | Rules | 1 | 2 |
---|---|---|---|
C1 | x<y | T | F |
A1 | min:=x | A | - |
A2 | max:=y | B | - |
A3 | max:=x | - | A |
A4 | min:=y | - | B |
The only problem people have experienced with decision tables is in maintaining them. Editting manual decision tables is not easy.
Name | Number |
---|---|
Jane Roe | 123-456-7890 |
A table with headers and many rows is an instance of a data base:
Table
Name | Number |
---|---|
Jane Roe | 123-456-7890 |
John Doe | 123-456-7809 |
Queries can be expressed by tables with blank entries.
Condition | 1 | 2 |
---|---|---|
height<200 | F | T |
height<100 | - | T |
dropping | T | - |
The above table states the following condition:
The first column contain predicates and the remaining columns contain "T", "F", "-"(don't care). "T" means the predicate is true and "F" means it is false. Each column means the conjunction(and) of the rows. The table is the disjunction(or) of the meanings of the columns.
And/Or are used to define, describe, and analyse complex conditions. They are said to be palatable to normal people: [HeimdahlLeveson96] and [LevesonEtal99] for evidence.
All the standard propositions can be expressed using And/Or tables. Further there are simple (if O(2^n)) algorithms that combine them to derive conclusions, prove results, or find counter examples.
Condition | 1 | 2 |
---|---|---|
P | T | - |
Q | - | T |
Condition | 1 |
---|---|
P | T |
Q | T |
Condition | 1 | 2 |
---|---|---|
P | F | - |
Q | - | T |
Condition | 1 |
---|---|
P | F |
Condition | 1 | 2 |
---|---|---|
P | F | - |
Q | - | F |
Condition | 1 |
---|---|
P | F |
Q | F |
Condition | 1 |
---|---|
P | T |
Q | F |
An interesting avenue of research is to interpret these entries as sets of possible values of expressions. The following re-expresses ex1 using symbolic sets as well as conditions. Here the don't care condition "-" indicates the set {T,F}.
Condition | 1 | 2 |
---|---|---|
height | 0..100 | 100.. |
dropping | T | - |
Using [ X/Y Tables ] below we can express Fuzzy Logic [ FUZZY ] as well as standard propositional logic.
An example would be good, but my notation and HTML do not easily express all the nuances of these tables: [click here if you can fill this hole]
would be tabulated as follows:
Table
x<y | T | F | F |
x=y | F | T | F |
x>y | F | F | T |
max'=y | T | T | F |
max'=x | F | T | T |
min'=x | T | T | F |
min'=y | F | T | T |
could be tabulated as follows:
Table
(x,y) in | < | = | > |
---|---|---|---|
max'= | y | x | x |
min'= | x | y | y |
If we permit expressions as entries we end up with trace tables:
Table
x<y | x=y | x>y |
---|---|---|
max'=y | max'=x | max'=x |
min'=x | min'=y | min'=y |
Source: Zelkowitz Trace.*table
For example the relation expression:
is tabulated like this:
Table
x<y | x=y | x>y |
---|---|---|
min:=x | min:=y | max:=x |
max:=y | max:=min | min:=y |
(*)/(+) | ||
---|---|---|
a | b | c |
x^2 | x | 1 |
Note. A serial operator (like and, or, +, *, &, |, etc) can be used as a function of a vector as well as an infix operator:
For example here is a Composition/Union table showing the WWW standard for encoding data:
(;)/(|) | |||
---|---|---|---|
letter | digit | space | char~(letter|digit|space) |
Id | Id | plus | "%" hex |
(;)/(|) | ||||
---|---|---|---|---|
letter | digit | space | plus | char~(letter|digit|space|plus) |
Id | Id | plus | Id | "%" hex |
X and Y (above) could be the intersection and union operators of standard set theory [ Extended And/Or Tables ] or of Fuzzy Set Theory:
. . . . . . . . . ( end of section Applications) <<Contents | End>>
. . . . . . . . . ( end of section Tabular Notations) <<Contents | End>>
Proofs follow a natural deduction style that start with assumptions ("Let") and continue to a consequence ("Close Let") and then discard the assumptions and deduce a conclusion. Look here [ Block Structure in logic_25_Proofs ] for more on the structure and rules.
The notation also allows you to create a new network of variables and constraints. A "Net" has a number of variables (including none) and a number of properties (including none) that connect variables. You can give them a name and then reuse them. The schema, formal system, or an elementary piece of documentation starts with "Net" and finishes "End of Net". For more, see [ notn_13_Docn_Syntax.html ] for these ways of defining and reusing pieces of logic and algebra in your documents. A quick example: a circle might be described by Net{radius:Positive Real, center:Point, area:=π*radius^2, ...}.
For a complete listing of pages in this part of my site by topic see [ home.html ]
For a more rigorous description of the standard notations see