LOGIC in a Nutshell: Theory & Application (including a Forth simulator, and digital circuit design)


This article looks at Propositional Logic, also called Statement Calculus, from a combinatorial and algebraic point of view (Sections 3-6), its implementation in software (Section 7), and its application to digital electronics (Section 10). Historical sections cover the shift in viewpoint from classical logic based on Aristotle’s syllogism to modern symbolic logic (Section 2) and the axiomatization of logic (Section 9). (See logic sourcebook for the original source papers (1830-1881) that drove this shift.)

In Section 7, we implement the grammar of the statement calculus in the Symbolic Logic Simulator (SLS), a program written in 28 lines of Forth code, that allows computer-aided verification of any theorem in Propositional Logic (see Appendix 1 for source code). The program makes it straight-forward to explore non-obvious logical identities, and verify any propositional logic theorem or conjecture, in particular see Appendix 2 for key identities in the statement calculus (duality, algebraic, and canonical identities).

The concept of linguistic adequacy is developed in Section 8 and the NAND Adequacy Theorem is proved showing that NAND can generate all logical operations. A corollary is that any digital logic circuit can be built up entirely using NAND gates, illustrated using the free Digital Works software.

Continue reading this article…

How Algebra became abstract: George Peacock & the birth of modern algebra (England, 1830)

In this article we look at the ideas of George Peacock whose 700-page opus A Treatise on Algebra (1830) transformed classical algebra into its modern form as an abstract symbolic science, free from the physical interpretation of quantity that had previously restricted it.

Continue reading this article…

The rise of Mathematical Logic: from Demonstration to Laws of Thought to Foundations for Mathematics


Revised Nov 2022, Jan 2023

In this article we look at the evolution of logic from its earliest form in the demonstration of truths to the rapid development of mathematical logic in the 1800s at the start of the “golden century” of logic (1850-1950). We also look at the rise and surprising dashing of hopes for the formalist program.

Continue reading this article…

Exploring cuneiform culture (8500-2800 BCE)

This is Part 3 in the Ancient Mathematics series. (To read earlier parts: Part 1: Prehistoric Origins of Mathematics, Part 2: The Mathematics of Uruk and Susa).

This article explores what the people of Mesopotamia wrote about, counted and produced in the last part of the fourth millenium BCE. It does so by examining the frequency of signs in the proto-cuneiform tablets from the period c.3500-3000 BCE. For those wishing to build up experiential understanding of life in the Neolithic and early Bronze Age near east, this article provides suitable references as well as practical explorations of the economic and productive activities of the people: rope-making from grass, basket-weaving from reads, baking, weaving of cloth from linen, breaking ground, sowing, reaping, making flour, etc.

The first part of the article look closely at the collection of artifacts in each period that are associated with the evolution of writing and mathematics in ancient Mesopotamia, examining noteworthy individual artifacts that showcase a key development.

The study uses the CDLI database of cuneiform documents, and software I’ve written that parse the files in the CDLI database, extracting counts, parsing signs, generating frequency distributions of signs, creating a proto-cuneiform glossary, and assisting in the quantitative analysis of artifacts and semi-automated translation (see CDLI parser software library written in Ruby).

Continue reading this article…

The Mathematics of Uruk and Susa (c.3500-3000 BCE)

This is Part 2 in the Ancient Mathematics series. (Part 1: The Prehistoric Origins of Mathematics, Part 3: Exploring Cuneiform Culture 8500-2500 BCE)

Summary The written mathematics of ancient Iraq and Iran (Mesopotamia, Khuzistan) developed out of an administrative/bureaucratic program to control the surplus raw and manufactured goods of the settled societies of the late neolithic/early bronze age: grains & grain products, sheep & other herded animals, jugs of dairy fats & beer, rope & textiles. It evolved through a sequence of literary and mathematical innovations, each making more efficient the ability to record quantitative/metrological information and use it for planning and control. Initially, impressed tokens and pictographs were used whose meaning was clear by association. Subsequently, this repertoire was written signs was expanded in a consious effort to provide a standard, all-encompassing collection of signs/symbols (ideographs/logograms) that could represent all aspects of importance in early thought (professions, animals, foods, containers, textiles, etc.). The standard sign lists were spread through scribal schools to produce the scribes that administered the temple economies of the early city-states.

