A good overview of Boolean Reasoning is provided by Frank Markham Brown in "Boolean Reasoning, the logic of Boolean equations", 1990 and 2003.
Paraphrased from the book:
"Two main symbolic logic languages, Boole's Algebra of Logic and the predicate calculus. Boolean reasoning is based on Boolean equations rather than the predicate calculus. Boolean reasoning involves the prime implicants of Boolean equations f in a normal form."
Boolean reasoning is similar to but different than Boolean minimization.
Some earlier work in the systems engineering and operations research area is outlined in the book, "Boolean Methods in Operations Research and Related Areas," by Peter L. Hammer and Seriu Rudeanu, Springer-Verlag, 1968.
I am interested in current applications and approaches to compare to the work I am creating based on the work of John. N. Warfield.
Boolean equations are predicates; statements that can be true or false.
Boole use normal algebra symbols for is logic and I tend to use these standard operators with some slight modifications for matrix formulations.
The standard Boolean constants of zero (0) and one (1) were assigned the following meaning:
0 = nothing
1 = the universe
If you have a class C then 0 is a subset of C and C is a subset of the universe.
When 0 = false and 1 = true, the same type of set operations do not make sense.
Further, the value 0 can be assigned different natural language semantics.
For example, false, unknown and nothing can all be assigned to the value 0 in a Boolean equation. This type of assignment provides a bit more natural language semantic support in some cases, like requirements gathering.
The 2^n (or N Squared) aspects are a key component in the evaluation of binary relations that impact system structure.
In my view there are three (3) types of truth, formal, factual and value.
I tend to separate formal truth (logic) computational activities associated with a problem evaluation from the computational components associated with value and factual truth.
These different computational units are then integrated to provide system state feedback as well as guidance for any further evaluation activity.
A variety of computational methods may be used to address large scale systems but I find that evolutionary programming is effective in addressing the analysis of large search spaces.
In large-scale real systems design, development, deployment and operation, the three types of truth are combined in a number of very interesting ways.
Think of a sequential state machine that produces an advanced air craft or a reliable source of food for a nation. These real machines may be modeled as sequential state machines. A.D. Hall III in "Metasystems Methodology," 1989, Pergamon Press, discusses the three types of truth and how they impact large-scale systems analysis.
In real systems that are modeled as sequential machines, gathering information about the system state will cost money. If the empirical data associated with the sequential machine state model is also connected to a computational component that is able to logically infer state information, then the cost of collecting the empirical data will be reduced. One big 'so what" is project cost minimization.
I have created an approach that I call "Abstract Relation Types" (ART). ART is described in some of my papers on the ResearchGate site. The main idea is the creation of a computational construct that supports logical inference in one area and value based (real number) computations in another area. ART has three general "spaces", a marking space, a value space and an outcome space. The primary function of the marking space is the recording of the system structure, state and/or configuration using Boolean symbols, 0 and 1. The primary function of the value space is the encoding of the current system value structure as it relates to the system marking space. The primary function of the outcome space is the presentation of the ART analysis.
In the evolutionary computation, I use a best fit function that is a minimization function. Candidate solutions are randomly created and the best individuals in the population are selected to take to the next phase of population development. I work with the total system configuration and not individual components. At the global system level it is like "computing with systems." I have coined the term "system numbers" to represent the matrix formations in the ART spaces.
Please let me know if you have any further questions.
Some of the classical analysis approaches mixed structure information (Boolean logic) and value information (real numbers) in the same matrix form.
I simply separated the different types of information into different matrix representations.
Now the Boolean logic can be addressed in a well defined area and the value information can be addressed in a different area. These areas may be integrated in a number of ways depending on the objective of the analysis.
It appears to me that we are addressing different aspects of the same general type of problem. Your approach indicated above is interesting and I will have to think about it some more.
In my approach there are three spaces:
1 - Marking space -- Boolean symbols and operations in this space
2 - Value space -- Decimal real or integer or other distinct number system and associated operators applied in a clear documented fashion.
3 - Outcome space -- Number symbols and operators selected to fit the current problem solution design.
The integration and evaluation between the marking space and the value space is again another design decision. The mathematical operators and operations have to make sense.
I agree with you that you could design a set of operations that appeared to be gibberish and provided no insight into the problem at hand.
In my current work, the evaluation of the marking space and the value space are enabled by one or two simple rules. These rules are based on the similarity and differences between Boolean symbols and operations and decimal symbols and operations.
The Boolean addition table is:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 1
The Boolean multiplication table is:
0 * 0 = 0
0 * 1 = 0
1 * 0 = 0
1 * 1 = 1
The decimal addition table for the same symbols (0,1) is:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 2
The decimal multiplication table for the same symbols (0,1) is:
0 * 0 = 0
0 * 1 = 0
1 * 0 = 0
1 * 1 = 1
The only difference is in the addition of 1 + 1, everything else is the same.
This observation give the first rule: (convert from decimal to Boolean)
In decimal numbers, 0 = false (0) and any number greater than 0 = true (1).
The second rule is: (convert Boolean to decimal)
In Boolean numbers apply the decimal meaning to the value.
When these conversion rules are applied on operations that include the marking space and value space as function arguments. These rules are applied between the spaces not in an individual space. The mathematical rules and operations inside each space are well defined and usually have Boolean symbols and operations in the marking space and decimal, binary or other well defined set of symbols and operators in the value space.
A simple marking space, value space operation can be viewed as a "masking operation." Using a masking operation only the values from the value space that are associated with a 1 value in the marking space are shown in the outcome space. This is a cell by cell matrix operation between the two matrices.
One of the main drivers of my current work is the reproduction and validation of some systems science work from the 1960's and 1970's.
The mathematical symbols and operations were outlined and detailed in that classical set of work.
You are also correct in pointing out that I did not carefully define the function and operators range and domain. It would not make much sense to use a real 0 and 1 only, except when you are constrained by computer based data types. But natural numbers, positive integers including zero, seem to be the most useful number set.
In reviewing the the existing computational tools available today, I looked at a number of computational math tools. One math tool is GNU Octave and it uses the data type transforms listed previously. Another tool is SAGE math from the University of Washington. As you point out, the short cuts taken in the GNU Octave tool are not allowed in the SAGE math tool.
The main "so what" is practical convenience when working with large scale systems represented as matrices and/or equations.
The ability to represent a system configuration as a Boolean matrix is very convenient. One aspect of this convenience is the ability to generate directed graphs from a Boolean or binary matrix.
The graphics help communicate the system structure to a wide range of individuals. Most individuals relate better to a graphic of a detailed network that an equation of a detailed network.
The mathematics are used in combination with prose and graphics to clearly communicate about large scale systems.
SAGE has a nice graphic facility associated with the tool.
We are headed out for our holiday break...
Will be back on line toward the end of September, first of October.
One may find a valuable application area where replacing the coefficients in value matrix makes sense.
Up until now, I have not found an application where that operation would be useful.
I use distinct matrix forms with a restricted set of symbols and operations in each matrix.
When a functional operation needs to integrate a Boolean matrix ( a matrix using Boolean operators and the symbols 0 and 1) and a matrix that is composed of operations and symbols that are different than Boolean the outcomes of the functional operation is recorded in a new matrix in the outcome space. The original input matrices are left in their original forms.