+[EFunc]
+
+<i (es), c> => <o'''(ret),o'> <= <es,c> => <vs,c'>, c(i) => <ds,ss>, c'[clearVars,ds->vs] => c'' <ss,o''> => o'''
+
+Evaluate the arguments in order, find function definition, remove the old variables and add values from the arguments to the parameters. execute the body until retun. Return the value from the return state and the state from the argument expressions.
+
+
+[SReturn]
+
+<return e,c> => c'[ret->v] <= <e,c> => <v,c'>
+
+Evaluate the expression, add the value as return value to the state and stop the execution of the state
+
+[Func]
+
+<t i (ds) ss, c> => c[i-><ds,ss>]
+
+Adds the function i with parameters ds and body ss to the context
+
+[Program]
+
+<fs ss, c> => c'' <= c[fs] => c', <ss,c'> => c''
+
+Add all the function to the context and execute the statements in this context
+
+[SEQ]
+
+<s1;s2,c> => c' <= <s1,c> => c', c'(ret)
+
+If the context returned by s1 contains a return-value, return this context without executing the next statement.
+
+[SWhile]