let mk_ltype ltype = match ltype with
| Linteger -> Fol.PTint
| Lreal -> Fol.PTreal
| Ctype typ -> mk_ctype typ
| Ltype _ when is_bool_ltype ltype -> bool_type
| Ltype _ ->
let str = Pretty_utils.sfprintf "%a" !Ast_printer.d_logic_type ltype in
let str = "logic type: "^str in
raise (Unsupported str)
| Lvar tname when ltype = Macros.memory_ltype
or ltype = Macros.memory_type_ltype ->
Fol.PTexternal ([], tname)
| Lvar _ ->
let str = Pretty_utils.sfprintf "%a" !Ast_printer.d_logic_type ltype in
let str = "var type: "^str in
raise (Unsupported str)
| Larrow _ ->
let str = Pretty_utils.sfprintf "%a" !Ast_printer.d_logic_type ltype in
let str = "arrow type: "^str in
raise (Unsupported str)