mscroggs.co.uk
mscroggs.co.uk

subscribe

Blog

Logic bot, pt. 2

 2015-03-15 
A few months ago, I set @mathslogicbot (and @logicbot@mathstodon.xyz and @logicbot.bsky.social) going on the long task of tweeting all the tautologies (containing 140 characters or less) in propositional calculus with the symbols \(\neg\) (not), \(\rightarrow\) (implies), \(\leftrightarrow\) (if and only if), \(\wedge\) (and) and \(\vee\) (or). My first post on logic bot contains a full explanation of propositional calculus, formulae and tautologies.

An alternative method

Since writing the original post, I have written an alternative script to generate all the tautologies. In this new method, I run through all possible strings of length 1 made with character in the logical language, then strings of length 2, 3 and so on. The script then checks if they are valid formulae and, if so, if they are tautologies.
In the new script, only formulae where the first appearances of variables are in alphabetical order are considered. This means that duplicate tautologies are removed. For example, \((b\rightarrow(b\wedge a))\) will now be counted as it is the same as \((a\rightarrow(a\wedge b))\).
You can view or download this alternative code on github. All the terms of the sequence that I have calculated so far can be viewed here and the tautologies for these terms are here.

Sequence

One advantage of this method is that it generates the tautologies sorted by the number of symbols they contain, meaning we can generate the sequence whose \(n\)th term is the number of tautologies of length \(n\).
The first ten terms of this sequence are
$$0, 0, 0, 0, 2, 2, 12, 6, 57, 88$$
as there are no tautologies of length less than 5; and, for example two tautologies of length 6 (\((\neg a\vee a)\) and \((a\vee \neg a)\)).
This sequence is listed as A256120 on OEIS.

Properties

There are a few properties of this sequence that can easily be shown. Throughout this section I will use \(a_n\) to represent the \(n\)th term of the sequence.
Firstly, \(a_{n+2}\geq a_n\). This can be explained as follows: let \(A\) be a tautology of length \(n\). \(\neg\neg A\) will be of length \(n+2\) and is logically equivalent to \(A\).
Another property is \(a_{n+4}\geq 2a_n\): given a tautology \(A\) of length \(n\), both \((a\vee A)\) and \((A\vee a)\) will be tautologies of length \(n+4\). Similar properties could be shown for \(\rightarrow\), \(\leftrightarrow\) and \(\wedge\).
Given properties like this, one might predict that the sequence will be increasing (\(a_{n+1}\geq a_n\)). However this is not true as \(a_7\) is 12 and \(a_8\) is only 6. It would be interesting to know at how many points in the sequence there is a term that is less than the previous one. Given the properties above it is reasonable to conjecture that this is the only one.
Edit: The sequence has been published on OEIS!
Edit: Added Mastodon and Bluesky links
×5      ×3      ×3      ×3      ×3
(Click on one of these icons to react to this blog post)

You might also enjoy...

Comments

Comments in green were written by me. Comments in blue were not written by me.
Great project! Would be interesting to have a version of this for the sheffer stroke.
om
×3   ×3   ×3   ×1   ×3     Reply
 Add a Comment 


I will only use your email address to reply to your comment (if a reply is needed).

Allowed HTML tags: <br> <a> <small> <b> <i> <s> <sup> <sub> <u> <spoiler> <ul> <ol> <li> <logo>
To prove you are not a spam bot, please type "width" in the box below (case sensitive):

Archive

Show me a random blog post
 2025 

Jun 2025

A nonogram alphabet

Mar 2025

How to write a crossnumber

Jan 2025

Christmas (2024) is over
Friendly squares
 2024 
▼ show ▼
 2023 
▼ show ▼
 2022 
▼ show ▼
 2021 
▼ show ▼
 2020 
▼ show ▼
 2019 
▼ show ▼
 2018 
▼ show ▼
 2017 
▼ show ▼
 2016 
▼ show ▼
 2015 
▼ show ▼
 2014 
▼ show ▼
 2013 
▼ show ▼
 2012 
▼ show ▼

Tags

braiding regular expressions data visualisation error bars plastic ratio pac-man matt parker bodmas databet books alphabets determinants guest posts light game show probability friendly squares geometry pythagoras world cup big internet math-off matrix of cofactors matrix multiplication talking maths in public london draughts hyperbolic surfaces video games crossnumbers pi approximation day numbers weak imposition newcastle computational complexity asteroids data signorini conditions php sound golden ratio fractals mean python realhats oeis bubble bobble errors palindromes people maths runge's phenomenon nine men's morris ucl rhombicuboctahedron standard deviation royal institution trigonometry wave scattering sobolev spaces nonograms mathsteroids cambridge edinburgh latex london underground tennis map projections gerry anderson mathslogicbot squares speed captain scarlet numerical analysis mathsjam coins pi hexapawn recursion national lottery gaussian elimination christmas card simultaneous equations polynomials matrices advent calendar game of life inverse matrices dinosaurs dragon curves european cup rugby inline code statistics exponential growth go arithmetic live stream zines matrix of minors reuleaux polygons logs dates gather town geogebra sorting accuracy pizza cutting manchester science festival 24 hour maths bots quadrilaterals logo curvature noughts and crosses puzzles final fantasy folding paper the aperiodical tmip chalkdust magazine martin gardner stickers approximation news turtles probability manchester chebyshev golden spiral javascript crosswords chess reddit datasaurus dozen propositional calculus frobel countdown programming pascal's triangle cross stitch convergence christmas wool harriss spiral graphs a gamut of games graph theory preconditioning misleading statistics ternary weather station raspberry pi anscombe's quartet triangles finite group machine learning crochet football logic youtube correlation bempp interpolation hannah fry binary flexagons royal baby estimation kings electromagnetic field games stirling numbers boundary element methods fonts dataset hats platonic solids craft phd menace crossnumber sport finite element method folding tube maps fence posts radio 4

Archive

Show me a random blog post
▼ show ▼
© Matthew Scroggs 2012–2025