See also boolean algebra.

Propositional Logic vs Predicate Logic

Propositional Logic (Aussagenlogik):

  • Deals with simple true/false statements
  • Uses logical operators (∧, ∨, ¬, →, ↔)
  • Examples: “It’s raining”, “The sun is shining”

Predicate Logic (Prädikatenlogik):

  • Extends propositional logic
  • Adds predicates (properties/relations)
  • Includes variables and quantifiers (∀, ∃)

A proposition is a statement with a truth value.
A predicate is a function that returns a truth value for given inputs.

Important equivalences

DeMorgan:

Equivalence:

Indirect proof:

Implication:

Predicate logic

In predicate logic, we use predicates to express statements about objects.
E.g.: “”, is the subject, is the predicate. We abstract the predicat to , and the subject to : .

Quantors

: “for all”, “for each”, “for every” the predicate is true.
: “there exists”, “there is” an for which the predicate is true.
In maths (as opposed to logic), the notation is usually to put a colon behind the quantor: .
If it’s not clear where comes from, we can specify a domain: .

: “there does not exist” an for which the predicate is true.
: “there exists exactly one” for which the predicate is true.

EXAMPLE

“is a human”, “is mortal”
“All humans are mortal”:

“is prime”, “is odd”
“Every prime number is either odd or equal to

… which is short for:

… which is short for:

Equivalences

and are not distributive over each other. E.g.

Relating predicates to set theory

Predicates for a class can be seen as the sets underlying the set ,
Let .
Then

: , i.e. . If is true, then must also be true. If is false, then can be either true or false.
: , i.e. both and are true.
: , i.e. at least one of or is true.
: , i.e. is false.

Propositional logic

The strictly formal syntax definition from the lecture:

Note: Only the symbols used here allowed; every expression must be enclosed in parentheses.

Alternative notation / terminology:

![[logic-1760348746395.webp]]
![[logic-1760348758819.webp]]
![[logic-1760350968485.webp]]
![[logic-1760351026760.webp]]
![[logic-1760351130505.webp]]

Terminology

Model = Satisfying assignment
Clause = Disjunction of literals (e.g. ) … set of clauses = CNF
Term = Conjunction of literals (e.g. ) … ) … set of terms = DNF
Empty clause
Empty term

Consequence

means “entails” or “proves”. It is a meta-level claim about all possible truth asignments, denoting that a statement is a logical consequence of another statement / series of statements (it’s a relation between formulas not within formulas).
If , then is a logical consequence of , by definition whenever is true, must also be true.


… the formula is a tautology (“valid”/“gültig”). The left side (empty set of premises) is .
is a contradiction (“unerfüllbar” / unsatisfiable).
is not true in all interpretations → is “widerlegbar” (falsifiable / refutable).
is not a contradiction → is “erfüllbar” (satisfiable).

Strength of formulas

A formula is stronger than formula iff , i.e. .
A formula is weaker than formula iff , i.e. .
Formulas and equally strong iff and , i.e. (logical equivalence).

Stronger = more specific = fewer models
Weaker = more general = more models
Equally strong = the same models

EXAMPLE

is stronger than , since is only true if exactly one of or is true, while is true if at least one of them is true.
is stronger than , since is only true if both and are true, while is true if at least one of them is true.
is the strongest formula. There’s no world in which it is true , and since for every formula , for every formula .
is the weakest formula. It’s true in every world , and since for every formula , for every formula .

Transclude of SAT

is valid → is unsatisfiable
is refutable → is satisfiable
is unsatisfiable
is unsatisfiable

Resolution

Resolution proves UNSAT by refutation:
To show a set of clauses is unsatisfiable, you try to derive (a contradiction).
To show a statement is valid (a tautology), you show is unsatisfiable (derive ).
To show , you add to , convert to CNF, and try to refute. If you get , then indeed every model of is a model of .

The top two are the parents.
is the pivot (it appears positive in one parent and negated in the other).
The bottom is the resolvent: you drop and , and keep the disjunction of what’s left.
or could be empty.
If both are empty, resolving and gives the empty clause .
If one is empty, you get a clause with just the literals from the other parent.

Resolution is used on formulas in CNF. You repeatedly apply the rule to the set of clauses to derive new clauses.

Two key meta-properties:
Sound: every resolvent you derive is a logical consequence of the parents (and thus of your original clauses). So you never “invent” something false (, where is the resolvent of parents and ).
Complete (for refutation): if your clause set is unsatisfiable, then by applying resolution cleverly enough, you can eventually derive the empty clause . (So if it’s impossible to satisfy all clauses, resolution can prove that.)

Derivation of a tautology: From and , pivot on ; the resolvent is , which is (always true). This is sound (because follows from anything), just useless—a tautology doesn’t constrain anything and doesn’t help you reach a contradiction, so it can be safely discarded.

Sequent

… from assumptions (or atecedent / context) , we can derive the goal (or succedent) .

Assuming all , you can prove (e.g. ; modus ponens).
When there are no assumptions, we just write , i.e. is valid / a tautology (e.g. ).
is notation for highlighting that is in the context .
Order of assumptions doesn’t matter.

Relation to :
… there is a proof of from assumptions .
… every model that satisfies all formulas in also satisfies .
iff

?????????????????????????????????????????????????????????????

you can imagine it as a graph. when you have the left side, A1, A2, ..., then you can assume that the right side is true / you can walk to the next node. it's essentially a more fancier form of the modus ponens: A1 and A2 and ... => B1, B2, ... So in classical logic, you can essentially "weaken" (replace) your A's with B's. (and in this tree-ish notation, you put the right side below to left side, A1, ... |- B1, ...)

https://notes.lukasl.dev/Knowledge/Resolution-(Logic)



so you put things on the right side (ors) to the left and negate them
then you eliminate the double negation
then you turn ands into commas since you can view them independently ofc
then you take that other or term to the left, negate it
and then…idfk

this is the best lecture I’ve ever had. just stating definitions and axioms and algorithmis to apply like a calculator with 0 motivation or intuition or build up. reminds me of my high school math classes.

https://chatgpt.com/c/68efe8e3-a964-8326-b599-1b85f72199a8