Skip to content

Instantly share code, notes, and snippets.

@tin-z
Last active April 24, 2022 22:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tin-z/e03f1eafece072fb1f6ca0e9413fc93a to your computer and use it in GitHub Desktop.
Save tin-z/e03f1eafece072fb1f6ca0e9413fc93a to your computer and use it in GitHub Desktop.
"Reverse Engineering 3201: Symbolic Analysis" class notes

"Reverse Engineering 3201: Symbolic Analysis" class notes

Proposition

  • collection of statements, that are either true or false

Compound proposition

  • connect multiple proposition using boolean operators
  • Tautology: A compound proposition that is always true.
  • Contradiction: A compund proposition that is always false.
  • Contingency: A compound proposition that is neither a tautology nor a contradiction
  • SATisfiable: A compound proposition is SATisfiable, if there is at least one assignment of truth values to the variables that makes the statement true.

Propositional logic

  • Propostitional logic is the process of assigning a truth table to a proposition.
  • Propositions consist of propositional variables, which are combined via propositional connectives.
  • Propositional logic is also known as a way of "deducting" a proof from known true statements, and how they are related to each other.
  • The "deduction" process is called reasoning.

Predicates

  • Predicates are expressions, with one or multiple variables, that are defined over a specific domain.
  • They can be viewed as "extended" propositions.
  • It is possible to reduce a predicate to a proposition by "concretizing" the value of a variable or by quantifying it.
  • To quantify them, we use operators called "Quantifiers".

Quantifiers

  • To quantify an expression means to express to which extend a predicate is true over a set of elements. There are two of them:
    • ∀ (FOR ALL/FOR ANY/FOR EACH): It is the universal quantifier
    • ∃ (THERE EXISTS): It is the existencial quantifier

Predicate Logic

  • Builds upon the ideas of propositional logic, providing a more powerful system for expression and reasoning.
    • Propositional logic isn't powerful enough to represent all types of assertions that are used in computer science and mathematics.
    • Then it was expanded with the quantifiers to express these more complex statements in terms of predicates, variables and quantifiers.

SAT problem

  • Given a forumal in propositional logic, decide if it is satisfiable or not

Satisfiable modulo theories (SMT) solver

  • SAT solve a problem composed of only boolean operands, and so propositional logic
  • SMT extends SAT to arithmetic operands also

Constraints

  • Groundtruth where's SMT/SAT reason upon
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment