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) ^ ")"