Truth Tables for Android
...not only for geese!
Free download at Google Play
Free download at SlideME.org
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!
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 using a device with a full keyboard,
you will probably enter the proposition using the keyboard.
- On a touch-style
device, you will usually make use of the visual buttons labelled "P",
"Q", and so on. There are buttons for a few propositional letters, and for the
most important connectives. The button labelled with a red arrow pointing to
the left is for deleting the most recently entered character, and, on a long
press, for annihilating your whole input altogether. Finally, the "OK"
button (the button with the friendly goose, or the button with the
green check mark, you know),
will submit your proposition causing the truth table to be generated.
- If your screen is too small for the application to show a NAND, a NOR,
and a XOR button, you may insert a NAND by pressing the conjunction button
for a long time. Equally, for inserting a NOR, press the disjunction
button for a long time. In an equally equal way, you may enter the XOR
by pressing the biconditional button for a long time.
- 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.
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).
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.
- In the global settings dialog, you may permanently activate the
"detailed truth-table" feature.
- If pressing the OK button (the button with the friendly goose, or
with the green check mark, y'know)
for a long time, the program will show the truth table with
the global "detail" setting inverted: If you have left it at its
default, "results only", pressing the OK button for a long time
will show the detailed truth table. If, on the other hand, the global
setting is "detailed", a long press of "OK" will show the
simple, result-only, truth-table.
- While displaying a result-only truth-table, you may temporarily switch
to, or from, the detailed form in the result-settings dialog.
- Note that, in the detailed truth-table, the final result is highlighted
with a bold font, and with red colour. (This holds true for Peano-Russell
notation. For Polish notation, there is no need for colouring, since, with
this cool notation, the result is always shown first, i.e., leftmost.)
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.
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.
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.
- Negation
- ~ (tilde), - (dash), ¬
- Conjunction
- & (ampersand), ^, ∧
- Disjunction
- v (the lower-case letter), |, ∨
- Conditional
- >, ->, =>, -->, ==>, →
- Biconditional
- =, <=>, ↔
- Brackets
- As usual, the rounded brackets, (, and ), may be used for
grouping expressions.
- Spaces
- In order to improve readability, the user may freely
add space characters into their proposition.
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.
The Truth Table App for Android does not collect, or transfer, any data
at all. Neither does it show any advertisements. Hence, it does not contain
any third-party code that might collect any data at all.
Your questions, support, and, if positive, feedback will be most
welcome. Please direct your verbal feedback to
gottschall@gmx.de.
- 3.43
-
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.
- 3.421
-
maintenance release with minor changes (minor code optimization,
plus: improving the code hiding the Honeycomb on-screen keybord)
- 3.42
-
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.
- 3.4
-
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)
- 3.251
-
- 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")
- 3.2
- 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)
- 3.1
-
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)
- 3.020001
-
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.
- 3.01002
-
With this version, there is a setting for locking screen orientation
either to portrait, or to landscape. This feature was requested by a
user.
- 3.0
-
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.
- 2.101
- Fixing a minor bug: When entering a list of propositions, a certain
class of syntax errors did not get detected but was ignored.
- 2.1
- 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.
- 2.051
- 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()
- 2.05
- the Android soft keyboard may be turned off in the settings
(requested by a user).
- 2.04
- support for older Android versions (from 1.6)
- 2.03
- more attractive display of the history of entered propositions -
purely cosmetical
- 2.02
- adding a history function for the propositions entered (requested
by a user)
- 2.01
- 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
- 1.000020101
- 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...)
- 1.0000201
- 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)
- 1.00002
- 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...
- 1.00001
- generating a much more space-saving version of the APK file
- 1.0 (Gracious Grey Goose)
- first version
Happy user stephon praises the application thusly:
2022-06-17
gottschall@gmx.de