diff --git a/src/astPredef.ml b/src/astPredef.ml
index 1e1dd9d007791c5bf1bc4bddedc38d5fec76d136..61859b4523ba868ca37f37c4f8c0002d6ada7527 100644
--- a/src/astPredef.ml
+++ b/src/astPredef.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 28/05/2013 (at 10:47) by Erwan Jahier> *)
+(* Time-stamp: <modified the 26/06/2014 (at 18:29) by Erwan Jahier> *)
 
 (** Predefined operators Type definition *)
 
@@ -21,10 +21,9 @@ type op =
   | IMPL_n
   | EQ_n
   | NEQ_n
-  | LT_n
-  | LTE_n
-  | GT_n
-  | GTE_n
+  | LT_n | LTE_n | GT_n | GTE_n
+  | ILT_n | ILTE_n| IGT_n| IGTE_n 
+  | RLT_n| RLTE_n| RGT_n| RGTE_n 
   | DIV_n
   | MOD_n
 (* ternary *)
@@ -55,7 +54,10 @@ type op =
 
 let all_op = [ 
   NOT_n;  REAL2INT_n;  INT2REAL_n;  AND_n;  OR_n;  XOR_n;  IMPL_n;  
-  EQ_n;  NEQ_n;  LT_n;  LTE_n;  GT_n;  GTE_n;  DIV_n;  MOD_n;  IF_n;  
+  EQ_n;  NEQ_n;  LT_n;  LTE_n;  GT_n;  GTE_n;  
+  LT_n; LTE_n; GT_n; GTE_n ;
+  ILT_n; ILTE_n; IGT_n; IGTE_n ;
+  DIV_n;  MOD_n;  IF_n;  
   NOR_n;  DIESE_n;  UMINUS_n;  MINUS_n;  PLUS_n;  SLASH_n;  TIMES_n; 
   IUMINUS_n;  IMINUS_n;  IPLUS_n;  ISLASH_n;  ITIMES_n;  RUMINUS_n;  
   RMINUS_n;  RPLUS_n;  RSLASH_n;  RTIMES_n
@@ -69,7 +71,10 @@ let iterable_op =  [
   DIV_n; MOD_n; IUMINUS_n; IMINUS_n; IPLUS_n; ISLASH_n; ITIMES_n;
   RUMINUS_n; RMINUS_n; RPLUS_n; RSLASH_n; RTIMES_n ;
   UMINUS_n; MINUS_n; PLUS_n; SLASH_n; TIMES_n ; 
-  EQ_n; NEQ_n; LT_n; LTE_n; GT_n; GTE_n ;
+  EQ_n; NEQ_n; 
+  LT_n; LTE_n; GT_n; GTE_n ;
+  ILT_n; ILTE_n; IGT_n; IGTE_n ;
+  RLT_n; RLTE_n; RGT_n; RGTE_n ;
   IF_n; 
  ]
 
@@ -89,10 +94,10 @@ let op2string = function
   | IMPL_n -> "=>"
   | EQ_n -> "="
   | NEQ_n -> "<>"
-  | LT_n -> "<"
-  | LTE_n -> "<="
-  | GT_n -> ">"
-  | GTE_n -> ">="
+  | LT_n | ILT_n  | RLT_n -> "<"
+  | LTE_n | ILTE_n | RLTE_n -> "<="
+  | GT_n  | IGT_n  | RGT_n -> ">"
+  | GTE_n | IGTE_n | RGTE_n -> ">="
   | DIV_n -> "div"
   | MOD_n -> "mod"
   | IF_n -> "if"
@@ -119,9 +124,17 @@ let op2string_long = function
   | NEQ_n -> "neq"
   | IMPL_n -> "impl"
   | LT_n -> "lt"
+  | ILT_n -> "ilt"
+  | RLT_n -> "rlt"
   | LTE_n -> "lte"
+  | ILTE_n -> "ilte"
+  | RLTE_n -> "rlte"
   | GT_n -> "gt"
+  | IGT_n -> "igt"
+  | RGT_n -> "rgt"
   | GTE_n -> "gte"
+  | IGTE_n -> "igte"
+  | RGTE_n -> "rgte"
   | DIESE_n -> "diese"
   | UMINUS_n -> "uminus"
   | MINUS_n -> "minus"
@@ -141,7 +154,10 @@ let op2string_long = function
   | op -> op2string op
 
 let is_infix = function
-  | AND_n | OR_n | XOR_n | IMPL_n | EQ_n | NEQ_n | LT_n | LTE_n | GT_n | GTE_n | DIV_n
+  | AND_n | OR_n | XOR_n | IMPL_n | EQ_n | NEQ_n | LT_n | LTE_n | GT_n | GTE_n 
+  | ILT_n | ILTE_n| IGT_n| IGTE_n 
+  | RLT_n| RLTE_n| RGT_n| RGTE_n 
+  | DIV_n
   | MOD_n | IF_n | MINUS_n | PLUS_n | SLASH_n | TIMES_n | IMINUS_n | IPLUS_n
   | ISLASH_n | ITIMES_n | RMINUS_n | RPLUS_n | RSLASH_n | RTIMES_n
       -> true
@@ -171,9 +187,17 @@ let (string_to_op : string -> op) =
     | "eq" -> EQ_n
     | "neq" -> NEQ_n
     | "lt" -> LT_n
+    | "ilt" -> ILT_n
+    | "rlt" -> RLT_n
     | "lte" -> LTE_n
+    | "ilte" -> ILTE_n
+    | "rlte" -> RLTE_n
     | "gt" -> GT_n
+    | "igt" -> IGT_n
+    | "rgt" -> RGT_n
     | "gte" -> GTE_n
+    | "igte" -> IGTE_n
+    | "rgte" -> RGTE_n
     | "div" -> DIV_n
     | "mod" -> MOD_n
         (* ternary *)
diff --git a/src/licEvalConst.ml b/src/licEvalConst.ml
index 97a9c4f2a286199836d37e699b67f325dde5882c..f657a4620f1f7ca9fb649bd37e70d832be5d300d 100644
--- a/src/licEvalConst.ml
+++ b/src/licEvalConst.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 11/04/2013 (at 15:31) by Erwan Jahier> *)
+(* Time-stamp: <modified the 26/06/2014 (at 18:32) by Erwan Jahier> *)
 
 open AstPredef
 open Lic
