The fear of insufficiency

I began the next section of discrete math. It covers predicates and quantifiers. These are the loops of the logic world, stretched blankets over exact universes. One quantification, the universal, implies a long conjunction: for every  x1-x2-dot-dot-dot-xn, apply AND to each of them. It takes one counterexample to show a universal quantification false.

I met the propositional function P(x), which encapsulates the subject and predicate of a statement. Specifying the domain lets us assign values to the variable. Since we’re in logic land, each such assignment evaluates to a truth value, True or False.

Multiple variables create instances of tuples. Databases also use the term tuple. Could the row of a database be an instance of a long function P(a, b, c, …, z)? The binding of one or more of those variables specifying uniqueness, and each row mapped to an array with one less dimension: tables as 2D, mappings as collapse to 1-dimensional, linear collections.

But I speak of fear. One example had math: x2-ge-x. Rosen broke it down to x-times-x-minus-1-ge-0. Then he goes to say it’s true if and only if x-le-0 or x-ge-1. How did he get there? I became worried that my math journey would abruptly cease at section three, chapter one.

Wolfram Alpha gave hints, but ultimately I made a table:

Universe: real numbers
x    x*(x-1)  x*(x-1)>=0
-2.0 6        T
-1.5 3.75     T
-1.0 2        T
-0.5 2.25     T
0    0        T
0.5  -0.25    F
1.0  0        T
1.5  0.25     T
2.0  2        T

Somewhere between 0 and 1, the values we assign to the x variable do not result in a true inequality. Another way to say “x <= 0 or x >=1” is 0-lt-x-lt-1. Can we believe that, though? What if there’s some number 0.000029482 that satisfies greater than or equal to zero? We can think through some assumptions:

x*(x-1) >= 0
A. if x = 0, x*(x-1) = 0
B. if x < 0,
x * (x - 1) >= 0
(x - 1) <= 0     | divide by x (-), switches sign
x <= 1           | add 1 to both sides
x >= 1           | multiply by -1 on both sides (x is -)

The inequality is true when x <= 0.

x*(x-1) >= 0
A. if x = 1, x*(x-1) = 0
B. if x > 1,
x * (x - 1) >= 0
(+) * (+) >= 0   | positive times positive is >= 0

The inequality is also true when x >= 1.

x*(x-1) >= 0
if 0 < x < 1,
x * (x - 1) >= 0
(+) * (-) >= 0 ? | x (less than 1) minus 1 is negative (so, False)

When x is between 0 and 1, the inequality is false. Going back to the universal quantifier, for every x, P(x), with the domain of all real numbers, is false.

I generalized the process thus:

  • Gather “data”: make a table. play with numbers. fiddle around. You are the compiler.
  • Discover the “rules”: 0 < x < 1
  • Check yourself: if x <= 0, if x >= 1, if 0 < x < 1
  • Conclude: agree with the author or disagree; move on