#use "boolean.ml";; #use "testUtils.ml";; (* Test bitand *) let prt_f f = print_endline (f_to_str f) ;; let prt_vec x = prt_str_list (List.map f_to_str x) ;; let n0 = [False] ;; let n1 = [True] ;; let n2 = [Var 'a'] ;; let x = [True; False; True; True] ;; let y = [Var 'a'; Var 'b'; Var 'c'; Var 'd'] ;; let a1 = [('a',true)] ;; let a2 = [('a',false)] ;; let a3 = [('a',false); ('b',false); ('c',false); ('d',false)] ;; let a4 = [('a',false); ('b',true); ('c',true); ('d',false)] ;; let result = bitand n0 n1;; print_string "% " ; prt_vec result ;; prt_vec (subst [] result) ;; let result = bitand n0 n2;; print_string "% " ; prt_vec result ;; prt_vec (subst a1 result) ;; prt_vec (subst a2 result) ;; let result = bitand n1 n2;; print_string "% " ; prt_vec result ;; prt_vec (subst a1 result) ;; prt_vec (subst a2 result) ;; let result = bitand x y;; print_string "% " ; prt_vec result ;; prt_vec (subst a3 result) ;; prt_vec (subst a4 result) ;; (* Test eq *) let n0 = [False] ;; let n1 = [True] ;; let n2 = [Var 'a'] ;; let a1 = [('a',true)] ;; let a2 = [('a',false)] ;; let result = eq n0 n1;; print_string "% " ; prt_f result ;; prt_bool (eval result []) ;; let result = eq n2 n1;; print_string "% " ; prt_f result ;; prt_bool (eval result a1) ;; prt_bool (eval result a2) ;;