Uruk was the hegemonic centre of this innovation in mathematics and writing, starting from 3500 BCE. The increased administrative control generated economic efficiencies accelerating Uruk’s growth and which supported greater military effectiveness and the ability to dominate neighboring polities and support longer distance trading missions [Adams/2005], [Algaze/2013]. The success of Uruk’s structures had the effect of radiating the new inventions outward throughout the Greater Mesopotamian region (evidence in Aratta/Susa adoption of writing/adminstrative control), even reaching Anatolia (Turkey) in the far north (Uruk expansion phenomenon).

The gains in economic power and increased resilience to subsistence unpredictability conferred by the new planning and control capabilities, set in motion the development of a bureaucratic administrative culture in the southern Mesopotamian city states that, over the next 1000 years would reach its hypertrophic apex in the ambitious Ur III program under King Shulgi to plan, manage, and control all economic/productive assets in his vast empire through mathematics (c.2050 BCE). This required an army of scribes which in turn led to the standardization and systematization of the scribal school institution responsible for producing them.

Two examples of mathematical innovation are from the cattle redistribution center Puzrish-Dagan outside Nippur during the Ur III empire. One shows perfection of the form of tabular accounting (world’s earliest normalized two-dimensional table with rows and columns and sums in both dimensions) [Robson/2003]. The other shows the population growth modeling of a cattle-herd over 10 years with projected economic yields in dairy and cheese, solving, in modern terms, population difference equations in table form (see illustrated explanation of cuneiform tablet TCL 2, no.5499, [Nissen/1993: 97-102])

In this paper, we will look in more detail at mathematical development during the archaic period of writing (3500-3000 BCE) which gave rise to a new literate and quantitative layer in society in the main urban centres of Mesopotamia. Our thesis (which we have seen play out already in Part 1) is that technology (in this case mathematics/writing) and culture (in this case the impulse to plan/control) are inextricably linked. Their development influences the trajectory of the surrounding societies.1

Ur III mathematical model projecting annual dairy/cheese yields from a herd of 4 cows and a bull with assumptions on calving rates

Download article (PDF)

Continue reading this article…

  1. Also linked, but out of scope for this paper, is the impact of institutional values in enhancing/suppressing innovation. Laws limiting exploitation by the powerful were put in place by Sargon of Akkad, Gudea and Entemena of Lagash, and Hammurapi of Babylon. The military policies of King Shulgi of Ur III stimulated massive state investment, drove institutional innovation but suppressed individual innovation. In the freedoms of the Old Babylonian period we see indiviual innovation thrive. See (Hoyrup/1991) and (Hoyrup/2009: 31-32) for a survey and further reading.

A microcontroller development kit for under £10 (Arduino)

For under £10, you can put together a microcontroller development platform, ready to program directly from your PC over USB using free Arduino software. Once programmed, your microcontroller will run autonomously, untethered from your PC, powered by as small a battery power supply as a single 1.5V AAA or 3V CR2032 coin cell. You can have it interact with its environment using dozens of low-cost sensors and motors. Everything you need to explore the exciting world of embedded systems is available to you, typically for less than a day pass on the London underground.

An Arduino Nano microcontroller development kit for under £13

A homebrew Arduino Nano microcontroller development kit for under £12 (including optional OLED display)

Continue reading this article…

Everything (Desktop Search)

If you haven’t done so already, you may want to start by reading the Preface to the Computing Series: Software as a Force Multiplier, Sections 1-3.

“Everything” you need for ultra-fast desktop search

1. Everything(tm) is an ultra-fast desktop search utility that can scan through hundreds of thousands of files in milliseconds using a pre-built and real-time updated index.

