Theory MLSS_Suc_Theory
theory MLSS_Suc_Theory
imports Main Fresh_Identifiers.Fresh
begin
chapter ‹A Type Checker for MLSS›
text ‹
In this chapter, we define a type checker for MLSS that determines which variables of an input
formula are urelements.
For this we reduce the type checking problem to the theory of the successor function.
›
section ‹Solver for the Theory of the Successor Function›
text ‹
We implement a solver for the theory consisting of
variables, 0, and the successor function.
We only deal with equality and not with disequality or inequality.
Disequalities of the form \<^term>‹l ≠ 0› are translated to
\<^term>‹l = Suc x› for some fresh \<^term>‹x›.
Note that disequalities and inequalities can always be fulfilled
by choosing large enough values for the variables.
›