Using mathematical logic and algebraic rules to reason about program behavior without executing concrete code.