File tree Expand file tree Collapse file tree 1 file changed +14
-10
lines changed Expand file tree Collapse file tree 1 file changed +14
-10
lines changed Original file line number Diff line number Diff line change @@ -102,18 +102,22 @@ void smt2_solvert::expand_function_applications(exprt &expr)
102
102
domain.size () == app.arguments ().size (),
103
103
" number of parameters must match number of arguments" );
104
104
105
- replace_symbolt replace_symbol;
106
-
107
- for (std::size_t i = 0 ; i < domain.size (); i++)
105
+ // Does it have a definition? It's otherwise uninterpreted.
106
+ if (!f.definition .is_nil ())
108
107
{
109
- replace_symbol.insert (
110
- symbol_exprt (f.parameters [i], domain[i]), app.arguments ()[i]);
108
+ replace_symbolt replace_symbol;
109
+
110
+ for (std::size_t i = 0 ; i < domain.size (); i++)
111
+ {
112
+ replace_symbol.insert (
113
+ symbol_exprt (f.parameters [i], domain[i]), app.arguments ()[i]);
114
+ }
115
+
116
+ exprt body = f.definition ;
117
+ replace_symbol (body);
118
+ expand_function_applications (body);
119
+ expr = body;
111
120
}
112
-
113
- exprt body = f.definition ;
114
- replace_symbol (body);
115
- expand_function_applications (body);
116
- expr = body;
117
121
}
118
122
}
119
123
}
You can’t perform that action at this time.
0 commit comments