Symbolic Logic Tools How Logic Works

Instructions

Every tool here shares one syntax. You can type the logical symbols directly, or use the ASCII shortcuts below and let the tools translate.

Writing formulas

MeaningSymbolYou can also type
not¬φ~φ   not φ
andφ ∧ ψφ /\ ψ   φ & ψ   φ and ψ
orφ ∨ ψφ \/ ψ   φ v ψ   φ or ψ
if … thenφ → ψφ -> ψ   φ => ψ
if and only ifφ ↔ ψφ <-> ψ
every∀x φforall x φ   Axφ
some∃x φexists x φ   Exφ
predicatesFx, Rxywritten straight after the letter
sentence lettersP, Q, Rpredicates with no arguments

Spaces around operators are optional, and parentheses work as usual. Variables may be any letter, optionally with a digit: x, y, x1. The shorthands Ax and Ex bind the single variable written straight after them.

Proof checker

This checks proofs in the style of How Logic Works. Write one step per line, with four columns separated by a vertical bar: dependencies, line number, formula, justification.

1   | 1 | P     | A
2   | 2 | Q     | A
1,2 | 3 | P & Q | 1,2 &I

The columns need not line up. Leave the dependency column empty when a line depends on nothing.

Rules

Rule names are not case-sensitive, so cp and CP both work.

RuleNameAlso acceptedLines cited
AAssumptionAssumption
MPModus Ponens2
MTModus Tollens2
DNDouble Negation1
CPConditional Proof2
∧IAnd-Introduction&I, ANDI, /\\I2
∧EAnd-Elimination&E, ANDE, /\\E1
∨IOr-IntroductionvI, \\/I, ORI1
∨EOr-EliminationvE, \\/E, ORE5
RAAReductio ad AbsurdumRA, ¬I, ~I2
↔IBiconditional Introduction<->I, IFFI, BIDI2
↔EBiconditional Elimination<->E, IFFE, BIDE2
∀EUniversal EliminationUE, ForallE1
∀IUniversal IntroductionUI, ForallI1
∃IExistential IntroductionEI, ExistsI1
∃EExistential EliminationEE, ExistsE3
QNQuantifier Negation1
=IIdentity Introduction
=EIdentity Elimination2
LEMLaw of Excluded Middle
prop tautPropositional Tautologyany number

Propositional tautology accepts any formula that follows truth-functionally from the lines it cites:

1   | 1 | AxFx v EyGy | A
2   | 2 | ~AxFx       | A
1,2 | 3 | EyGy        | 1,2 prop taut

Working on paper? Print the proof template, then photograph your proof and have it read and checked for you.

Open the proof checker →

Model checker

Build a finite structure and evaluate a closed sentence in it.

  • Domain — comma-separated elements, such as a,b,c.
  • Constants — each maps to an element, such as c = a.
  • Symbols — a name, an arity from 0 to 3, and an extension:
    • arity 0: T or F;
    • arity 1: a list of elements, such as a,b;
    • arity 2 or 3: tuples, such as <a,b>.

A symbol you have not interpreted produces a clear error rather than a guess.

Ax (Fx -> Ey Rxy)

Open the model checker →

Truth tables

Enter a purely propositional sentence — sentence letters only, no predicates with arguments. The tool lists every valuation and the value of the sentence under each.

(P -> Q) v R
~(P & Q) -> (Q v R)

A predicate with arguments produces a non_propositional error. The DNF converter rewrites a sentence in disjunctive normal form.

Open the truth-table tool →