let rec print_bexp (b: bexp) = match b with
          B(b)              ->  if(b) then "B(true) " else "B(false)"
        | Equ(ex1,ex2)      ->  "Equ(" ^ (print_aexp ex1)^ "," ^(print_aexp ex2)^")"
        | LE(ex1,ex2)       ->  "LE(" ^ (print_aexp ex1)^ "," ^(print_aexp ex2)^")"
        | LT(ex1,ex2)       ->  "LT(" ^ (print_aexp ex1)^ "," ^(print_aexp ex2)^")"
        | Not(bex)          ->  "Not(" ^ (print_bexp bex) ^ ")"
        | And(bex1,bex2)    ->  "And(" ^ (print_bexp bex1) ^ "," ^ (print_bexp bex2) ^ ")"
        | Or(bex1,bex2)     ->  "Or(" ^ (print_bexp bex1) ^ "," ^ (print_bexp bex2) ^ ")"