Monday, September 04, 2017

Alternative Hexadecimal Digits: Published

Valdis and I wrote up our final version of the hexadecimal digits in the form of a proposal and got it published in the IJCSET.  See here.  The proposal includes descriptions and assessments of various other proposed sets of hexadecimal digits.  Unfortunately, we missed a good set called Birkana that are rune-like symbols.

In case anyone wants to see our digits used for practical purposes, I made a JavaScript digital clock that uses our digits to display hours, minutes and seconds as hexadecimal numbers.


Sunday, April 17, 2016

A Cancel Button for somerby.net/mack/logic

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.

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!

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

⌜∼ϕ⌝ 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′))))))))

Saturday, July 11, 2015

Binary Operators in somerby.net/mack/logic

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

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:
  • 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 considered several possible sets of digits before settling on this one.  We choose this new set of digits because 
  1. We find it is the easiest to encode and decode.
  2. We find that pairs of these digits can be combined into readable ligatures.
Valdis has created fonts for the digits and ligatures, which I have incorporated into a branch of the Hex Editor plugin for Notepad++ .  It has all the features of the mainline Hex Editor plugin, but also offers the option of viewing hexadecimal data with the new characters in place of the traditional 0-9A-F.  If you'd like to use it, then download this zip file and run the setup executable contained therein:
The fonts look like this:

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.