@@ -145,10 +145,10 @@ let f
       | IMPL_n -> bbb_evaluator (fun a b -> (not a) || b) ll
       | EQ_n   -> aab_evaluator (=) ll
       | NEQ_n  -> aab_evaluator (<>) ll 
-      | LT_n   -> aab_evaluator (<) ll
-      | LTE_n  -> aab_evaluator (<=) ll
-      | GT_n   -> aab_evaluator (>) ll
-      | GTE_n  -> aab_evaluator (>=) ll
+      | LT_n  | ILT_n  | RLT_n   -> aab_evaluator (<) ll
+      | LTE_n | ILTE_n | RLTE_n  -> aab_evaluator (<=) ll
+      | GT_n  | IGT_n  | RGT_n   -> aab_evaluator (>) ll
+      | GTE_n | IGTE_n | RGTE_n  -> aab_evaluator (>=) ll
       | DIV_n  -> iii_evaluator (/) ll
       | MOD_n  -> iii_evaluator (mod) ll
       | IF_n -> ite_evaluator ll
diff --git a/src/licEvalType.ml b/src/licEvalType.ml
index d508230e642f217dde1691cac6bf3da57963619d..ed8865d89fda55b16c26b3c502b962c5ebcca1a8 100644
--- a/src/licEvalType.ml
+++ b/src/licEvalType.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 11/04/2013 (at 15:51) by Erwan Jahier> *)
+(* Time-stamp: <modified the 26/06/2014 (at 18:31) by Erwan Jahier> *)
 
 open AstPredef
 open Lxm
@@ -80,6 +80,9 @@ let baaa_profile = [(id "c", b);(id "b1",(TypeVar Any));(id "b2",(TypeVar Any))]
 (** overloaded operator profiles *)
 let oo_profile  = [(id "i",(TypeVar AnyNum))], [(id "o",(TypeVar AnyNum))]
 let ooo_profile = [(id "i1",(TypeVar AnyNum));(id "i2",(TypeVar AnyNum))], [(id "o",(TypeVar AnyNum))]
+let oob_profile = [(id "i1",(TypeVar AnyNum));(id "i2",(TypeVar AnyNum))], [(id "o",b)]
+let iib_profile = [(id "i1",i);(id "i2",i)], [(id "o",b)]
+let rrb_profile = [(id "i1",r);(id "i2",r)], [(id "o",b)]
 
 (* let diese_profile = assert false *)
 
@@ -275,8 +278,12 @@ let op2profile
         | UMINUS_n         -> oo_profile
         | IUMINUS_n        -> ii_profile
         | RUMINUS_n        -> rr_profile
