Good news: somerby.net/mack/logic now has a cancel button. If a decision is taking too long, you can cancel it and continue working. You don't have to close the browser anymore.

Bad news: somerby.net/mack/logic is not working in Internet Explorer, or at least it isn't working in Internet Explorer 11 on my computer. I'll try to fix it soon.

It works for me in Chrome and Firefox. I'd appreciate it if anyone tells me whether or not its working for them in other browsers. Just leave a comment on this post.

## Sunday, April 17, 2016

## Monday, February 15, 2016

### A New Web App: "Expanding Quine's Definitions"

I've been messing around with code that creates symbolic definitions of the number one for quite a while: these blog posts show some of the results. All this messing around has culminated in a web app:

http://somerby.net/mack/definitions/. With it, you can expand Quine's definition of the number one interactively in various ways, and also many other of his definitions. What fun!

http://somerby.net/mack/definitions/. With it, you can expand Quine's definition of the number one interactively in various ways, and also many other of his definitions. What fun!

Labels:
foundations of mathematics,
software

## Tuesday, December 29, 2015

### The Number One, Part Three

In an earlier post, "What it Means to be Number One", I presented Quine's definition of the number one, which is defined in terms of four basic mathematical constructs: class membership (⌜α ϵ β⌝), universal generalization (⌜(α)ϕ⌝), joint denial (⌜(ϕ ↓ ψ)⌝), and class abstraction (⌜α^ϕ⌝). It is six pages of dense text. In another post, "The Number One, Part Two", I claimed that the length of the definition is "the result of giving the number one a precise, complete, logical
definition without resorting to using any numbers except zero". This is not quite true. I've since realized that the size comes not from precision, completeness nor logicality, but from Quine's definition of negation, which is

⌜∼ϕ⌝

This is definition is important because it enables his system to define all truth-functional connectives in terms of just one truth-functional connectives, thereby minimizing the number of basic constructs in his system. But it does have the effect of making expanded definitions quite large. You see, any time a negation is expanded, the expression which is negated (ϕ) is duplicated in the resulting expansion. If that expression also contains negated expressions, then those expressions are quadrupled, and if those negated expressions contain negated expressions, they are octupled, and so on. The result is an exponential relationship between the size of an expanded definition and the number of layers of negation in the definition. Those of you who know computer science know that exponential relationships mean huge outputs for all but the smallest inputs. Hence the 6-page definition of one. If we expand all constructs contained in Quine's definition of one

which is not shockingly complicated. Even if we expand statements of membership in and of class abstractions in this definition (which is something I did not do in "What it means to be..."), the definition of one is still just

which is more than anyone would want to try to write or memory, but still not embarrassingly long. If we don't expand any of the truth-functional connectives, nor existential quantification, the result is something that it almost readable by a person who is familiar with symbolic logic:

⌜∼ϕ⌝

*for*⌜(ϕ ↓ ϕ)⌝This is definition is important because it enables his system to define all truth-functional connectives in terms of just one truth-functional connectives, thereby minimizing the number of basic constructs in his system. But it does have the effect of making expanded definitions quite large. You see, any time a negation is expanded, the expression which is negated (ϕ) is duplicated in the resulting expansion. If that expression also contains negated expressions, then those expressions are quadrupled, and if those negated expressions contain negated expressions, they are octupled, and so on. The result is an exponential relationship between the size of an expanded definition and the number of layers of negation in the definition. Those of you who know computer science know that exponential relationships mean huge outputs for all but the smallest inputs. Hence the 6-page definition of one. If we expand all constructs contained in Quine's definition of one

