Truth Tables for Android



  1. Download
  2. The program
  3. Input examples
  4. Usage
  5. Configuration
  6. Intermediate results
  7. Combined tables
  8. Infix notation
  9. Polish notation
  10. Feedback
  11. Version history
  12. User comments

Related pages

  1. Gateway to Logic
  2. Logic Server
  3. Christian Gottschall
  4. Duck Pride Canned Worms
Happy goose using, and admiring, the Truth Table Application on a Honeycomb tablet

Truth Tables for Android

...not only for geese!


[Icon]Free download at Google Play [QR Google]

[Icon]Free download at [QR Google]

The program

The sole purpose of this program is generating, and displaying, truth tables on mobile devices, notably mobile telephones. It will work with most Android devices. Trying out the program on an Android phone of your choice won't do any harm; if it proves not to work with the respective phone, just uninstall it, and, optionally, hope for a future version.

The free version supports all usual connectives of classical logic, that is negation, conjunction, (inclusive) disjunction, conditional (material implication), and biconditional (material equivalence), NAND, NOR, and XOR, as well as the constants 1 and 0 denoting truth and falsehood, respectively. A cool thing is that, besides the somewhat boring standard notation of logic, you may use Łukasiewicz's stream-lined, shiny Polish notation, too! Isn't that a deal?

And it doesn't stop here. If you are the down-to-earth, common-sense kind of person, you will find it reassuring that, by default, the program uses classical, two-valued, logic. But if you are more of the adventurous type, never stopping short of an adventure life may offer, you will be delighted to learn that Truth Tables for Android supports a number of non-classical, multi-valued systems of logic, too. Never enter a river twice, and two wrongs don't always make a right, so to speak!

Input examples

Infix notation Polish notation
P->(Q->P) CpCqp
(P->Q)->P CCpqp
~P v Q ANpq
(P & Q) v (P & R) AKpqKpr
(P & (Q v P)) & R KKpAqpr
((P>(Q>R))>((P>Q)>(P>R))) CCpCqrCCpqCpr



The main component of the user interface is the text field where the user may enter a single proposition (or a comma-separated list of propositions, see Combined Tables), be it in infix notation (the somewhat standard way of writing down propositions), or in Polish notation (the cool prefix notation developed by Łukasiewicz in the 1920s).

When finished entering, a truth table will be generated from the proposition when you select the "OK" button (mentioned above). Should you ever tire of looking at the generated truth-table, feel free to use the Android Back button of your device for returning to the input field, and entering another proposition.


The application is highly configurable. For example, you may choose the font size, the verbosity of the output (see the next chapter, Intermediate results), the sort order (descending from T to F, or ascending from F to T), the graphical layout of the truth table (with, or without, separator lines), its orientation (portrait, landscape, or automatic, depending on how the user holds the device in his, or her, or its claw). To change these, and many other, settings, open the, well, settings from the start view (i.e. the view where you enter your proposition).

Intermediate results


By default, obviously, the program shows the truth-values of the whole proposition. Since version 2.0 ("Deep-flying Grey Goose"), there is the optional feature to display all intermediate results, too. This option is called "detailed truth-table" (see the screenshot on the right). It is especially useful for students wanting to check every single step of their homework, or wanting to find out where the mistake leading to a wrong result originates.

If this sounds confusing, just play around with the application, and remember that there are two ways of pressing the "OK" button: the normal, short press, and the long press.

Combined tables


From version 2.1 on, you may enter more than one proposition at a time, separating them with commas. In this case, the program will show a combined truth-table for all propositions entered. This may be handy e.g. for students who want to check the propositional validity of an argument.

Note that you may enter the comma with the soft keys of the program by pressing the negation touch button for a long time. Of course, the Android keyboard, or any hardware keyboard, will work as well.

Infix notation


Note: Your browser may be unable properly to display some of the logical connectives used below. Of course this restriction will not apply to the program when installed and running on your personal computing device.

Propositional letters
A through U, and W through Z, case insensitive; note that the lower-case letter "v" is reserved for disjunction (see below) and should not be used for a propositional constant. Optionally, you may number your propositional letters, thereby coming up with strings like P1, Q12, or R42.
~ (tilde), - (dash), ¬
& (ampersand), ^, ∧
v (the lower-case letter), |, ∨
>, ->, =>, -->, ==>, →
=, <=>, ↔
As usual, the rounded brackets, (, and ), may be used for grouping expressions.
In order to improve readability, the user may freely add space characters into their proposition.

Polish Notation