-        | IMPL_n | AND_n | OR_n | XOR_n              -> bbb_profile 
-        | NEQ_n | EQ_n | LT_n | LTE_n | GT_n | GTE_n -> aab_profile 
+        | IMPL_n | AND_n | OR_n | XOR_n  -> bbb_profile 
+        | NEQ_n 
+        | EQ_n  -> aab_profile 
+        | RLT_n | RLTE_n | RGT_n | RGTE_n -> rrb_profile 
+        | ILT_n | ILTE_n | IGT_n | IGTE_n -> iib_profile 
+        | LT_n | LTE_n | GT_n | GTE_n -> oob_profile 
         | MINUS_n  |  PLUS_n |  TIMES_n |  SLASH_n | DIV_n -> ooo_profile 
         | RMINUS_n | RPLUS_n | RTIMES_n | RSLASH_n         -> rrr_profile
         | MOD_n | IMINUS_n | IPLUS_n | ISLASH_n | ITIMES_n -> iii_profile
diff --git a/test/lus2lic.sum b/test/lus2lic.sum
index ca025fce7985dac827b41731bdd3aba8a88c1094..d6727483032444074df23113a0c5d7879f5b74c7 100644
--- a/test/lus2lic.sum
+++ b/test/lus2lic.sum
@@ -1,4 +1,4 @@
-Test Run By jahier on Thu Jun 26 17:47:00 2014
+Test Run By jahier on Thu Jun 26 18:33:40 2014
 Native configuration is i686-pc-linux-gnu
 
 		=== lus2lic tests ===
@@ -615,10 +615,11 @@ PASS: ./myec2c {-o /tmp/pipeline.c /tmp/pipeline.ec}
 PASS: ../utils/test_lus2lic_no_node should_work/pipeline.lus
 PASS: ./lus2lic {-2c should_work/pipeline.lus -n pipeline}
 PASS: gcc pipeline_pipeline.c pipeline_pipeline_loop.c 
-FAIL: without any option: ./lus2lic {-o /tmp/mapinf.lic should_work/mapinf.lus}
-FAIL: Generate ec code  : ./lus2lic {-ec -o /tmp/mapinf.ec should_work/mapinf.lus}
-FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/mapinf.lus
-FAIL: Generate c code  : ./lus2lic {-2c should_work/mapinf.lus -n mapinf}
+PASS: ./lus2lic {-o /tmp/mapinf.lic should_work/mapinf.lus}
+PASS: ./lus2lic {-ec -o /tmp/mapinf.ec should_work/mapinf.lus}
+PASS: ./myec2c {-o /tmp/mapinf.c /tmp/mapinf.ec}
+PASS: ../utils/test_lus2lic_no_node should_work/mapinf.lus
+PASS: ./lus2lic {-2c should_work/mapinf.lus -n mapinf}
 PASS: gcc mapinf_mapinf.c mapinf_mapinf_loop.c 
 PASS: ./lus2lic {-o /tmp/integrator.lic should_work/integrator.lus}
 PASS: ./lus2lic {-ec -o /tmp/integrator.ec should_work/integrator.lus}
@@ -1475,11 +1476,9 @@ XPASS: Test bad programs (semantics): lus2lic {-o /tmp/bug.lic should_fail/seman
 
 		=== lus2lic Summary ===
 
-# of expected passes		1288
-# of unexpected failures	117
+# of expected passes		1293
+# of unexpected failures	113
 # of unexpected successes	21
 # of expected failures		37
-testcase ./lus2lic.tests/non-reg.exp completed in 136 seconds
-testcase ./lus2lic.tests/progression.exp completed in 1 seconds
-testcase ./lus2lic.tests/non-reg.exp completed in 136 seconds
-testcase ./lus2lic.tests/progression.exp completed in 1 seconds
+testcase ./lus2lic.tests/non-reg.exp completed in 127 seconds
+testcase ./lus2lic.tests/progression.exp completed in 0 seconds
diff --git a/test/lus2lic.time b/test/lus2lic.time
index 1aa21d49f18d621f469fab7e647306d324ff9115..fc37b3d2f3b3c3a058ac4ad29f85e57634d69354 100644
--- a/test/lus2lic.time
+++ b/test/lus2lic.time
@@ -1,2 +1,2 @@
-testcase ./lus2lic.tests/non-reg.exp completed in 136 seconds
-testcase ./lus2lic.tests/progression.exp completed in 1 seconds
+testcase ./lus2lic.tests/non-reg.exp completed in 127 seconds
+testcase ./lus2lic.tests/progression.exp completed in 0 seconds
diff --git a/test/should_work/mapinf.lus b/test/should_work/mapinf.lus
index 72de52d1ddf74019f7e3cbdbf669e4fcf655bbe4..501732ba0f5559d762424b09fdbcae11c313cb80 100644
--- a/test/should_work/mapinf.lus
+++ b/test/should_work/mapinf.lus
@@ -1,5 +1,5 @@
 node mapinf (t1, t2: int^10) returns (res :  bool^10);
 let
-  res = map<< lt,  10>>(t1, t2);
+  res = map<< Lustre::lt,  10>>(t1, t2);
 tel