(* Heap_proof.ml *)
load_object "Heap_proof";;
#open "Heap_proof";;
if ((heapsort (cons 4 (cons 5 (cons 9 (cons 1 nil)))))
  <> (cons 1 (cons 4 (cons 5 (cons 9 nil)))))
  then (failwith "heapsort proof")
  else (print_string "Heapsort Proof OK");;

(* Heap_prog.ml *)
#close "Heap_proof";;

load_object "Heap_prog";;
#open "Heap_prog";;
if ((heapsort (cons 4 (cons 5 (cons 9 (cons 1 nil)))))
  <> (cons 1 (cons 4 (cons 5 (cons 9 nil)))))
  then (failwith "heapsort program")
  else (print_string "Heapsort Program OK");;
#close "Heap_prog";;

load_object "Mergesort_proof";;
#open "Mergesort_proof";;
if ((mergesort (cons 4 (cons 5 (cons 9 (cons 1 nil)))))
  <> (cons 1 (cons 4 (cons 5 (cons 9 nil)))))
  then failwith "Mergesort proof"
  else (print_string "Mergesort Proof OK")
;;
#close "Mergesort_proof";;

load_object "Mergesort_prog";;
#open "Mergesort_prog";;
if ((mergesort (cons 4 (cons 5 (cons 9 (cons 1 nil)))))
  <> (cons 1 (cons 4 (cons 5 (cons 9 nil)))))
  then failwith "Mergesort program"
  else (print_string "Mergesort Program OK")
;;
#close "Mergesort_prog";;

load_object "Quick_proof";;
#open "Quick_proof";;
if (Quicksort (cons 4 (cons 5 (cons 9 (cons 1 nil))))
  <> (cons 1 (cons 4 (cons 5 (cons 9 nil)))))
  then failwith "Quicksort Proof"
  else (print_string "Quicksort Proof OK");;
#close "Quick_proof";;

load_object "Quick_prog";;
#open "Quick_prog";;
if (Quicksort (cons 4 (cons 5 (cons 9 (cons 1 nil))))
  <> (cons 1 (cons 4 (cons 5 (cons 9 nil)))))
  then failwith "Quicksort Program"
  else (print_string "Quicksort Program OK");;
#close "Quick_prog";;

load_object "Euclid_proof";;
#open "Euclid_proof";;
if (eucl_int 150 32131)<>(pair_C(214,31))
 then failwith "Euclid Proof"
 else (print_string "Euclid Proof OK");;
#close "Euclid_proof";;

load_object "Euclid_prog";;
#open "Euclid_prog";;
if (eucl_int 150 32131)<>(pair_C(214,31))
 then failwith "Euclid Program"
 else (print_string "Euclid Program OK");;
#close "Euclid_prog";;

print_string "end of benchmark";;

quit();;
