let len,names = aux [] 0 t in
let len = len - arity in
List.fold_left
- (fun (n,l) x -> if n <= len then n+1,l@[x] else n,l) (0,[])
+ (fun (n,l) x -> if n < len then n+1,l@[x] else n,l) (0,[])
names
in
let compose c1 nc1 c2 nc2 =
debug_print (lazy ("\nCOMPOSING"));
debug_print (lazy (" c1= "^CicPp.ppterm c1 ^" : "^ CicPp.ppterm c1_ty));
debug_print (lazy (" c2= "^CicPp.ppterm c2 ^" : "^ CicPp.ppterm c2_ty));
- let saturations_for_c1, names_c1 = count_saturations_needed c1_ty arity in
- let saturations_for_c2, names_c2 = count_saturations_needed c2_ty 0 in
+ let saturations_for_c1, names_c1 = count_saturations_needed c1_ty 0 in
+ let saturations_for_c2, names_c2 = count_saturations_needed c2_ty arity in
let c = compose c1 saturations_for_c1 c2 saturations_for_c2 in
let spline_len = saturations_for_c1 + saturations_for_c2 in
let c = mk_lambda_spline c (namer (names_c1 @ names_c2)) spline_len in