Skip to content

Lesson 1: NOT, AND, OR: the basic operators (beginner, 10 min)

The first lesson builds the entry rule (member OR invited) AND NOT banned one operator at a time: AND, then inclusive OR, then NOT. Ten minutes, no prerequisites, and every example on the page is re-checked by the engine at build time.

Level: beginner10 min9 claims in this lesson were confirmed by the exact checker at build time

Inputs are TRUE or FALSE. Combine them with AND, inclusive OR, and NOT, and build the entry rule step by step.

Each input is a statement that is either TRUE or FALSE; there is no third value. The first step combines two of them with AND (member AND paid), which is TRUE only when both are; the second introduces OR with member OR invited, TRUE when at least one is, including when both are; the third adds NOT, which flips banned, and assembles the full rule. Each step carries a small model with its truth table, so you can see every row as you read.

The exercises ask you to predict the output for one scenario, fill in a truth-table column for member OR invited, and find an assignment that lets in someone who is not a member. In the app each answer is checked exactly, not against a stored key but against the model itself, so a correct answer in a different spelling is still correct.

What the lesson deliberately leaves out is as important as what it includes: no XOR yet, no precedence, no brackets beyond the one pair the rule needs. The second lesson takes exclusive or, the third takes grouping, and the fourth gives truth tables their own treatment. If you are a tester or an analyst rather than a student, the operator pages in this reference are the quicker route to the same facts.

Do this lesson interactively in the app

Steps

1. TRUE, FALSE, and AND

Each input stands for a statement that is either TRUE or FALSE, such as member (“the person is a member”). There is no third value.

An output is computed from inputs: can_borrow := member AND paid is TRUE only when both member and paid are TRUE.

If an input has no value yet, Tangibool does not guess FALSE: the output simply stays uncomputed.

can_borrow := member AND paid · output

member: the person is a member; paid: the membership fee is paid; can_borrow: the person may borrow books;

TRUE, FALSE, and AND
#memberpaidcan_borrow
0FALSEFALSEFALSE
1FALSETRUEFALSE
2TRUEFALSEFALSE
3TRUETRUETRUE

Set member to TRUE and leave paid empty: can_borrow is not computed. Then set paid to FALSE, and finally to TRUE.

2. OR is inclusive

may_enter := member OR invited is TRUE when at least one of the two inputs is TRUE, including the case where both are. Someone who is a member and invited may certainly enter.

This everyday “or” is called inclusive. When you mean “one or the other, but not both”, you need XOR (next lesson).

may_enter := member OR invited · output

member: the person is a member; invited: the person has an invitation; may_enter: the person may enter;

OR is inclusive
#memberinvitedmay_enter
0FALSEFALSEFALSE
1FALSETRUETRUE
2TRUEFALSETRUE
3TRUETRUETRUE

Set both member and invited to TRUE and watch may_enter.

3. NOT, and the complete entry rule

NOT banned flips a value: it is TRUE exactly when banned is FALSE.

Together: allow_entry := (member OR invited) AND NOT banned. Read literally: entry is allowed exactly when the person is not banned and at least one of membership or invitation is true. Being both a member and invited is allowed.

allow_entry := (member OR invited) AND NOT banned · output

member: the person is a member; invited: the person has an invitation; banned: the person is banned; allow_entry: the person may enter;

NOT, and the complete entry rule
#memberinvitedbannedallow_entry
0FALSEFALSEFALSEFALSE
1FALSEFALSETRUEFALSE
2FALSETRUEFALSETRUE
3FALSETRUETRUEFALSE
4TRUEFALSEFALSETRUE
5TRUEFALSETRUEFALSE
6TRUETRUEFALSETRUE
7TRUETRUETRUEFALSE

Make allow_entry TRUE, then switch banned to TRUE. Which inputs could still make it TRUE?

Exercises

  1. A guest is not a member, has an invitation, and is not banned: member=FALSE, invited=TRUE, banned=FALSE. Is allow_entry TRUE or FALSE? (predict-output)
  2. Fill in the may_enter column for member OR invited. The rows are FALSE/FALSE, FALSE/TRUE, TRUE/FALSE, TRUE/TRUE (member first). (truth-table)
  3. Find values for all three inputs that let in someone who is not a member. (find-assignment)

Do this lesson interactively in the app

Questions

Do I need the app to follow the lesson?

No. The steps, models and truth tables are all on this page. The app adds the interactive exercises with exact checking and keeps your progress; the link at the end opens the same lesson there.

Why start with AND rather than NOT?

Because a rule with two inputs and one operator is the smallest thing with a truth table worth reading. NOT arrives in the third step, where the entry rule needs it.

Related

Guides

Laws

Tools

Practice

See also

Lessons

Generated from the Tangibool engine, semantics tangibool-semantics/1, engine 1.0.0, build . Every table, map, simplification and verdict on these pages was computed by the Tangibool engine when the site was built, and every claim was re-checked by the same exact checker the app uses. Limits are stated where they apply. © 2026 Foreranger LTD.