“Everything” brings order to information growing at scale (documents, photographs, source code, spreadsheets, etc.), and tames the problem of proliferating folder trees.

Everything is a fast desktop search utility that can index 1 million files in less than 1 minute, and generate search queries in milliseconds.

Everything is a fast desktop search utility that can index 1 million files in less than 1 minute, and generate search queries in milliseconds.

We’ve all been in the scenario of searching through electronic documents for a document you know you prepared three, maybe four weeks prior… maybe it was longer… and now you can’t remember where you saved it… or in what format: was it a quickly written text file, a word document, a few paragraphs within One Note, on a desktop post-it note, or did you email yourself from your phone?… After trying different Windows searches in various recently used folders and looking through Word, Excel, and PDF files, and trying to remember possible filenames to search for, at some point you prepare mentally for the moment when you will give up the search and attempt to redo the missing work, salvaging as much of it as you can remember.

The general problem of wasted effort locating information we know we have, occurs more often than we’d like to admit. With “Everything“, it can be better.

Continue reading this article…

Notepad++ (Text Editor)

If you haven’t done so already, you may want to start by reading the Preface to the Computing Series: Software as a Force Multiplier, Sections 1-3.

1. Notepad++: a programmable, extensible, feature-rich text editor

NotePad++ (NPP) is an open-source programmer’s text editor with outstanding built-in features that can be further enhanced with powerful plugins and extensively customized with your own configurations. NPPs features include syntax highlighting for a large collection of programming languages, code folding, recordable macros, cloned views, selectable shortcuts, tabbed documents, and a host of other capabilities.
But it is the plugins and customization that NPP an invaluable power-tool, capable of far more than text editing. NPP can serve as an automation engine, a complex calculator (for example between hex, binary, and decimal), or a light-weight IDE for any toolchain you wish. It is the second application (after Total Commander) which I install on a Windows computer.

This article describes a few of the dozens of capabilities. It also shares a pre-configured Notepad++ package that I use (20.0MB compressed, 50.0MB uncompressed, download here), which contains the configurations and capabilities I use. The file is portable and self-contained: just unpack NPP to your drive (in a separate folder to your current running instance) and run notepad++.exe from there.1

Notepad++, by Don Ho, multi-view with syntax highlghting

Notepad++, by Don Ho, multi-view with syntax highlghting


Continue reading this article…

  1. You don’t want to overwrite your current instance, as capabilities are dependent on version of the plugin, and yours may be different than mine.

Forth: A Frugal and Elegant Programming Language

“Any [one] can make things bigger, more complex, … It takes a touch of genius, and a lot of courage, to move in the opposite direction.” – Ernst F. Schumacher, 1973, from “Small is Beautiful: A Study of Economics As If People Mattered”1


At First Glance

Forth2 is a remarkable computer language born in 1968 that exemplifies the low-fat computing ethos of its inventor Charles ‘Chuck’ Moore (b.1938), for whom simplicity and minimalism were central themes of his life’s work.3 Forth was the first in a series of revolutionary ideas in computing practice4, followed by a simple VLSI design environment written entirely in Forth (OKAD5) and which Chuck used to design Forth-in-hardware chips6 culminating in the GA-144, a 144-core low-power (0.4uW standby power, 7 picojoules per instruction), high-performance (1.4 nanoseconds per instruction, or 700 MIPS per core) parallel computer on a single chip.
Continue reading this article…

  1. This quote by Ernst F. Schumacher is often incorrectly attributed to Einstein
  2. Forth on Wikipedia
  3. Chuck Moore Interview: The Lost Art of Keeping it Simple
  4. Language Oriented Programming, also called Problem Oriented Language, or Domain specific Language
  5. OKAD was built on top of OK, which was Chuck Moore’s One Kilobyte operating system. OKAD2 was built within ColorForth and benefited from 10 years of Chuck Moore’s experience designing chips.
  6. The history is interesting: 1) Jeff Fox’s history, 2) Chuck Moore’s history

