let mk_array_length (t:'Fol.d_term) ctype =
  match ctype with
    | TArray (_t, Some {enode = Const sz}, _, _) ->
        begin
        match Ast_info.possible_value_of_integral_const sz with
          | Some  sz_int64 -> 
              let sz_fol = Int64.to_string sz_int64 in
              let sz_fol = Fol.Tconst (Fol.ConstInt sz_fol) in
              let array_size = Why_ops.array_length t in
              let eq =  Why_ops.pred_eq array_size sz_fol in
                Some eq
          | _ -> None
        end
    | _ -> None