b_compute_arith_expression2(unary_minus(Arg1),_I,LocalState,State,Value,WF) :- !,
b_compute_arith_expression(Arg1,LocalState,State,SV1,WF),
Value = '-'(SV1).
b_compute_arith_expression2(add(Arg1,Arg2),_I,LocalState,State,Value,WF) :- !,
b_compute_arith_expression(Arg1,LocalState,State,SV1,WF),
b_compute_arith_expression(Arg2,LocalState,State,SV2,WF),
Value = '+'(SV1,SV2).
b_compute_arith_expression2(minus(Arg1,Arg2),_I,LocalState,State,Value,WF) :- !,
b_compute_arith_expression(Arg1,LocalState,State,SV1,WF),
b_compute_arith_expression(Arg2,LocalState,State,SV2,WF),
Value = '-'(SV1,SV2).
b_compute_arith_expression2(multiplication(Arg1,Arg2),_I,LocalState,State,Value,WF) :- !,
b_compute_arith_expression(Arg1,LocalState,State,SV1,WF),
b_compute_arith_expression(Arg2,LocalState,State,SV2,WF),
Value = '*'(SV1,SV2).
b_compute_arith_expression2(Expr,Info,LocalState,State,Value,WF) :-
b_compute_expression2(Expr,integer,Info,LocalState,State,int(Value),WF).