Propositions in Polish notation are restricted to Łukasiewicz's own connectives N, K, A, C, and E. You have to user lower-case letters as propositional constants, but not the letter "v", since it denotes infix disjunction (see above). If you want to use connectives other than Łukasiewicz's, you can easily build them up from Łukasiewicz's, by e.g. using NA for the Peirce function (NOR), NK for the Sheffer function (NAND), or NE for the exclusive disjunction (XOR).

Note that the program offers its own set of buttons only for standard notation. For Polish notation, which uses standard characters (i.e., upper-case, and lower-case letters), please use the Android keyboard. You do not need to tell the program which notation you are using - it will find this out on its own. The "notation" setting in the main settings dialog only determines how the program displays propositions.


Your questions, support, and, if positive, feedback will be most welcome. Please direct your verbal feedback to

Version History

Cleaning up layouts (please report any problem with exotic devices). This leads to NAND and NOR being more prominent for most screen sizes (requested by a user). And, since a user explicitly requested this feature, the program accepts "*" and "+" as an alternative way of entering conjunction and disjunction, respectively.
maintenance release with minor changes (minor code optimization, plus: improving the code hiding the Honeycomb on-screen keybord)
Screen size permitting, the on-screen keyboard now shows a separate comma key, too (for entering more than one proposition at a time). Plus: improving some error messages of the lexical analyzer.
The application optionally shows separator lines between the most important columns of a truth-table. This is most useful if a truth-table is built for more than one proposition at a time. (requested by a user)
  • The touch buttons for propositional letters now optionally show the letters A, B, C,... instead of P, Q, R,... (requested by a user).
  • Screen size permitting, there are now separate touch buttons for NAND, NOR, and XOR.
  • On higher resolution screens, you may choose between a friendly goose, and the familiar green check mark, for the "OK" button.
  • improved Honeycomb support
  • application may be stored on the SD card ("app2sd")
adapting to Honeycomb; addressing a minor duck; (trying to) clarify the difference between the Settings (which are permanent) and the properties of the current truth-table (which are, well, properties of the current truth-table)
completely reorganizing the settings of the application (they are now more Android-like); plus: adding the option to show classical truth values as letter ("T", and "F", respectively)
This is purely a maintenance release, working around an Android bug (issue 4936) that, under rare conditions, would cause the application to close when changing the orientation with the settings dialog open.
With this version, there is a setting for locking screen orientation either to portrait, or to landscape. This feature was requested by a user.
This is a major rework of the inner workings, leading to a smoother and virtually limitless user experience (there are no more relevant limits to the size of the truth-table). The downside is that testing had to start from zero. Please report any bugs you might come by, and please give feedback if you don't like the behavior of the new truth-table interface.
Fixing a minor bug: When entering a list of propositions, a certain class of syntax errors did not get detected but was ignored.
Now you may enter more than one proposition at a time (separated by commas). In this case, the program will show an integrated truth-table for all the propositions.
  • improving the layout for tablets
  • adding an "Exit" entry in the main menu - though not very Android-like, this may be useful for devices with a very low amount of memory (requested by the user of such a device)
  • one user of Android 1.6 reported an occurrence of the infamous Android WindowManager$BadTokenException exception. If upgrading your Android version is not an option, 2.051 may work around this problem by no longer calling getApplicationContext()
the Android soft keyboard may be turned off in the settings (requested by a user).
support for older Android versions (from 1.6)
more attractive display of the history of entered propositions - purely cosmetical
adding a history function for the propositions entered (requested by a user)
additional level of detail: optionally, the truth table shows intermediate results of complex sub-expressions, but not of terminals (this feature has been requested by an estimated user)
2.0 ("Deep-flying Grey Goose")
  • optionally showing all intermediate results ("detailed truth-table")
  • internal optimizations
  • adding NAND, NOR, and XOR (completely free!) - a long press at the buttons for conjunction, disjunction, and equivalence will enter NAND, NOR, and XOR, respectively
  • adding icons to the context menu (well...)
  • persistently saving the global settings (notation, font size, and logical system) and the most recently entered proposition (feature requested by an estimated user)
  • a long press on the Delete button clears the whole input field
  • showing a progress dialog (though this will be hardly seen, because a truth-table is quickly generated - but maybe there are users with especially slow devices)
fixing a bug in the English version: Due to an entry missing from the list of the English string resources, the application was unable to open the main settings dialog...
generating a much more space-saving version of the APK file
1.0 (Gracious Grey Goose)
first version

User comments

Happy user stephon praises the application thusly:

[Bildschirmfoto aus dem Android-Markt]

2014-08-16 12:33:11