Building a 13-key analog piano from only resistors, capacitors, and transistors

Building a fully analog electronic piano using only resistors, capacitors, and transistors, is an insightful experiment in electronic sound generation from first principles. I designed and built a 13-key analog piano in early 2019 using discrete through-hole components on a breadboard powered off a 9V DC battery. The design creates 13 astable multivibrator oscillator circuits, each able to be tuned to a given note frequency in the C5 to C6 range. The outputs of the oscillators are collected (mixed) to create a polyphonic analog audio signal that is amplified and run through an 8-ohm speaker. The device fits into an 11x25cm footprint. Check out how it sounds! (To hear the explanation of how it works, start at the beginning.)


Feb 9th, 2019, Design V1

Continue reading this article…

Stats: 1,089,379 article views since 2010 (Aug '24 update)

Dear Readers:

Welcome to the conversation!  We publish long-form pieces as well as a curated collection of spotlighted articles covering a broader range of topics.   Notifications for new long-form articles are through the feeds (you can join below).  We love hearing from you.  Feel free to leave your thoughts in comments, or use the contact information to reach us!

Reading List…

Looking for the best long-form articles on this site? Below is a curated list by the main topics covered.

Mathematics History & Philosophy

  1. What is Mathematics?
  2. Prehistoric Origins of Mathematics
  3. The Mathematics of Uruk & Susa (3500-3000 BCE)
  4. How Algebra Became Abstract: George Peacock & the Birth of Modern Algebra (England, 1830)
  5. The Rise of Mathematical Logic: from Laws of Thoughts to Foundations for Mathematics
  6. Mathematical Finance and The Rise of the Modern Financial Marketplace
  7. A Course in the Philosophy and Foundations of Mathematics
  8. The Development of Mathematics
  9. Catalysts in the Development of Mathematics
  10. Characteristics of Modern Mathematics

Topics in Mathematics: Pure & Applied Mathematics

  1. Fuzzy Classifiers & Quantile Statistics Techniques in Continuous Data Monitoring
  2. LOGIC in a Nutshell: Theory & Applications (including a FORTH simulator and digital circuit design)
  3. Finite Summation of Integer Powers: (Part 1 | Part 2 | Part 3)
  4. The Mathematics of Duelling
  5. A Radar Tracking Approach to Data Mining
  6. Analysis of Visitor Statistics: Data Mining in-the-Small
  7. Why Zero Raised to the Zero Power IS One

Technology: Electronics & Embedded Computing

  1. Electronics in the Junior School - Gateway to Technology
  2. Coding for Pre-Schoolers - A Turtle Logo in Forth
  3. Experimenting with Microcontrollers - an Arduino development kit for under £12
  4. Making Sensors Talk for under £5, and Voice Controlled Hardware
  5. Computer Programming: A brief survey from the 1940s to the present
  6. Forth, Lisp, & Ruby: languages that make it easy to write your own domain specific language (DSL)
  7. Programming Microcontrollers: Low Power, Small Footprints & Fast Prototypes
  8. Building a 13-key pure analog electronic piano.
  9. TinyPhoto: Embedded Graphics and Low-Fat Computing
  10. Computing / Software Toolkits
  11. Assembly Language programming (Part 1 | Part 2 | Part 3)
  12. Bare Bones Programming: The C Language

Technology: Sensors & Intelligent Systems

  1. Knowledge Engineering & the Emerging Technologies of the Next Decade
  2. Sensors and Systems
  3. Unmanned Autonomous Systems & Networks of Sensors
  4. The Advance of Marine Micro-ROVs

Maths Education

  1. Maxima: A Computer Algebra System for Advanced Mathematics & Physics
  2. Teaching Enriched Mathematics, Part 1
  3. Teaching Enriched Mathematics, Part 2: Levelling Student Success Factors
  4. A Course in the Philosophy and Foundations of Mathematics
  5. Logic, Proof, and Professional Communication: five reflections
  6. Good mathematical technique and the case for mathematical insight

Explore…

Timeline