#use "boolean.ml";; #use "testUtils.ml";; let prt_f f = print_endline (f_to_str f) ;; let prt_vec x = prt_str_list (List.map f_to_str x) ;; (* Test subst *) let f1 = True ;; let f2 = Var 'x';; let f3 = And(Var 'y', True) ;; let a1 = [] ;; let a2 = [('x', true)] ;; let a3 = [('x', false)] ;; let a4 = [('x', true); ('y', false)] ;; prt_vec (subst a1 [f1]) ;; prt_vec (subst a2 [f2]) ;; prt_vec (subst a4 [f3]) ;; prt_vec (subst a4 [f2;f1;f3]) ;; (* Test zero *) let n0 = [] ;; 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 = zero n0 ;; print_string "% " ; prt_f result ;; prt_bool (eval result []) ;; let result = zero n1 ;; print_string "% " ; prt_f result ;; prt_bool (eval result []) ;; let result = zero n2 ;; print_string "% " ; prt_f result ;; prt_bool (eval result a1) ;; let result = zero y ;; print_string "% " ; prt_f result ;; prt_bool (eval result a3) ;; let result = zero y ;; print_string "% " ; prt_f result ;; prt_bool (eval result a4) ;;