FOL with Update Expressions
Syntactic extension of FOL with if-then-else, function update, sets.
If-Then-Else
ite(p,x,y) = if p then x else y
Function Update
f (a:=b)(x)
f ( (a,b) :=c)(x,y)
Sets
Set variables (not quantified).
Set operations , , , .
Syntax Summary
Elimination of Extensions
Substituting Function Symbols
Consider symbolic execution of assignment to local variable
x = e
Evaluate e in current symbolic state, then assign symbolic value of x to result.
Consider
x.f = e;
i.e.
f = f(x:=e)
We need to replace f with f(x:=e).
- do we always get syntactically valid formula in FOL extension above?