Logic
Home ] Up ]

 

Home
Photo Album
Philosophy
Work
Copyright
Resume
Links
Glossary

I am trying to extend the binary (boolean) logic into a somewhat "fuzzy" one. I consider the binary logic to be too restricted.

Terms:

R is the set of real numbers
S is a subset of R
B is the set on which the logic is applicable
0 is a specific member of B, with the meaning of "completely false"
1 is a specific member of B, with the meaning of "completely true"
"-" is the subtraction operator in R
"+" is the addition operator in R
"*" is the multiplication operator in R
"x" is the set multiplication operator
"==" means "is defined as"

1. Binary logic (definitely true, or definitely false)

B1 = {0, 1}   a, b in B1

Three basic operations: non, and, or

non

a = 0   non a = 1
a = 1   non a = 0

and

a = 0, b = 0   a and b = 0
a = 0, b = 1   a and b = 0
a = 1, b = 0   a and b = 0
a = 1, b = 1   a and b = 1

or

a = 0, b = 0   a or b = 0
a = 0, b = 1   a or b = 1
a = 1, b = 0   a or b = 1
a = 1, b = 1   a or b = 1

Observation: In binary logic, a and (non a) is always 0 (false), a or (non a) is always 1 (true).

2. First-grade fuzzy logic (probabilities)

B2 = [0, 1]   a, b in B2   (B2 is a part of R, the set of real numbers)

non a == 1 - a   (with "-" being the minus operator in R)
a and b == a * b   (with "*" being the multiplication operator in R)
a or b == non ((non a) and (non b))

Observation: In fuzzy logic, "tertium non datur" (there's no third possibility) no longer holds. In other words, a and (non a) can be different than 0 (not entirely false), and a or (non a) can be different than 1 (not entirely true).

3. Second-grade fuzzy logic (probability ranges)

B3 = [0, 1] x [0, 1]   a, b in B3   ("x" is the set multiplication operator)

(In this case, a member x of B3 has the form of a tuple (x1; x2).)

non a == (1 - a1; 1 - a2)
a and b == (a1 * a2; b1 * b2)
a or b == non ((non a) and (non b)) = (a1 + b1 - a1 * b1; a2 + b2 - a2 * b2)

4. Third-grade fuzzy logic (probability functions)

In this case, the probability is no longer fixed (as a number or an interval), but depends on a variable which is a member of S (a subset of R).

B4 = {f : S -> [0; 1]}   0 == f(x) = 0   1 == f(x) = 1

a, b in B4(S) - that is, a certain B4; a and b are actually a(x) and b(x)

non a == -a(x) == 1 - a(x)
a and b == a(x) * b(x)
a or b == non ((non a) and (non b)) = a(x) + b(x) - a(x) * b(x)

5. There could be a fourth-grade fuzzy logic, if the functions can have any real result (not only in the [0, 1] interval), if we also add a "mapping function" which takes the result and "maps" it into the [0, 1] interval. But I really don't know how would I interpret the meaning of "and" applied to two such functions :)

 

Ok, that was it. I don't know how useful this was (if at all <g>). But it was a whim anyway, not intended to have any usefulness.

This page was last updated on 18 Oct 1999.