(* TP 13 - Arbres rouge noir *) type couleur = R | B ;; type arn = V | N of couleur * arn * int * arn ;; let a0 = V;; (* ok *) let a1 = N (R, N (B, V, 0, V), 3, N (B, V, 5, V));; (* non *) let a2 = N (B, N (R, V, 0, V), 3, N (R, V, 5, V));; (* ok *) let a3 = N (B, N (R, V, 0, V), 3, N (B, V, 5, V));; (* non *) let a4 = N (B, N (B, V, 0, V), 3, N (B, V, 5, V));; (* ok *) let a5 = N (B, N (B, V, 0, V), 3, N (R, N (B, V, 4, V), 5, V));; (* non *) let a6 = N (B, N (B, V, 0, V), 3, N (R, N (B, V, 4, V), 5, N (B, V, 7, V)));; (* ok *) let a7 = N (B, N (B, V, 0, V), 3, N (R, N (B, V, 4, V), 5, N (R, V, 7, N (B, V, 8, V) )));; (* non *) (* Q14 *) let valide a = failwith "A FAIRE";; assert (valide a0);; assert (not (valide a1));; assert (valide a2);; assert (not (valide a3));; assert (valide a4);; assert (not (valide a5));; assert (valide a6);; assert (not (valide a7));;