diff --git a/src/plugins/wp/Why3Import.ml b/src/plugins/wp/Why3Import.ml
index d4d681572d62bdaa53707ae9d9b3acd2667d8059..812824cd3402a9b6e7365c849993a23b86e5dba2 100644
--- a/src/plugins/wp/Why3Import.ml
+++ b/src/plugins/wp/Why3Import.ml
@@ -106,7 +106,9 @@ type tenv = C.logic_type_info W.Ty.Hts.t
 type lenv = C.logic_info W.Term.Hls.t
 type tvars = C.logic_type W.Ty.Mtv.t
 
-
+(* -------------------------------------------------------------------------- *)
+(* ---    Built-in                                                        --- *)
+(* -------------------------------------------------------------------------- *)
 let _populate_tenv_builtin (tenv:tenv) =
   let _integer = C.Linteger in
   let _real = C.Lreal in
@@ -128,6 +130,7 @@ let tvars_of_txs (txs: W.Ty.tvsymbol list) : string list * tvars =
        let x = tv.tv_name.id_string in
        match x with
        | "int" -> x :: txs, W.Ty.Mtv.add tv (C.Linteger) tvs
+       | "real" -> x :: txs, W.Ty.Mtv.add tv (C.Lreal) tvs
        | _ ->  x :: txs, W.Ty.Mtv.add tv (C.Lvar x) tvs
     ) txs ([], W.Ty.Mtv.empty)
 
@@ -164,7 +167,7 @@ let lv_of_ty (tenv:tenv) (tvars:tvars) (index) (ty:W.Ty.ty) : C.logic_var =
   Cil_const.make_logic_var_formal (Printf.sprintf "x%d" index)
   @@ (lt_of_ty tenv tvars ty)
 
-let lr_of_ty_opt (lt_opt) =
+let lt_of_ty_opt (lt_opt) =
   match lt_opt with
   | None -> C.Ctype (C.TVoid []) (* Same as logic_typing *)
   | Some tr -> tr
@@ -175,7 +178,7 @@ let li_of_ls (tenv:tenv) (ls : W.Term.lsymbol) (lenv:lenv)  : C.logic_info =
   let l_type = Option.map (lt_of_ty tenv tvars ) ls.ls_value in
   let l_profile = List.mapi (lv_of_ty tenv tvars ) ls.ls_args in
   let l_args = List.map ( fun (lv:C.logic_var) -> lv.lv_type) l_profile in
-  let signature = C.Larrow (l_args, lr_of_ty_opt l_type) in
+  let signature = C.Larrow (l_args, lt_of_ty_opt l_type) in
   let li =
     C.{
       l_var_info = Cil_const.make_logic_var_global