added symbolic solver from Garvit