*except*negation, the result is not so big. It is*x*^∼(*y*)∼(∼(*y*ϵ*x*) ↓ ∼(α^(∼(α ϵ*x*) ↓ ∼(α ϵ α′^(∼(α′ ϵ α′′^((α′′′)(∼∼(∼(α′′′ ϵ α′′) ↓_{▪}α′′′ ϵ*y*) ↓ ∼∼(∼(α′′′ ϵ*y*) ↓_{▪}α′′′ ϵ α′′))))))) ϵ α^((α′)(∼∼(∼(α′ ϵ α) ↓_{▪}α′ ϵ*x*′^(∼((α′′)(∼∼(∼(α′′ ϵ*x*′) ↓_{▪}α′′ ϵ*x*′) ↓ ∼∼(∼(α′′ ϵ*x*′) ↓_{▪}α′′ ϵ*x*′))))) ↓ ∼∼(∼(α′ ϵ*x*′^(∼((α′′)(∼∼(∼(α′′ ϵ*x*′) ↓_{▪}α′′ ϵ*x*′) ↓ ∼∼(∼(α′′ ϵ*x*′) ↓_{▪}α′′ ϵ*x*′))))) ↓_{▪}α′ ϵ α)))))which is not shockingly complicated. Even if we expand statements of membership in and of class abstractions in this definition (which is something I did not do in "What it means to be..."), the definition of one is still just

*x*^∼(*y*)∼(∼(*y*ϵ*x*) ↓ ∼(∼(γ)∼(∼(∼(β)∼(∼((α)(∼∼(∼(α ϵ β) ↓_{▪}∼(γ′)∼(∼(α ϵ γ′) ↓ ∼(α′)∼(∼(α′ ϵ γ′) ↓ (∼(α′ ϵ*x*) ↓ ∼(∼(γ′′)∼(∼(α′ ϵ γ′′) ↓ ∼(α′′)∼(∼(α′′ ϵ γ′′) ↓_{▪}∼(∼(γ′′′)∼(∼(α′′ ϵ γ′′′) ↓ ∼(α′′′)∼(∼(α′′′ ϵ γ′′′) ↓_{▪}(α′′′′)(∼∼(∼(α′′′′ ϵ α′′′) ↓_{▪}α′′′′ ϵ*y*) ↓ ∼∼(∼(α′′′′ ϵ*y*) ↓_{▪}α′′′′ ϵ α′′′)))))))))))) ↓ ∼∼(∼(∼(γ′)∼(∼(α ϵ γ′) ↓ ∼(α′)∼(∼(α′ ϵ γ′) ↓ (∼(α′ ϵ*x*) ↓ ∼(∼(γ′′)∼(∼(α′ ϵ γ′′) ↓ ∼(α′′)∼(∼(α′′ ϵ γ′′) ↓_{▪}∼(∼(γ′′′)∼(∼(α′′ ϵ γ′′′) ↓ ∼(α′′′)∼(∼(α′′′ ϵ γ′′′) ↓_{▪}(α′′′′)(∼∼(∼(α′′′′ ϵ α′′′) ↓_{▪}α′′′′ ϵ*y*) ↓ ∼∼(∼(α′′′′ ϵ*y*) ↓_{▪}α′′′′ ϵ α′′′)))))))))))) ↓_{▪}α ϵ β))) ↓ ∼(β ϵ γ))) ↓ ∼(α)∼(∼(α ϵ γ) ↓_{▪}(α′)(∼∼(∼(α′ ϵ α) ↓_{▪}∼(γ′)∼(∼(α′ ϵ γ′) ↓ ∼(*x*′)∼(∼(*x*′ ϵ γ′) ↓_{▪}∼((α′′)(∼∼(∼(α′′ ϵ*x*′) ↓_{▪}α′′ ϵ*x*′) ↓ ∼∼(∼(α′′ ϵ*x*′) ↓_{▪}α′′ ϵ*x*′)))))) ↓ ∼∼(∼(∼(γ′)∼(∼(α′ ϵ γ′) ↓ ∼(*x*′)∼(∼(*x*′ ϵ γ′) ↓_{▪}∼((α′′)(∼∼(∼(α′′ ϵ*x*′) ↓_{▪}α′′ ϵ*x*′) ↓ ∼∼(∼(α′′ ϵ*x*′) ↓_{▪}α′′ ϵ*x*′)))))) ↓_{▪}α′ ϵ α))))))which is more than anyone would want to try to write or memory, but still not embarrassingly long. If we don't expand any of the truth-functional connectives, nor existential quantification, the result is something that it almost readable by a person who is familiar with symbolic logic:

*x*^(∃*y*)(*y*ϵ*x*_{▪}(∃γ)((∃β)((α)(α ϵ β_{▪}≡_{▪}(∃γ′)(α ϵ γ′_{▪}(α′)(α′ ϵ γ′_{▪}⊃ (α′ ϵ*x*_{▪}(∃γ′′)(α′ ϵ γ′′_{▪}(α′′)(α′′ ϵ γ′′_{▪}⊃_{▪}∼((∃γ′′′)(α′′ ϵ γ′′′_{▪}(α′′′)(α′′′ ϵ γ′′′_{▪}⊃_{▪}(α′′′′)(α′′′′ ϵ α′′′_{▪}≡_{▪}α′′′′ ϵ*y*))))))))))_{▪}β ϵ γ)_{▪}(α)(α ϵ γ_{▪}⊃_{▪}(α′)(α′ ϵ α_{▪}≡_{▪}(∃γ′)(α′ ϵ γ′_{▪}(*x*′)(*x*′ ϵ γ′_{▪}⊃_{▪}∼((α′′)(α′′ ϵ*x*′_{▪}≡_{▪}α′′ ϵ*x*′))))))))
Labels:
foundations of mathematics,
the number one

## Saturday, July 11, 2015

### Binary Operators in somerby.net/mack/logic

Binary Operators in somerby.net/mack/logic now have different precedences. See here.

Labels:
UPL

## Sunday, June 21, 2015

### Alternative Hexadecimal Digits

I've been collaborating with Valdis Vītoliņš on hexadecimal digits. The result is a new set of digits:

They follow a design where the horizontal strokes represent 1, 2 and 4 in the binary composition of the number which each digit is supposed to represent. The rules for constructing the digits are:

The fonts look like this:

They follow a design where the horizontal strokes represent 1, 2 and 4 in the binary composition of the number which each digit is supposed to represent. The rules for constructing the digits are:

- 0 is represented by a digit that looks like an 'o' or a '6'.
- 8 is represented by a digit that looks like a miniscule rho or a 'P'.
- Numbers 1-7 and 9-15 are represented by digits whose shape follows this plan:

- We find it is the easiest to encode and decode.
- We find that pairs of these digits can be combined into readable ligatures.

The fonts look like this:

Labels:
hexadecimal numbers,
software

## Sunday, May 24, 2015

### Hexadecimal Digits AND Ligatures!

A few years ago, I posted a set of hexadecimal digits that I invented that could serve as an alternative to the customary 0-9 and A-F. My idea was to make a set of digits that could be represented in the standard numeric LCD display where the digit somehow represented a binary version of the number it represents. See here. Now someone has done one better. In the blog post "We think about yotabytes, but can't handle just one byte", Valdis Vītoliņš describes a hexadecimal of his own invention based on the same idea which adds one innovation; he combines pairs of digits into ligatures, thereby creating a system of 256 symbols that can represent numbers 0 though 255. That's one symbol for each possible byte value, and the numeric value for each symbol can be read out of its shape with a simple algorithm. If you're a programmer <ahem>,

*software engineer,*like me, who looks at hex dumps often, this is an intriguing idea. I might actually try use this.

Labels:
hexadecimal numbers

## Sunday, May 03, 2015

### Counterexample Feature Completed for somerby.net/logic

The "Counterexample" button now works for modal statements as well as non-modal statements in somerby.net/mack/logic.

Labels:
UPL

Subscribe to:
Posts (Atom)