From dccec723fdf1c1f82bd9862dffb80d4a30500354 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?L=C3=A9lio=20Brun?= <lelio.brun@isae-supaero.fr>
Date: Mon, 20 Sep 2021 18:46:44 +0200
Subject: [PATCH] a version that almost work for the k-inuctive two_counters
 example

---
 lustrec.opam                       |    5 +-
 src/backends/Ada/ada_backend.ml    |    2 +-
 src/backends/C/c_backend_spec.ml   |  367 +++-
 src/backends/EMF/EMF_backend.ml    |    4 +-
 src/causality.ml                   |    2 +-
 src/compiler_common.ml             |   11 +-
 src/corelang.ml                    |   19 +-
 src/corelang.mli                   |    2 +-
 src/lustre_types.ml                |    5 +-
 src/lustre_types.mli               |    5 +-
 src/machine_code.ml                |   27 +-
 src/machine_code_common.ml         |    5 +-
 src/machine_code_types.mli         |    1 +
 src/normalization.ml               |   19 +-
 src/parsers/lexerLustreSpec.mll    |    3 +
 src/parsers/parser_lustre.messages | 2552 +++++++++++++++-------------
 src/parsers/parser_lustre.mly      |    9 +-
 src/printers.ml                    |    2 +-
 18 files changed, 1812 insertions(+), 1228 deletions(-)

diff --git a/lustrec.opam b/lustrec.opam
index de638737..bfa086ed 100644
--- a/lustrec.opam
+++ b/lustrec.opam
@@ -25,7 +25,7 @@ depends: [
 ]
 depopts: ["z3"]
 build: [
-  ["dune" "subst" "--root" "."] {dev}
+  ["dune" "subst"] {dev}
   [
     "dune"
     "build"
@@ -33,8 +33,7 @@ build: [
     name
     "-j"
     jobs
-    "--promote-install-files"
-    "false"
+    "--promote-install-files=false"
     "@install"
     "@runtest" {with-test}
     "@doc" {with-doc}
diff --git a/src/backends/Ada/ada_backend.ml b/src/backends/Ada/ada_backend.ml
index fde6f784..a94b1b12 100644
--- a/src/backends/Ada/ada_backend.ml
+++ b/src/backends/Ada/ada_backend.ml
@@ -86,7 +86,7 @@ let extract_contract machines m =
        l) -> assert false | Expr_appl call -> assert false *)
   in
   match m.mspec.mnode_spec with
-  | Some (NodeSpec (ident, _)) ->
+  | Some (NodeSpec ident) ->
     let machine_spec = find_submachine_from_ident ident machines in
     let guarantees =
       match machine_spec.mspec.mnode_spec with
diff --git a/src/backends/C/c_backend_spec.ml b/src/backends/C/c_backend_spec.ml
index 6777839f..2e5498d6 100644
--- a/src/backends/C/c_backend_spec.ml
+++ b/src/backends/C/c_backend_spec.ml
@@ -195,7 +195,7 @@ let pp_separated'' =
     pp_var_decl
 
 let pp_forall pp_l pp_r fmt (l, r) =
-  fprintf fmt "@[<v 2>\\forall %a;@,%a@]" pp_l l pp_r r
+  fprintf fmt "@[<v 2>\\forall @[<hov>%a@];@,%a@]" pp_l l pp_r r
 
 let pp_exists pp_l pp_r fmt (l, r) =
   fprintf fmt "@[<v 2>\\exists %a;@,%a@]" pp_l l pp_r r
@@ -240,6 +240,9 @@ let pp_paren pp fmt v = fprintf fmt "(%a)" pp v
 let pp_initialization pp_mem fmt (name, mem) =
   fprintf fmt "%s_initialization(%a)" name pp_mem mem
 
+let pp_init pp_mem fmt (name, mem) =
+  fprintf fmt "%s_init(%a)" name pp_mem mem
+
 let pp_initialization' = pp_initialization pp_print_string
 
 let pp_local m =
@@ -628,6 +631,12 @@ let pp_predicate pp_l pp_r fmt (l, r) =
 let pp_lemma pp_l pp_r fmt (l, r) =
   fprintf fmt "@[<v 2>lemma %a:@,%a;@]" pp_l l pp_r r
 
+let pp_axiomatic pp_l pp_r fmt (l, r) =
+  fprintf fmt "@[<v 2>axiomatic %a {@,%a@]@;}" pp_l l pp_r r
+
+let pp_axiom pp_l pp_r fmt (l, r) =
+  fprintf fmt "@[<v 2>axiom %a:@,%a;@]" pp_l l pp_r r
+
 let pp_mem_valid_def fmt m =
   if not (fst (get_stateless_status m)) then
     let name = m.mname.node_id in
@@ -991,13 +1000,315 @@ module SrcMod = struct
       fmt
       ()
 
-  let pp_node_spec m fmt = function
-    | Contract c
-    | NodeSpec (_, Some c) ->
-      PrintSpec.pp_spec PrintSpec.TransitionMode m fmt
-        (Spec_common.red (Imply (c.mc_pre, c.mc_post)))
-    | NodeSpec (f, None) ->
-      pp_print_string fmt f
+  let spec_from_contract c =
+    Spec_common.red (Imply (c.mc_pre, c.mc_post))
+
+  let pp_contract m fmt c =
+    PrintSpec.pp_spec PrintSpec.TransitionMode m fmt (spec_from_contract c)
+
+  let contract_of machines m =
+    match m.mspec.mnode_spec with
+    | Some spec ->
+      begin match spec with
+        | Contract c ->
+          Some c, None
+        | NodeSpec f ->
+          let m_f = find_machine f machines in
+          begin match m_f.mspec.mnode_spec with
+            | Some (Contract c) ->
+              Some c, Some m_f
+            | _ ->
+              None, None
+          end
+      end
+    | None ->
+      None, None
+
+  let pp_init_def fmt m =
+    let name = m.mname.node_id in
+    let mem = mk_mem m in
+    pp_predicate
+      (pp_init (pp_machine_decl' ~ghost:true))
+      (pp_and pp_initialization' (pp_reset_flag' ~indirect:false))
+      fmt
+      ((name, (name, mem)), ((name, mem), mem))
+
+  let rename n x = sprintf "%s_%d" x n
+
+  let rename_var_decl n vd = { vd with var_id = rename n vd.var_id }
+
+  let rec rename_value n v =
+    { v with value_desc =
+                match v.value_desc with
+                  | Machine_code_types.Var v -> Machine_code_types.Var (rename_var_decl n v)
+                  | Fun (f, vs) -> Fun (f, List.map (rename_value n) vs)
+                  | Array vs -> Array (List.map (rename_value n) vs)
+                  | Access (v1, v2) -> Access (rename_value n v1, rename_value n v2)
+                  | Power (v1, v2) -> Power (rename_value n v1, rename_value n v2)
+                  | v -> v
+    }
+
+  let rename_expression: type a. int -> (value_t, a) expression_t -> (value_t, a) expression_t =
+    fun n -> function
+    | Val v -> Val (rename_value n v)
+    | Var v -> Var (rename_var_decl n v)
+    | e -> e
+
+  let rename_predicate n = function
+    | Transition (f, inst, i, es, r, mf, mif) ->
+      Transition (f, inst, i, List.map (rename_expression n) es, r, mf, mif)
+    | p -> p
+
+  let rec rename_formula n = function
+    | Equal (e1, e2) -> Equal (rename_expression n e1, rename_expression n e2)
+    | And fs -> And (List.map (rename_formula n) fs)
+    | Or fs -> Or (List.map (rename_formula n) fs)
+    | Imply (f1, f2) -> Imply (rename_formula n f1, rename_formula n f2)
+    | Exists (xs, f) -> Exists (List.map (rename_var_decl n) xs, rename_formula n f)
+    | Forall (xs, f) -> Forall (List.map (rename_var_decl n) xs, rename_formula n f)
+    | Ternary (e, t, f) -> Ternary (rename_expression n e, rename_formula n t, rename_formula n f)
+    | Predicate p -> Predicate (rename_predicate n p)
+    | ExistsMem (x, f1, f2) -> ExistsMem (rename n x, rename_formula n f1, rename_formula n f2)
+    | Value v -> Value (rename_value n v)
+    | f -> f
+
+    
+  let rename_contract n c =
+    { c with
+      mc_pre = rename_formula n c.mc_pre;
+      mc_post = rename_formula n c.mc_post; }
+
+  let but_last l =
+    List.(rev (tl (rev l)))
+
+  let pp_k_induction_case case m pp_mem_in pp_mem_out pp_vars fmt (n, mem_in, mem_out) =
+    let name = m.mname.node_id in
+    let inputs = m.mstep.step_inputs in
+    let outputs = m.mstep.step_outputs in
+    fprintf fmt "%s_%s_%d(@[<hov>%a,@;%a,@;%a@])"
+      name
+      case
+      n
+      pp_mem_in
+      mem_in
+      pp_vars
+      (inputs @ outputs)
+      pp_mem_out
+      mem_out
+
+  let pp_k_induction_base_case m =
+    pp_k_induction_case "base" m
+
+  let pp_k_induction_inductive_case m =
+    pp_k_induction_case "inductive" m
+
+  let pp_base_cases m fmt (c, m_c, k) =
+    let name = m.mname.node_id in
+    let mem = mk_mem m in
+    let inputs = m.mstep.step_inputs in
+    let outputs = m.mstep.step_outputs in
+    let l = List.init (k - 1) (fun n -> n + 1) in
+    pp_print_list ~pp_open_box:pp_open_vbox0 ~pp_sep:pp_print_cutcut
+      (fun fmt n ->
+         let l = List.init (n + 1) (fun n -> n) in
+         let l' = List.init n (fun n -> n) in
+         let pp =
+           pp_implies
+             (pp_and
+                (pp_and_l (fun fmt -> function
+                     | 0 ->
+                       pp_init pp_print_string fmt (name, rename 0 mem)
+                     | n ->
+                       pp_transition_aux m pp_print_string pp_print_string pp_var_decl
+                         fmt
+                         (name,
+                          List.map (rename_var_decl n) (inputs @ outputs),
+                          rename (n - 1) mem,
+                          rename n mem)))
+                (pp_transition_aux m_c pp_print_string pp_print_string pp_var_decl))
+             (pp_contract m)
+         in
+         pp_predicate
+           (pp_k_induction_base_case
+              m
+              (pp_machine_decl' ~ghost:true)
+              (pp_machine_decl' ~ghost:true)
+              (fun fmt xs -> pp_locals m fmt (List.map (rename_var_decl n) xs)))
+           (pp_forall (pp_locals m)
+              (if n > 1 then
+                 pp_forall
+                   (fun fmt l -> fprintf fmt "%a@,%a"
+                       (pp_machine_decl ~ghost:true
+                          (pp_comma_list ~pp_eol:pp_print_comma
+                             (fun fmt n -> pp_print_string fmt (rename n mem))))
+                       (name, but_last l)
+                       (pp_locals m)
+                       (List.flatten
+                          (List.map (fun n ->
+                               List.map (rename_var_decl n) (inputs @ outputs))
+                              (List.tl l))))
+                   pp
+               else
+                 fun fmt (_, x) -> pp fmt x))
+           fmt
+           ((n, (name, rename (n - 1) mem), (name, rename n mem)),
+            (List.map (rename_var_decl n) m_c.mstep.step_outputs,
+             (l', ((l,
+                    (m_c.mname.node_id,
+                     List.map (rename_var_decl n) (m_c.mstep.step_inputs @ m_c.mstep.step_outputs),
+                     "", "")),
+                   rename_contract n c)))))
+           fmt
+           l
+
+  let pp_inductive_case m fmt (c, m_c, k) =
+    let name = m.mname.node_id in
+    let mem = mk_mem m in
+    let inputs = m.mstep.step_inputs in
+    let outputs = m.mstep.step_outputs in
+    let l = List.init k (fun n -> n + 1) in
+    let pp =
+      pp_implies
+        (pp_and_l (fun fmt n ->
+             pp_and
+               (pp_and
+                  (pp_transition_aux m pp_print_string pp_print_string pp_var_decl)
+                  (pp_transition_aux m_c pp_print_string pp_print_string pp_var_decl))
+               (pp_contract m)
+               fmt
+               (((name,
+                  List.map (rename_var_decl n) (inputs @ outputs),
+                  rename (n - 1) mem,
+                  rename n mem),
+                 (m_c.mname.node_id,
+                  List.map (rename_var_decl n) (m_c.mstep.step_inputs @ m_c.mstep.step_outputs),
+                  "", "")),
+                rename_contract n c)))
+        (pp_contract m)
+    in
+    pp_predicate
+      (pp_k_induction_inductive_case
+         m
+         (pp_machine_decl' ~ghost:true)
+         (pp_machine_decl' ~ghost:true)
+         (fun fmt xs -> pp_locals m fmt (List.map (rename_var_decl k) xs)))
+      (pp_forall (pp_locals m)
+         (if k > 1 then
+            pp_forall
+              (fun fmt l -> fprintf fmt "%a@,%a"
+                  (pp_machine_decl ~ghost:true
+                     (pp_comma_list ~pp_eol:pp_print_comma
+                        (fun fmt n -> pp_print_string fmt (rename (n - 1) mem))))
+                  (name, but_last l)
+                  (pp_locals m)
+                  (List.flatten
+                     (List.map (fun n ->
+                          List.map (rename_var_decl (n - 1)) (inputs @ outputs))
+                         (List.tl l))))
+              pp
+          else
+            fun fmt (_, x) -> pp fmt x))
+      fmt
+      ((k, (name, rename (k - 1) mem), (name, rename k mem)),
+       (List.(flatten (List.map (fun n -> List.map (rename_var_decl n) m_c.mstep.step_outputs) l)),
+        (l, (l, rename_contract k c))))
+
+  let pp_k_induction_lemmas m fmt k =
+    let name = m.mname.node_id in
+    let mem_in = mk_mem_in m in
+    let mem_out = mk_mem_out m in
+    let inputs = m.mstep.step_inputs in
+    let outputs = m.mstep.step_outputs in
+    let l = List.init k (fun n -> n + 1) in
+    pp_print_list ~pp_open_box:pp_open_vbox0 ~pp_sep:pp_print_cutcut
+      (fun fmt n ->
+         pp_lemma
+           (fun fmt n -> fprintf fmt "%s_k_induction_%d" name n)
+           (pp_forall
+              (fun fmt () -> fprintf fmt "%a,@;%a"
+                  (pp_machine_decl ~ghost:true (pp_comma_list pp_print_string))
+                  (name, [mem_in; mem_out])
+                  (pp_locals m)
+                  (inputs @ outputs))
+              ((if n = k then
+                  pp_k_induction_inductive_case
+                else
+                  pp_k_induction_base_case)
+                 m
+                 pp_print_string
+                 pp_print_string
+                 (pp_comma_list pp_var_decl)))
+           fmt
+           (n, ((), (n, mem_in, mem_out))))
+      fmt
+      l
+
+  let pp_k_induction_axiom m fmt (c, m_c, k) =
+    let name = m.mname.node_id in
+    let mem_in = mk_mem_in m in
+    let mem_out = mk_mem_out m in
+    let inputs = m.mstep.step_inputs in
+    let outputs = m.mstep.step_outputs in
+    let l = List.init k (fun n -> n + 1) in
+    pp_axiomatic
+      (fun fmt () -> fprintf fmt "%s_k_Induction" name)
+      (pp_axiom
+         (fun fmt () -> fprintf fmt "%s_k_induction" name)
+         (pp_forall
+           (pp_locals m)
+           (pp_forall
+              (fun fmt () -> fprintf fmt "%a,@;%a"
+                  (pp_machine_decl ~ghost:true (pp_comma_list pp_print_string))
+                  (name, [mem_in; mem_out])
+                  (pp_locals m)
+                  (inputs @ outputs))
+              (pp_implies
+                 (pp_and
+                    (pp_and_l
+                       (fun fmt n ->
+                          (if n = k then
+                             pp_k_induction_inductive_case
+                           else
+                             pp_k_induction_base_case)
+                            m
+                            pp_print_string
+                            pp_print_string
+                            (pp_comma_list pp_var_decl)
+                            fmt
+                            (n, mem_in, mem_out)))
+                    (pp_transition_aux m_c pp_print_string pp_print_string pp_var_decl))
+                 (pp_contract m)))))
+      fmt
+      ((),
+       ((),
+        (m_c.mstep.step_outputs,
+         ((),
+          (((l,
+             (m_c.mname.node_id,
+              m_c.mstep.step_inputs @ m_c.mstep.step_outputs,
+              "", "")), c))))))
+
+
+  let pp_k_induction m fmt (_, _, k as c_m_k) =
+    pp_acsl_cut
+      (fun fmt () -> fprintf fmt "%a@,@,%a@,@,%a@,@,%a@,@,%a"
+          pp_init_def m
+          (pp_base_cases m) c_m_k
+          (pp_inductive_case m) c_m_k
+          (pp_k_induction_lemmas m) k
+          (pp_k_induction_axiom m) c_m_k)
+      fmt
+      ()
+
+  let pp_proof_annotation m m_c fmt c =
+    let pp m_c fmt = function
+      | Kinduction k ->
+        pp_k_induction m fmt (c, m_c, k)
+    in
+    match m_c with
+    | Some m_c ->
+      pp_print_option (pp m_c) fmt c.mc_proof
+    | None -> ()
 
   let pp_step_spec fmt machines self mem m =
     let name = m.mname.node_id in
@@ -1014,7 +1325,7 @@ module SrcMod = struct
     let pp_if_outputs pp =
       if outputs = [] then pp_print_nothing else pp
     in
-    let spec = m.mspec.mnode_spec in
+    let c, m_c = contract_of machines m in
     (* (\* prevent printing an ensures clause with contract name *\)
      * let spec =
      *   match m.mspec.mnode_spec with
@@ -1022,28 +1333,47 @@ module SrcMod = struct
      *   | s -> s
      * in *)
     let pp_spec = pp_print_option
-        (if m.mis_contract then pp_print_nothing else pp_ensures (pp_node_spec m)) in
+        (if m.mis_contract then pp_print_nothing else pp_ensures (pp_contract m)) in
+    let pp_spec_vars, pp_assigns_spec_vars =
+      match m.mspec.mnode_spec with
+      | Some (NodeSpec f) ->
+        let m_f = find_machine f machines in
+        pp_acsl_cut
+          (pp_ghost
+             (fun fmt () ->
+                fprintf
+                  fmt
+                  "@;<0 2>@[<v>%a@]"
+                  (pp_print_list ~pp_open_box:pp_open_vbox0 ~pp_sep:pp_print_semicolon
+                     ~pp_eol:pp_print_semicolon (pp_c_decl_local_var m))
+                  m_f.mstep.step_outputs)),
+        fun fmt () -> pp_assigns pp_var_decl fmt m_f.mstep.step_outputs
+      | _ -> pp_print_nothing, pp_print_nothing
+    in
+    pp_print_option (pp_proof_annotation m m_c) fmt c;
+    pp_spec_vars fmt ();
     pp_acsl_cut
       ~ghost:m.mis_contract
       (fun fmt () ->
         if fst (get_stateless_status m) then
           fprintf
             fmt
-            "%a@,%a@,%a@,%a@,%a"
+            "%a@,%a@,%a@,%a@,%a@,%a"
             (pp_if_outputs (pp_requires (pp_valid pp_var_decl)))
             outputs
             (pp_if_outputs (pp_requires pp_separated''))
             outputs
+            pp_assigns_spec_vars ()
             (pp_assigns pp_ptr_decl)
             outputs
             (pp_ensures (pp_transition_aux' m))
             (name, inputs @ outputs, "", "")
             pp_spec
-            spec
+            c
         else
           fprintf
             fmt
-            "%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a"
+            "%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a@,%a"
             (pp_if_outputs (pp_requires (pp_valid pp_var_decl)))
             outputs
             (pp_requires pp_mem_valid')
@@ -1059,7 +1389,8 @@ module SrcMod = struct
                     (if is_output m v then pp_ptr_decl else pp_var_decl) fmt v)))
             (name, inputs @ outputs, mem, mem)
             pp_spec
-            spec
+            c
+            pp_assigns_spec_vars ()
             (pp_assigns pp_ptr_decl)
             outputs
             (pp_assigns (pp_reg self))
@@ -1131,16 +1462,14 @@ module SrcMod = struct
 
   let pp_contract fmt machines _self m =
     match m.mspec.mnode_spec with
-    | Some (NodeSpec (f, _)) ->
+    | Some (NodeSpec f) ->
       let m_f = find_machine f machines in
-      pp_acsl_cut
+      pp_acsl_line'_cut
         (pp_ghost
            (fun fmt () ->
               fprintf
                 fmt
-                "@;<0 2>@[<v>%a%a(%a%a);@]"
-                (pp_print_list ~pp_open_box:pp_open_vbox0 ~pp_sep:pp_print_semicolon ~pp_eol:pp_print_semicolon (pp_c_decl_local_var m))
-                m_f.mstep.step_outputs
+                "%a(%a%a);"
                 pp_machine_step_name
                 m_f.mname.node_id
                 (pp_comma_list ~pp_eol:pp_print_comma (pp_c_var_read m))
diff --git a/src/backends/EMF/EMF_backend.ml b/src/backends/EMF/EMF_backend.ml
index d2353f05..a605cd13 100644
--- a/src/backends/EMF/EMF_backend.ml
+++ b/src/backends/EMF/EMF_backend.ml
@@ -489,7 +489,7 @@ let pp_machine fmt m =
      (* TODO *)
      (* assert (c.locals = [] && c.consts = [] && c.stmts = [] && c.imports = []); *)
      fprintf fmt "\"spec\": %a,@ " pp_emf_spec c
-   | Some (NodeSpec (id, _)) -> fprintf fmt "\"contract\": \"%s\",@ " id);
+   | Some (NodeSpec id) -> fprintf fmt "\"contract\": \"%s\",@ " id);
   fprintf fmt "\"annots\": {@[<v 0> %a@]@ }"
     (pp_emf_annots_list (ref 0))
     m.mannot;
@@ -519,7 +519,7 @@ let pp_emf_imported_node fmt top =
   (match ind.nodei_spec with
    | None -> fprintf fmt "@ "
    | Some (Contract _) -> assert false (* should have been processed *)
-   | Some (NodeSpec (id, _)) -> fprintf fmt ",@ \"coco_contract\": %s" id);
+   | Some (NodeSpec id) -> fprintf fmt ",@ \"coco_contract\": %s" id);
   fprintf fmt "@]@ }"
 (* XXX: UNUSED *)
 (* with Unhandled msg ->
diff --git a/src/causality.ml b/src/causality.ml
index 3116b1ce..243447ff 100644
--- a/src/causality.ml
+++ b/src/causality.ml
@@ -475,7 +475,7 @@ module NodeDep = struct
               match nd.node_spec with
               | None ->
                 []
-              | Some (NodeSpec (id, _)) ->
+              | Some (NodeSpec id) ->
                 [ id ]
               | Some (Contract c) ->
                 get_contract_calls (fun _ -> true) c
diff --git a/src/compiler_common.ml b/src/compiler_common.ml
index 0754aa04..2c087aef 100644
--- a/src/compiler_common.ml
+++ b/src/compiler_common.ml
@@ -330,8 +330,7 @@ let resolve_contracts prog =
       c.spec_loc
       top.top_decl_owner
       top.top_decl_itf
-      (Node nd),
-    c
+      (Node nd)
          (* { nd with
           *   node_dec_stateless = stateless;
           *   node_stateless = Some stateless;
@@ -373,11 +372,11 @@ let resolve_contracts prog =
           | Some (Contract _) ->
             (* A contract: processing it *)
             (* we bind a fresh node *)
-            let new_nd, new_c = process_contract_new_node accu_contracts prog top in
+            let new_nd = process_contract_new_node accu_contracts prog top in
             (* Format.eprintf "Creating new contract node %s@." (node_name
                new_nd); *)
             let nd =
-              { nd with node_spec = Some (NodeSpec (node_name new_nd, Some new_c)) }
+              { nd with node_spec = Some (NodeSpec (node_name new_nd)) }
             in
             ( new_nd :: accu_contracts,
               { top with top_decl_desc = Node nd } :: accu_nodes ))
@@ -392,9 +391,9 @@ let resolve_contracts prog =
           | Some (Contract _) ->
             (* A contract: processing it *)
             (* we bind a fresh node *)
-            let new_nd, new_c = process_contract_new_node accu_contracts prog top in
+            let new_nd = process_contract_new_node accu_contracts prog top in
             let ind =
-              { ind with nodei_spec = Some (NodeSpec (node_name new_nd, Some new_c)) }
+              { ind with nodei_spec = Some (NodeSpec (node_name new_nd)) }
             in
             ( new_nd :: accu_contracts,
               { top with top_decl_desc = ImportedNode ind } :: accu_nodes ))
diff --git a/src/corelang.ml b/src/corelang.ml
index e25a50ea..66d0e37a 100644
--- a/src/corelang.ml
+++ b/src/corelang.ml
@@ -193,6 +193,7 @@ let empty_contract =
     modes = [];
     imports = [];
     spec_loc = Location.dummy;
+    proof = None
   }
 
 (* For const declaration we do as for regular lustre node. But for local flows
@@ -213,11 +214,12 @@ let mk_contract_var id is_const type_opt expr loc =
 
 let eexpr_add_name eexpr eexpr_name = { eexpr with eexpr_name }
 
-let mk_contract_guarantees name eexpr =
+let mk_contract_guarantees name eexpr proof =
   {
     empty_contract with
     guarantees = [ eexpr_add_name eexpr name ];
     spec_loc = eexpr.eexpr_loc;
+    proof
   }
 
 let mk_contract_assume name eexpr =
@@ -242,6 +244,16 @@ let mk_contract_import id ins outs loc =
     spec_loc = loc;
   }
 
+let merge_proofs p1 p2 =
+  let merge_proofs p1 p2 = match p1, p2 with
+    | Kinduction k1, Kinduction k2 ->
+      Kinduction (max k1 k2)
+  in
+  match p1, p2 with
+  | Some p1, Some p2 -> Some (merge_proofs p1 p2)
+  | Some p, None | None, Some p -> Some p
+  | None, None -> None
+
 let merge_contracts ann1 ann2 =
   (* keeping the first item loc *)
   {
@@ -253,6 +265,7 @@ let merge_contracts ann1 ann2 =
     modes = ann1.modes @ ann2.modes;
     imports = ann1.imports @ ann2.imports;
     spec_loc = ann1.spec_loc;
+    proof = merge_proofs ann1.proof ann2.proof
   }
 
 let mkeexpr loc expr =
@@ -1105,8 +1118,8 @@ let rename_node f_node f_var nd =
     option_map
       (fun s ->
         match s with
-        | NodeSpec (id, oc) ->
-          NodeSpec (f_node id, option_map (rename_contract f_var f_node) oc)
+        | NodeSpec id ->
+          NodeSpec (f_node id)
         | Contract c ->
           Contract (rename_contract f_var f_node c))
       nd.node_spec
diff --git a/src/corelang.mli b/src/corelang.mli
index 8fa4fedf..aa5af920 100644
--- a/src/corelang.mli
+++ b/src/corelang.mli
@@ -271,7 +271,7 @@ val empty_contract : contract_desc
 val mk_contract_var :
   ident -> bool -> type_dec option -> expr -> Location.t -> contract_desc
 
-val mk_contract_guarantees : string option -> eexpr -> contract_desc
+val mk_contract_guarantees : string option -> eexpr -> proof_annotation option -> contract_desc
 
 val mk_contract_assume : string option -> eexpr -> contract_desc
 
diff --git a/src/lustre_types.ml b/src/lustre_types.ml
index a408e00e..4ca126ce 100644
--- a/src/lustre_types.ml
+++ b/src/lustre_types.ml
@@ -151,6 +151,8 @@ and handler_desc = {
   hand_loc : Location.t;
 }
 
+type proof_annotation = Kinduction of int
+
 type contract_desc = {
   consts : var_decl list;
   locals : var_decl list;
@@ -160,9 +162,10 @@ type contract_desc = {
   modes : contract_mode list;
   imports : contract_import list;
   spec_loc : Location.t;
+  proof : proof_annotation option
 }
 
-type 'a node_spec_t = Contract of 'a | NodeSpec of ident * 'a option
+type 'a node_spec_t = Contract of 'a | NodeSpec of ident
 
 type node_desc = {
   node_id : ident;
diff --git a/src/lustre_types.mli b/src/lustre_types.mli
index 563efec0..aa030847 100644
--- a/src/lustre_types.mli
+++ b/src/lustre_types.mli
@@ -140,6 +140,8 @@ and handler_desc = {
   hand_loc : Location.t;
 }
 
+type proof_annotation = Kinduction of int
+
 type contract_desc = {
   consts : var_decl list;
   locals : var_decl list;
@@ -149,9 +151,10 @@ type contract_desc = {
   modes : contract_mode list;
   imports : contract_import list;
   spec_loc : Location.t;
+  proof : proof_annotation option
 }
 
-type 'a node_spec_t = Contract of 'a | NodeSpec of ident * 'a option
+type 'a node_spec_t = Contract of 'a | NodeSpec of ident
 
 type node_desc = {
   node_id : ident;
diff --git a/src/machine_code.ml b/src/machine_code.ml
index 48e8600f..0d757dd3 100644
--- a/src/machine_code.ml
+++ b/src/machine_code.ml
@@ -43,8 +43,8 @@ let build_env inputs locals outputs =
     is_local = (fun id -> List.exists (fun v -> v.var_id = id) locals);
     get_var =
       (fun id ->
-        try List.find (fun v -> v.var_id = id) all
-        with Not_found ->
+         try List.find (fun v -> v.var_id = id) all
+         with Not_found ->
           (* Format.eprintf "Impossible to find variable %s in set %a@.@?" * id
              * VSet.pp all; *)
           raise Not_found);
@@ -373,9 +373,14 @@ let translate_eq env ctx nd inputs locals outputs i eq =
         else mkinstr (MSetReset inst) :: ctx.si);
     }
   | [ x ], _ ->
+    begin try
     let var_x = env.get_var x in
     let instr, spec = translate_act (var_x, eq.eq_rhs) in
     control_on_clock eq.eq_rhs.expr_clock instr True spec ctx
+      with Not_found ->
+        Format.eprintf "ERROR: node %s, eq %a@." id Printers.pp_node_eq eq  ;
+        raise Not_found
+        end
   | _ ->
     Format.eprintf
       "internal error: Machine_code.translate_eq %a@?"
@@ -484,7 +489,7 @@ let transition_0 nd =
     tname = nd;
     tindex = Some 0;
     tvars = nd.node_inputs;
-    tformula = True;
+    tformula = if fst (get_stateless_status_node nd) then True else StateVarPack ResetFlag;
     tmem_footprint = ISet.empty;
     tinst_footprint = IMap.empty;
   }
@@ -508,22 +513,32 @@ let transition_toplevel nd i =
   }
 
 let translate_eexpr env e =
+  try
   List.fold_right (fun (qt, xs) f -> match qt with
       | Lustre_types.Exists -> Exists (xs, f)
       | Lustre_types.Forall -> Forall (xs, f))
     e.eexpr_quantifiers
     (Value (translate_expr env e.eexpr_qfexpr))
+  with
+  NormalizationError ->
+  Format.eprintf
+    "Normalization error: %a@."
+    Printers.pp_eexpr
+    e;
+  raise NormalizationError
+
 
 let translate_contract env c = {
   mc_pre = And (List.map (translate_eexpr env) c.Lustre_types.assume);
-  mc_post = And (List.map (translate_eexpr env) c.Lustre_types.guarantees)
+  mc_post = And (List.map (translate_eexpr env) c.Lustre_types.guarantees);
+  mc_proof = c.proof
 }
 
 let translate_spec env = function
   | Contract c ->
     Contract (translate_contract env c)
-  | NodeSpec (s, c) ->
-    NodeSpec (s, option_map (translate_contract env) c)
+  | NodeSpec s ->
+    NodeSpec s
 
 let translate_decl nd sch =
   (* Format.eprintf "Translating node %s@." nd.node_id; *)
diff --git a/src/machine_code_common.ml b/src/machine_code_common.ml
index 306be7b4..0ea7a177 100644
--- a/src/machine_code_common.ml
+++ b/src/machine_code_common.ml
@@ -339,9 +339,8 @@ let pp_machine fmt m =
       match m.mspec.mnode_spec with
       | None ->
         ()
-      | Some (NodeSpec (id, c)) ->
-        fprintf fmt "cocospec: %s@;%a" id
-          (pp_print_option (pp_mspec m)) c
+      | Some (NodeSpec id) ->
+        fprintf fmt "cocospec: %s" id
       | Some (Contract spec) ->
         pp_mspec m fmt spec)
     (pp_memory_packs m)
diff --git a/src/machine_code_types.mli b/src/machine_code_types.mli
index f9bd1744..266c6e42 100644
--- a/src/machine_code_types.mli
+++ b/src/machine_code_types.mli
@@ -60,6 +60,7 @@ type mc_memory_pack_t = value_t memory_pack_t
 type mc_contract_t = {
   mc_pre: mc_formula_t;
   mc_post: mc_formula_t;
+  mc_proof: proof_annotation option
 }
 
 type machine_spec = {
diff --git a/src/normalization.ml b/src/normalization.ml
index 7e2b3aff..e039d11f 100644
--- a/src/normalization.ml
+++ b/src/normalization.ml
@@ -753,16 +753,17 @@ let normalize_node ?(first=true) node =
        Careful: we do not normalize annotations, since they can have the form
        x = (a, b, c) *)
     match node.node_spec with
-    | None | Some (NodeSpec _) -> node.node_spec, [], [], eqs
+    | None | Some (NodeSpec _) ->
+      node.node_spec, [], [], eqs
     | Some (Contract s) ->
-        let new_locals, new_outs, new_stmts, s' =
-          normalize_spec node.node_id
-            (node.node_inputs, node.node_outputs, node.node_locals)
-            s
-        in
-        (* Format.eprintf "Normalization bounded new locals: %a@." Printers.pp_vars new_locals;
-         * Format.eprintf "Normalization bounded stmts: %a@." Printers.pp_node_eqs new_stmts; *)
-        Some (Contract s'), new_locals, new_outs, new_stmts @ eqs
+      let new_locals, new_outs, new_stmts, s' =
+        normalize_spec node.node_id
+          (node.node_inputs, node.node_outputs, node.node_locals)
+          s
+      in
+      (* Format.eprintf "Normalization bounded new locals: %a@." Printers.pp_vars new_locals;
+       * Format.eprintf "Normalization bounded stmts: %a@." Printers.pp_node_eqs new_stmts; *)
+      Some (Contract s'), new_locals, new_outs, new_stmts @ eqs
   in
   let defs, vars =
     List.fold_left (normalize_eq norm_ctx) ([], new_vars @ orig_vars) eqs
diff --git a/src/parsers/lexerLustreSpec.mll b/src/parsers/lexerLustreSpec.mll
index 795e32fd..752688f0 100644
--- a/src/parsers/lexerLustreSpec.mll
+++ b/src/parsers/lexerLustreSpec.mll
@@ -93,6 +93,7 @@ let keyword_table =
   "forall", FORALL;
   "c_code", CCODE;
   "matlab", MATLAB;
+  "by", BY
   ]
 
 }
@@ -113,6 +114,8 @@ rule token = parse
     {REAL (Real.create (l^r) (String.length r + -1 * int_of_string exp) s)}
   | '-'? ['0'-'9']+ 
     {INT (int_of_string (Lexing.lexeme lexbuf)) }
+  | (['0'-'9']+) as i '-' "induction"
+    {KINDUCTION (int_of_string i)}
   (* | '/' (['_' 'A'-'Z' 'a'-'z'] ['A'-'Z' 'a'-'z' '_' '0'-'9']* '/')+ as s
        {IDENT s}
   *)
diff --git a/src/parsers/parser_lustre.messages b/src/parsers/parser_lustre.messages
index cabc3b29..a70f1043 100644
--- a/src/parsers/parser_lustre.messages
+++ b/src/parsers/parser_lustre.messages
@@ -1,6 +1,6 @@
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET ANNOT XOR
 ##
-## Ends in an error in state: 527.
+## Ends in an error in state: 532.
 ##
 ## stmt_list -> ANNOT . stmt_list [ TEL ]
 ##
@@ -9,7 +9,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET ANNOT
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET ASSERT UIDENT SCOL XOR
 ##
-## Ends in an error in state: 537.
+## Ends in an error in state: 542.
 ##
 ## stmt_list -> assert_ . stmt_list [ TEL ]
 ##
@@ -18,7 +18,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET ASSERT
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET XOR
 ##
-## Ends in an error in state: 501.
+## Ends in an error in state: 506.
 ##
 ## top_decl -> state_annot node_ident_decl LPAR var_decl_list(vdecl) RPAR RETURNS LPAR var_decl_list(vdecl) RPAR option(SCOL) nodespecs loption(preceded(VAR,var_decl_list(local_vdecl))) LET . stmt_list TEL [ NODESPEC NODE FUNCTION EOF CONST ]
 ##
@@ -27,7 +27,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET XOR
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMATON IDENT STATE UIDENT COL LET XOR
 ##
-## Ends in an error in state: 523.
+## Ends in an error in state: 528.
 ##
 ## handler -> STATE UIDENT COL list(unless) loption(preceded(VAR,var_decl_list(local_vdecl))) LET . stmt_list TEL list(until) [ UIDENT TEL STATE LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ##
@@ -36,7 +36,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMA
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET UIDENT EQ FALSE SCOL XOR
 ##
-## Ends in an error in state: 533.
+## Ends in an error in state: 538.
 ##
 ## stmt_list -> eq . stmt_list [ TEL ]
 ##
@@ -48,7 +48,7 @@ A statement must be an equation, an assertion, an annotation or an automaton.
 
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET ASSERT XOR
 ##
-## Ends in an error in state: 524.
+## Ends in an error in state: 529.
 ##
 ## assert_ -> ASSERT . expr SCOL [ UIDENT TEL LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ##
@@ -61,7 +61,7 @@ An `assert` must be provided with an expression.
 
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMATON IDENT STATE UIDENT COL LET TEL UNTIL UIDENT RESTART UIDENT XOR
 ##
-## Ends in an error in state: 547.
+## Ends in an error in state: 552.
 ##
 ## list(until) -> until . list(until) [ UIDENT TEL STATE LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ##
@@ -70,7 +70,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMA
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMATON IDENT STATE UIDENT COL LET TEL XOR
 ##
-## Ends in an error in state: 540.
+## Ends in an error in state: 545.
 ##
 ## handler -> STATE UIDENT COL list(unless) loption(preceded(VAR,var_decl_list(local_vdecl))) LET stmt_list TEL . list(until) [ UIDENT TEL STATE LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ##
@@ -83,7 +83,7 @@ Ill-formed `until` clauses.
 
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMATON IDENT STATE UIDENT COL LET TEL UNTIL UIDENT RESTART XOR
 ##
-## Ends in an error in state: 545.
+## Ends in an error in state: 550.
 ##
 ## until -> UNTIL expr RESTART . UIDENT [ UNTIL UIDENT TEL STATE LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ##
@@ -92,7 +92,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMA
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMATON IDENT STATE UIDENT COL LET TEL UNTIL UIDENT RESUME XOR
 ##
-## Ends in an error in state: 543.
+## Ends in an error in state: 548.
 ##
 ## until -> UNTIL expr RESUME . UIDENT [ UNTIL UIDENT TEL STATE LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ##
@@ -101,7 +101,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMA
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMATON IDENT STATE XOR
 ##
-## Ends in an error in state: 510.
+## Ends in an error in state: 515.
 ##
 ## handler -> STATE . UIDENT COL list(unless) loption(preceded(VAR,var_decl_list(local_vdecl))) LET stmt_list TEL list(until) [ UIDENT TEL STATE LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ##
@@ -110,7 +110,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMA
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMATON IDENT STATE UIDENT COL UNLESS UIDENT RESTART XOR
 ##
-## Ends in an error in state: 517.
+## Ends in an error in state: 522.
 ##
 ## unless -> UNLESS expr RESTART . UIDENT [ VAR UNLESS LET ]
 ##
@@ -119,7 +119,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMA
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMATON IDENT STATE UIDENT COL UNLESS UIDENT RESUME XOR
 ##
-## Ends in an error in state: 515.
+## Ends in an error in state: 520.
 ##
 ## unless -> UNLESS expr RESUME . UIDENT [ VAR UNLESS LET ]
 ##
@@ -128,7 +128,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMA
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMATON IDENT STATE UIDENT XOR
 ##
-## Ends in an error in state: 511.
+## Ends in an error in state: 516.
 ##
 ## handler -> STATE UIDENT . COL list(unless) loption(preceded(VAR,var_decl_list(local_vdecl))) LET stmt_list TEL list(until) [ UIDENT TEL STATE LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ##
@@ -140,7 +140,7 @@ The name of an automaton state must be an uppercase identifier.
 
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMATON IDENT STATE UIDENT COL LET TEL UNTIL XOR
 ##
-## Ends in an error in state: 541.
+## Ends in an error in state: 546.
 ##
 ## until -> UNTIL . expr RESTART UIDENT [ UNTIL UIDENT TEL STATE LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ## until -> UNTIL . expr RESUME UIDENT [ UNTIL UIDENT TEL STATE LPAR IDENT AUTOMATON ASSERT ANNOT ]
@@ -154,7 +154,7 @@ An `until` clause must be provided with an expression.
 
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMATON IDENT STATE UIDENT COL UNLESS UIDENT RESTART UIDENT XOR
 ##
-## Ends in an error in state: 519.
+## Ends in an error in state: 524.
 ##
 ## list(unless) -> unless . list(unless) [ VAR LET ]
 ##
@@ -167,7 +167,7 @@ Ill-formed `unless` clauses.
 
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMATON IDENT STATE UIDENT COL UNLESS XOR
 ##
-## Ends in an error in state: 513.
+## Ends in an error in state: 518.
 ##
 ## unless -> UNLESS . expr RESTART UIDENT [ VAR UNLESS LET ]
 ## unless -> UNLESS . expr RESUME UIDENT [ VAR UNLESS LET ]
@@ -181,7 +181,7 @@ An `unless` clause must be provided with an expression.
 
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMATON IDENT STATE UIDENT COL XOR
 ##
-## Ends in an error in state: 512.
+## Ends in an error in state: 517.
 ##
 ## handler -> STATE UIDENT COL . list(unless) loption(preceded(VAR,var_decl_list(local_vdecl))) LET stmt_list TEL list(until) [ UIDENT TEL STATE LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ##
@@ -194,7 +194,7 @@ Ill-formed state definition.
 
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMATON IDENT XOR
 ##
-## Ends in an error in state: 509.
+## Ends in an error in state: 514.
 ##
 ## automaton -> AUTOMATON type_ident . list(handler) [ UIDENT TEL LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ##
@@ -203,7 +203,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMA
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMATON XOR
 ##
-## Ends in an error in state: 508.
+## Ends in an error in state: 513.
 ##
 ## automaton -> AUTOMATON . type_ident list(handler) [ UIDENT TEL LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ##
@@ -215,7 +215,7 @@ The name of an automaton must be an identifier.
 
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET LPAR UIDENT RPAR EQ XOR
 ##
-## Ends in an error in state: 505.
+## Ends in an error in state: 510.
 ##
 ## eq -> LPAR separated_nonempty_list(COMMA,vdecl_ident) RPAR EQ . expr SCOL [ UIDENT TEL LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ##
@@ -224,7 +224,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET LPAR U
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET UIDENT EQ XOR
 ##
-## Ends in an error in state: 530.
+## Ends in an error in state: 535.
 ##
 ## eq -> separated_nonempty_list(COMMA,vdecl_ident) EQ . expr SCOL [ UIDENT TEL LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ##
@@ -237,7 +237,7 @@ The right-hand side of an equation must be an expression.
 
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET LPAR UIDENT RPAR XOR
 ##
-## Ends in an error in state: 504.
+## Ends in an error in state: 509.
 ##
 ## eq -> LPAR separated_nonempty_list(COMMA,vdecl_ident) RPAR . EQ expr SCOL [ UIDENT TEL LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ##
@@ -246,7 +246,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET LPAR U
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET UIDENT SCOL
 ##
-## Ends in an error in state: 529.
+## Ends in an error in state: 534.
 ##
 ## eq -> separated_nonempty_list(COMMA,vdecl_ident) . EQ expr SCOL [ UIDENT TEL LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ##
@@ -265,7 +265,7 @@ Ill-formed equation.
 
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET LPAR UIDENT SCOL
 ##
-## Ends in an error in state: 503.
+## Ends in an error in state: 508.
 ##
 ## eq -> LPAR separated_nonempty_list(COMMA,vdecl_ident) . RPAR EQ expr SCOL [ UIDENT TEL LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ##
@@ -280,7 +280,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET LPAR U
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET LPAR XOR
 ##
-## Ends in an error in state: 502.
+## Ends in an error in state: 507.
 ##
 ## eq -> LPAR . separated_nonempty_list(COMMA,vdecl_ident) RPAR EQ expr SCOL [ UIDENT TEL LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ##
@@ -293,7 +293,7 @@ The left-hand side of an equation must be an optionally parenthesized, comma-sep
 
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR NODESPEC FUNCTION
 ##
-## Ends in an error in state: 485.
+## Ends in an error in state: 490.
 ##
 ## top_decl -> state_annot node_ident_decl LPAR var_decl_list(vdecl) RPAR RETURNS LPAR var_decl_list(vdecl) RPAR option(SCOL) nodespecs . loption(preceded(VAR,var_decl_list(local_vdecl))) LET stmt_list TEL [ NODESPEC NODE FUNCTION EOF CONST ]
 ##
@@ -306,11 +306,11 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR NODESPEC F
 ## may provide an INCOMPLETE view of the future (what was expected next).
 ## In state 118, spurious reduction of production nodespec_list ->
 ## In state 119, spurious reduction of production nodespec_list -> NODESPEC nodespec_list
-## In state 420, spurious reduction of production nodespecs -> nodespec_list
+## In state 425, spurious reduction of production nodespecs -> nodespec_list
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR XOR
 ##
-## Ends in an error in state: 483.
+## Ends in an error in state: 488.
 ##
 ## top_decl -> state_annot node_ident_decl LPAR var_decl_list(vdecl) RPAR RETURNS LPAR var_decl_list(vdecl) RPAR . option(SCOL) nodespecs loption(preceded(VAR,var_decl_list(local_vdecl))) LET stmt_list TEL [ NODESPEC NODE FUNCTION EOF CONST ]
 ##
@@ -319,7 +319,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR XOR
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR SCOL LCUR
 ##
-## Ends in an error in state: 484.
+## Ends in an error in state: 489.
 ##
 ## top_decl -> state_annot node_ident_decl LPAR var_decl_list(vdecl) RPAR RETURNS LPAR var_decl_list(vdecl) RPAR option(SCOL) . nodespecs loption(preceded(VAR,var_decl_list(local_vdecl))) LET stmt_list TEL [ NODESPEC NODE FUNCTION EOF CONST ]
 ##
@@ -331,7 +331,7 @@ Statements expected, between `let` and `tel` keywords.
 
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR VAR CONST UIDENT COL IDENT WHENNOT
 ##
-## Ends in an error in state: 489.
+## Ends in an error in state: 494.
 ##
 ## local_vdecl -> CONST vdecl_ident option(preceded(COL,typeconst)) . EQ expr [ SCOL LET ]
 ##
@@ -348,7 +348,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR VAR CONST
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR VAR CONST UIDENT EQ XOR
 ##
-## Ends in an error in state: 490.
+## Ends in an error in state: 495.
 ##
 ## local_vdecl -> CONST vdecl_ident option(preceded(COL,typeconst)) EQ . expr [ SCOL LET ]
 ##
@@ -357,7 +357,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR VAR CONST
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR VAR CONST UIDENT XOR
 ##
-## Ends in an error in state: 488.
+## Ends in an error in state: 493.
 ##
 ## local_vdecl -> CONST vdecl_ident . option(preceded(COL,typeconst)) EQ expr [ SCOL LET ]
 ##
@@ -370,7 +370,7 @@ A local `const` declaration must be initialized with an expression, using the `=
 
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR VAR CONST XOR
 ##
-## Ends in an error in state: 487.
+## Ends in an error in state: 492.
 ##
 ## local_vdecl -> CONST . vdecl_ident option(preceded(COL,typeconst)) EQ expr [ SCOL LET ]
 ##
@@ -383,7 +383,7 @@ A local `const` declaration must be followed by an identifier.
 
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR VAR UIDENT COL IDENT WHENNOT IDENT RPAR
 ##
-## Ends in an error in state: 497.
+## Ends in an error in state: 502.
 ##
 ## var_decl_list(local_vdecl) -> local_vdecl . [ LET ]
 ## var_decl_list(local_vdecl) -> local_vdecl . SCOL [ LET ]
@@ -398,11 +398,11 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR VAR UIDENT
 ## may provide an INCOMPLETE view of the future (what was expected next).
 ## In state 150, spurious reduction of production nonempty_list(when_cond) -> when_cond
 ## In state 153, spurious reduction of production option(clock) -> nonempty_list(when_cond)
-## In state 496, spurious reduction of production local_vdecl -> separated_nonempty_list(COMMA,vdecl_ident) COL typeconst option(clock)
+## In state 501, spurious reduction of production local_vdecl -> separated_nonempty_list(COMMA,vdecl_ident) COL typeconst option(clock)
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR VAR UIDENT COL TREAL RPAR
 ##
-## Ends in an error in state: 495.
+## Ends in an error in state: 500.
 ##
 ## local_vdecl -> separated_nonempty_list(COMMA,vdecl_ident) COL typeconst . option(clock) [ SCOL LET ]
 ##
@@ -417,7 +417,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR VAR UIDENT
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR VAR UIDENT RPAR
 ##
-## Ends in an error in state: 493.
+## Ends in an error in state: 498.
 ##
 ## local_vdecl -> separated_nonempty_list(COMMA,vdecl_ident) . [ SCOL LET ]
 ## local_vdecl -> separated_nonempty_list(COMMA,vdecl_ident) . COL typeconst option(clock) [ SCOL LET ]
@@ -433,7 +433,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR VAR UIDENT
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR VAR UIDENT SCOL XOR
 ##
-## Ends in an error in state: 498.
+## Ends in an error in state: 503.
 ##
 ## var_decl_list(local_vdecl) -> local_vdecl SCOL . [ LET ]
 ## var_decl_list(local_vdecl) -> local_vdecl SCOL . var_decl_list(local_vdecl) [ LET ]
@@ -443,7 +443,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR VAR UIDENT
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR VAR XOR
 ##
-## Ends in an error in state: 486.
+## Ends in an error in state: 491.
 ##
 ## loption(preceded(VAR,var_decl_list(local_vdecl))) -> VAR . var_decl_list(local_vdecl) [ LET ]
 ##
@@ -456,7 +456,7 @@ Ill-formed local declarations.
 
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR VAR UIDENT COL XOR
 ##
-## Ends in an error in state: 494.
+## Ends in an error in state: 499.
 ##
 ## local_vdecl -> separated_nonempty_list(COMMA,vdecl_ident) COL . typeconst option(clock) [ SCOL LET ]
 ##
@@ -506,7 +506,7 @@ A type expression is expected.
 
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR XOR
 ##
-## Ends in an error in state: 481.
+## Ends in an error in state: 486.
 ##
 ## top_decl -> state_annot node_ident_decl LPAR var_decl_list(vdecl) RPAR RETURNS LPAR . var_decl_list(vdecl) RPAR option(SCOL) nodespecs loption(preceded(VAR,var_decl_list(local_vdecl))) LET stmt_list TEL [ NODESPEC NODE FUNCTION EOF CONST ]
 ##
@@ -515,7 +515,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR XOR
 ##
 prog: NODE UIDENT LPAR XOR
 ##
-## Ends in an error in state: 477.
+## Ends in an error in state: 482.
 ##
 ## top_decl -> state_annot node_ident_decl LPAR . var_decl_list(vdecl) RPAR RETURNS LPAR var_decl_list(vdecl) RPAR option(SCOL) nodespecs loption(preceded(VAR,var_decl_list(local_vdecl))) LET stmt_list TEL [ NODESPEC NODE FUNCTION EOF CONST ]
 ##
@@ -575,7 +575,7 @@ Ill-formed parameter declarations.
 
 prog: NODE UIDENT LPAR CONST IDENT RPAR XOR
 ##
-## Ends in an error in state: 479.
+## Ends in an error in state: 484.
 ##
 ## top_decl -> state_annot node_ident_decl LPAR var_decl_list(vdecl) RPAR . RETURNS LPAR var_decl_list(vdecl) RPAR option(SCOL) nodespecs loption(preceded(VAR,var_decl_list(local_vdecl))) LET stmt_list TEL [ NODESPEC NODE FUNCTION EOF CONST ]
 ##
@@ -593,7 +593,7 @@ lustre_spec: CONTRACT UIDENT LPAR CONST UIDENT RPAR XOR
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS XOR
 ##
-## Ends in an error in state: 480.
+## Ends in an error in state: 485.
 ##
 ## top_decl -> state_annot node_ident_decl LPAR var_decl_list(vdecl) RPAR RETURNS . LPAR var_decl_list(vdecl) RPAR option(SCOL) nodespecs loption(preceded(VAR,var_decl_list(local_vdecl))) LET stmt_list TEL [ NODESPEC NODE FUNCTION EOF CONST ]
 ##
@@ -611,7 +611,7 @@ lustre_spec: CONTRACT UIDENT LPAR CONST UIDENT RPAR RETURNS XOR
 ##
 header: NODE UIDENT LPAR CONST IDENT RPAR RETURNS XOR
 ##
-## Ends in an error in state: 408.
+## Ends in an error in state: 413.
 ##
 ## top_decl_header -> nodespecs state_annot node_ident_decl LPAR var_decl_list(vdecl) RPAR RETURNS . LPAR var_decl_list(vdecl) RPAR option(preceded(PROTOTYPE,node_ident)) list(preceded(LIB,module_ident)) SCOL [ NODESPEC NODE FUNCTION EOF CONTRACT CONST ]
 ##
@@ -620,7 +620,7 @@ header: NODE UIDENT LPAR CONST IDENT RPAR RETURNS XOR
 ##
 header: NODE UIDENT LPAR CONST IDENT RPAR XOR
 ##
-## Ends in an error in state: 407.
+## Ends in an error in state: 412.
 ##
 ## top_decl_header -> nodespecs state_annot node_ident_decl LPAR var_decl_list(vdecl) RPAR . RETURNS LPAR var_decl_list(vdecl) RPAR option(preceded(PROTOTYPE,node_ident)) list(preceded(LIB,module_ident)) SCOL [ NODESPEC NODE FUNCTION EOF CONTRACT CONST ]
 ##
@@ -633,7 +633,7 @@ A node, function or node contract definition must declare its outputs as a paren
 
 prog: NODE UIDENT XOR
 ##
-## Ends in an error in state: 476.
+## Ends in an error in state: 481.
 ##
 ## top_decl -> state_annot node_ident_decl . LPAR var_decl_list(vdecl) RPAR RETURNS LPAR var_decl_list(vdecl) RPAR option(SCOL) nodespecs loption(preceded(VAR,var_decl_list(local_vdecl))) LET stmt_list TEL [ NODESPEC NODE FUNCTION EOF CONST ]
 ##
@@ -651,7 +651,7 @@ lustre_spec: CONTRACT UIDENT XOR
 ##
 header: NODE UIDENT XOR
 ##
-## Ends in an error in state: 404.
+## Ends in an error in state: 409.
 ##
 ## top_decl_header -> nodespecs state_annot node_ident_decl . LPAR var_decl_list(vdecl) RPAR RETURNS LPAR var_decl_list(vdecl) RPAR option(preceded(PROTOTYPE,node_ident)) list(preceded(LIB,module_ident)) SCOL [ NODESPEC NODE FUNCTION EOF CONTRACT CONST ]
 ##
@@ -664,7 +664,7 @@ A node, function or node contract definition must declare its inputs as a parent
 
 prog: NODE XOR
 ##
-## Ends in an error in state: 475.
+## Ends in an error in state: 480.
 ##
 ## top_decl -> state_annot . node_ident_decl LPAR var_decl_list(vdecl) RPAR RETURNS LPAR var_decl_list(vdecl) RPAR option(SCOL) nodespecs loption(preceded(VAR,var_decl_list(local_vdecl))) LET stmt_list TEL [ NODESPEC NODE FUNCTION EOF CONST ]
 ##
@@ -673,7 +673,7 @@ prog: NODE XOR
 ##
 header: NODE XOR
 ##
-## Ends in an error in state: 403.
+## Ends in an error in state: 408.
 ##
 ## top_decl_header -> nodespecs state_annot . node_ident_decl LPAR var_decl_list(vdecl) RPAR RETURNS LPAR var_decl_list(vdecl) RPAR option(preceded(PROTOTYPE,node_ident)) list(preceded(LIB,module_ident)) SCOL [ NODESPEC NODE FUNCTION EOF CONTRACT CONST ]
 ##
@@ -685,7 +685,7 @@ The name of a node or function must be an identifier.
 
 prog: NODESPEC XOR
 ##
-## Ends in an error in state: 474.
+## Ends in an error in state: 479.
 ##
 ## list(top_decl) -> top_decl . list(top_decl) [ EOF ]
 ##
@@ -694,7 +694,7 @@ prog: NODESPEC XOR
 ##
 prog: OPEN LT IDENT GT CONTRACT
 ##
-## Ends in an error in state: 469.
+## Ends in an error in state: 474.
 ##
 ## prog -> prefix . list(top_decl) EOF [ # ]
 ##
@@ -710,7 +710,7 @@ prog: OPEN LT IDENT GT CONTRACT
 ##
 prog: XOR
 ##
-## Ends in an error in state: 467.
+## Ends in an error in state: 472.
 ##
 ## prog' -> . prog [ # ]
 ##
@@ -719,7 +719,7 @@ prog: XOR
 ##
 header: CONST UIDENT EQ FALSE SCOL XOR
 ##
-## Ends in an error in state: 398.
+## Ends in an error in state: 403.
 ##
 ## list(top_decl_header) -> top_decl_header . list(top_decl_header) [ EOF ]
 ##
@@ -728,7 +728,7 @@ header: CONST UIDENT EQ FALSE SCOL XOR
 ##
 header: NODESPEC VAR
 ##
-## Ends in an error in state: 400.
+## Ends in an error in state: 405.
 ##
 ## top_decl_header -> nodespecs . state_annot node_ident_decl LPAR var_decl_list(vdecl) RPAR RETURNS LPAR var_decl_list(vdecl) RPAR option(preceded(PROTOTYPE,node_ident)) list(preceded(LIB,module_ident)) SCOL [ NODESPEC NODE FUNCTION EOF CONTRACT CONST ]
 ##
@@ -741,7 +741,7 @@ header: NODESPEC VAR
 ## may provide an INCOMPLETE view of the future (what was expected next).
 ## In state 118, spurious reduction of production nodespec_list ->
 ## In state 119, spurious reduction of production nodespec_list -> NODESPEC nodespec_list
-## In state 420, spurious reduction of production nodespecs -> nodespec_list
+## In state 425, spurious reduction of production nodespecs -> nodespec_list
 ##
 header: NODESPEC XOR
 ##
@@ -775,7 +775,7 @@ Ill-formed top-level declaration.
 
 lustre_spec: ASSUME STRING UIDENT SCOL XOR
 ##
-## Ends in an error in state: 334.
+## Ends in an error in state: 338.
 ##
 ## contract_content -> ASSUME STRING qexpr SCOL . contract_content [ TEL EOF ]
 ##
@@ -784,7 +784,7 @@ lustre_spec: ASSUME STRING UIDENT SCOL XOR
 ##
 lustre_spec: ASSUME UIDENT SCOL XOR
 ##
-## Ends in an error in state: 337.
+## Ends in an error in state: 341.
 ##
 ## contract_content -> ASSUME qexpr SCOL . contract_content [ TEL EOF ]
 ##
@@ -794,9 +794,41 @@ lustre_spec: ASSUME UIDENT SCOL XOR
 
 Contract content expected.
 
+lustre_spec: ASSUME STRING UIDENT BY
+##
+## Ends in an error in state: 337.
+##
+## contract_content -> ASSUME STRING qexpr . SCOL contract_content [ TEL EOF ]
+##
+## The known suffix of the stack is as follows:
+## ASSUME STRING qexpr
+##
+## WARNING: This example involves spurious reductions.
+## This implies that, although the LR(1) items shown above provide an
+## accurate view of the past (what has been recognized so far), they
+## may provide an INCOMPLETE view of the future (what was expected next).
+## In state 168, spurious reduction of production expr -> UIDENT
+## In state 292, spurious reduction of production qexpr -> expr
+##
+lustre_spec: ASSUME UIDENT BY
+##
+## Ends in an error in state: 340.
+##
+## contract_content -> ASSUME qexpr . SCOL contract_content [ TEL EOF ]
+##
+## The known suffix of the stack is as follows:
+## ASSUME qexpr
+##
+## WARNING: This example involves spurious reductions.
+## This implies that, although the LR(1) items shown above provide an
+## accurate view of the past (what has been recognized so far), they
+## may provide an INCOMPLETE view of the future (what was expected next).
+## In state 168, spurious reduction of production expr -> UIDENT
+## In state 292, spurious reduction of production qexpr -> expr
+##
 lustre_spec: ASSUME STRING VAR
 ##
-## Ends in an error in state: 332.
+## Ends in an error in state: 336.
 ##
 ## contract_content -> ASSUME STRING . qexpr SCOL contract_content [ TEL EOF ]
 ## expr -> STRING . [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
@@ -806,7 +838,7 @@ lustre_spec: ASSUME STRING VAR
 ##
 lustre_spec: ASSUME XOR
 ##
-## Ends in an error in state: 331.
+## Ends in an error in state: 335.
 ##
 ## contract_content -> ASSUME . qexpr SCOL contract_content [ TEL EOF ]
 ## contract_content -> ASSUME . STRING qexpr SCOL contract_content [ TEL EOF ]
@@ -820,7 +852,7 @@ A possibly named `assume` contract must be followed by a possibly quantified exp
 
 lustre_spec: CONST IDENT COL TREAL WHENNOT
 ##
-## Ends in an error in state: 327.
+## Ends in an error in state: 331.
 ##
 ## contract_content -> CONST IDENT option(preceded(COL,typeconst)) . EQ expr SCOL contract_content [ TEL EOF ]
 ##
@@ -836,7 +868,7 @@ lustre_spec: CONST IDENT COL TREAL WHENNOT
 ##
 lustre_spec: CONST IDENT XOR
 ##
-## Ends in an error in state: 326.
+## Ends in an error in state: 330.
 ##
 ## contract_content -> CONST IDENT . option(preceded(COL,typeconst)) EQ expr SCOL contract_content [ TEL EOF ]
 ##
@@ -845,7 +877,7 @@ lustre_spec: CONST IDENT XOR
 ##
 lustre_spec: CONST IDENT EQ XOR
 ##
-## Ends in an error in state: 328.
+## Ends in an error in state: 332.
 ##
 ## contract_content -> CONST IDENT option(preceded(COL,typeconst)) EQ . expr SCOL contract_content [ TEL EOF ]
 ##
@@ -858,7 +890,7 @@ A contract `const` declaration must be initialized with an expression, using the
 
 lustre_spec: CONST XOR
 ##
-## Ends in an error in state: 325.
+## Ends in an error in state: 329.
 ##
 ## contract_content -> CONST . IDENT option(preceded(COL,typeconst)) EQ expr SCOL contract_content [ TEL EOF ]
 ##
@@ -871,7 +903,7 @@ A contract `const` declaration must be followed by an identifier.
 
 lustre_spec: CONTRACT UIDENT LPAR CONST UIDENT RPAR RETURNS LPAR CONST IDENT RPAR LET TEL XOR
 ##
-## Ends in an error in state: 459.
+## Ends in an error in state: 464.
 ##
 ## nonempty_list(top_contract) -> top_contract . [ EOF ]
 ## nonempty_list(top_contract) -> top_contract . nonempty_list(top_contract) [ EOF ]
@@ -883,6 +915,12 @@ lustre_spec: CONTRACT UIDENT LPAR CONST UIDENT RPAR RETURNS LPAR CONST IDENT RPA
 Node contracts must be separated by `;`s.
 
 lustre_spec: CONTRACT XOR
+##
+## Ends in an error in state: 463.
+##
+## option(CONTRACT) -> CONTRACT . [ VAR MODE IMPORT GUARANTEES EOF CONST ASSUME ]
+## top_contract -> CONTRACT . node_ident_decl LPAR var_decl_list(vdecl) RPAR RETURNS LPAR var_decl_list(vdecl) RPAR option(SCOL) LET contract_content TEL [ EOF CONTRACT ]
+##
 ## The known suffix of the stack is as follows:
 ## CONTRACT
 ##
@@ -919,25 +957,25 @@ lustre_spec: CONTRACT UIDENT LPAR CONST UIDENT RPAR RETURNS LPAR CONST IDENT RPA
 ##
 lustre_spec: GUARANTEES STRING UIDENT SCOL XOR
 ##
-## Ends in an error in state: 324.
+## Ends in an error in state: 328.
 ##
-## contract_content -> GUARANTEES STRING qexpr SCOL . contract_content [ TEL EOF ]
+## contract_content -> GUARANTEES STRING qexpr option(proof_annotation) SCOL . contract_content [ TEL EOF ]
 ##
 ## The known suffix of the stack is as follows:
-## GUARANTEES STRING qexpr SCOL
+## GUARANTEES STRING qexpr option(proof_annotation) SCOL
 ##
 lustre_spec: GUARANTEES UIDENT SCOL XOR
 ##
-## Ends in an error in state: 342.
+## Ends in an error in state: 347.
 ##
-## contract_content -> GUARANTEES qexpr SCOL . contract_content [ TEL EOF ]
+## contract_content -> GUARANTEES qexpr option(proof_annotation) SCOL . contract_content [ TEL EOF ]
 ##
 ## The known suffix of the stack is as follows:
-## GUARANTEES qexpr SCOL
+## GUARANTEES qexpr option(proof_annotation) SCOL
 ##
 lustre_spec: IMPORT IDENT LPAR UIDENT COMMA UIDENT RPAR RETURNS LPAR UIDENT COMMA UIDENT RPAR SCOL XOR
 ##
-## Ends in an error in state: 362.
+## Ends in an error in state: 367.
 ##
 ## contract_content -> IMPORT IDENT LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR RETURNS LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR SCOL . contract_content [ TEL EOF ]
 ##
@@ -946,7 +984,7 @@ lustre_spec: IMPORT IDENT LPAR UIDENT COMMA UIDENT RPAR RETURNS LPAR UIDENT COMM
 ##
 lustre_spec: IMPORT IDENT LPAR UIDENT COMMA UIDENT RPAR RETURNS LPAR UIDENT RPAR SCOL XOR
 ##
-## Ends in an error in state: 357.
+## Ends in an error in state: 362.
 ##
 ## contract_content -> IMPORT IDENT LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR RETURNS LPAR expr RPAR SCOL . contract_content [ TEL EOF ]
 ##
@@ -955,7 +993,7 @@ lustre_spec: IMPORT IDENT LPAR UIDENT COMMA UIDENT RPAR RETURNS LPAR UIDENT RPAR
 ##
 lustre_spec: IMPORT IDENT LPAR UIDENT RPAR RETURNS LPAR UIDENT COMMA UIDENT RPAR SCOL XOR
 ##
-## Ends in an error in state: 348.
+## Ends in an error in state: 353.
 ##
 ## contract_content -> IMPORT IDENT LPAR expr RPAR RETURNS LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR SCOL . contract_content [ TEL EOF ]
 ##
@@ -991,7 +1029,7 @@ lustre_spec: VAR IDENT COL TREAL EQ UIDENT SCOL XOR
 ##
 lustre_spec: CONST IDENT EQ UIDENT SCOL XOR
 ##
-## Ends in an error in state: 330.
+## Ends in an error in state: 334.
 ##
 ## contract_content -> CONST IDENT option(preceded(COL,typeconst)) EQ expr SCOL . contract_content [ TEL EOF ]
 ##
@@ -1000,7 +1038,7 @@ lustre_spec: CONST IDENT EQ UIDENT SCOL XOR
 ##
 lustre_spec: GUARANTEES FALSE SCOL TEL
 ##
-## Ends in an error in state: 462.
+## Ends in an error in state: 467.
 ##
 ## lustre_spec -> option(CONTRACT) contract_content . EOF [ # ]
 ##
@@ -1011,8 +1049,8 @@ lustre_spec: GUARANTEES FALSE SCOL TEL
 ## This implies that, although the LR(1) items shown above provide an
 ## accurate view of the past (what has been recognized so far), they
 ## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 342, spurious reduction of production contract_content ->
-## In state 343, spurious reduction of production contract_content -> GUARANTEES qexpr SCOL contract_content
+## In state 347, spurious reduction of production contract_content ->
+## In state 348, spurious reduction of production contract_content -> GUARANTEES qexpr option(proof_annotation) SCOL contract_content
 ##
 
 Ill-formed contract content.
@@ -1028,7 +1066,7 @@ lustre_spec: CONTRACT UIDENT LPAR CONST UIDENT RPAR RETURNS LPAR CONST IDENT RPA
 ##
 lustre_spec: CONTRACT UIDENT LPAR CONST UIDENT RPAR RETURNS LPAR CONST IDENT RPAR LET GUARANTEES UIDENT SCOL EOF
 ##
-## Ends in an error in state: 366.
+## Ends in an error in state: 371.
 ##
 ## top_contract -> CONTRACT node_ident_decl LPAR var_decl_list(vdecl) RPAR RETURNS LPAR var_decl_list(vdecl) RPAR option(SCOL) LET contract_content . TEL [ NODESPEC NODE FUNCTION EOF CONTRACT CONST ]
 ##
@@ -1039,8 +1077,8 @@ lustre_spec: CONTRACT UIDENT LPAR CONST UIDENT RPAR RETURNS LPAR CONST IDENT RPA
 ## This implies that, although the LR(1) items shown above provide an
 ## accurate view of the past (what has been recognized so far), they
 ## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 342, spurious reduction of production contract_content ->
-## In state 343, spurious reduction of production contract_content -> GUARANTEES qexpr SCOL contract_content
+## In state 347, spurious reduction of production contract_content ->
+## In state 348, spurious reduction of production contract_content -> GUARANTEES qexpr option(proof_annotation) SCOL contract_content
 ##
 
 Contract contents expected, between `let` and `tel` keywords.
@@ -1049,7 +1087,7 @@ lustre_spec: GUARANTEES COLCOL XOR
 ##
 ## Ends in an error in state: 184.
 ##
-## expr -> COLCOL . IDENT [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> COLCOL . IDENT [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## COLCOL
@@ -1062,7 +1100,7 @@ lustre_spec: GUARANTEES EXISTS CONST IDENT RPAR
 ##
 ## Ends in an error in state: 289.
 ##
-## qexpr -> EXISTS vdecl . SCOL qexpr [ SCOL ]
+## qexpr -> EXISTS vdecl . SCOL qexpr [ SCOL BY ]
 ##
 ## The known suffix of the stack is as follows:
 ## EXISTS vdecl
@@ -1079,7 +1117,7 @@ lustre_spec: GUARANTEES EXISTS CONST IDENT SCOL XOR
 ##
 ## Ends in an error in state: 290.
 ##
-## qexpr -> EXISTS vdecl SCOL . qexpr [ SCOL ]
+## qexpr -> EXISTS vdecl SCOL . qexpr [ SCOL BY ]
 ##
 ## The known suffix of the stack is as follows:
 ## EXISTS vdecl SCOL
@@ -1088,7 +1126,7 @@ lustre_spec: GUARANTEES FORALL CONST IDENT RPAR
 ##
 ## Ends in an error in state: 286.
 ##
-## qexpr -> FORALL vdecl . SCOL qexpr [ SCOL ]
+## qexpr -> FORALL vdecl . SCOL qexpr [ SCOL BY ]
 ##
 ## The known suffix of the stack is as follows:
 ## FORALL vdecl
@@ -1105,7 +1143,7 @@ lustre_spec: GUARANTEES FORALL CONST IDENT SCOL XOR
 ##
 ## Ends in an error in state: 287.
 ##
-## qexpr -> FORALL vdecl SCOL . qexpr [ SCOL ]
+## qexpr -> FORALL vdecl SCOL . qexpr [ SCOL BY ]
 ##
 ## The known suffix of the stack is as follows:
 ## FORALL vdecl SCOL
@@ -1209,7 +1247,7 @@ lustre_spec: GUARANTEES EXISTS XOR
 ##
 ## Ends in an error in state: 288.
 ##
-## qexpr -> EXISTS . vdecl SCOL qexpr [ SCOL ]
+## qexpr -> EXISTS . vdecl SCOL qexpr [ SCOL BY ]
 ##
 ## The known suffix of the stack is as follows:
 ## EXISTS
@@ -1252,14 +1290,14 @@ lustre_spec: GUARANTEES FORALL XOR
 ##
 ## Ends in an error in state: 285.
 ##
-## qexpr -> FORALL . vdecl SCOL qexpr [ SCOL ]
+## qexpr -> FORALL . vdecl SCOL qexpr [ SCOL BY ]
 ##
 ## The known suffix of the stack is as follows:
 ## FORALL
 ##
 header: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR XOR
 ##
-## Ends in an error in state: 409.
+## Ends in an error in state: 414.
 ##
 ## top_decl_header -> nodespecs state_annot node_ident_decl LPAR var_decl_list(vdecl) RPAR RETURNS LPAR . var_decl_list(vdecl) RPAR option(preceded(PROTOTYPE,node_ident)) list(preceded(LIB,module_ident)) SCOL [ NODESPEC NODE FUNCTION EOF CONTRACT CONST ]
 ##
@@ -1268,7 +1306,7 @@ header: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR XOR
 ##
 header: NODE UIDENT LPAR XOR
 ##
-## Ends in an error in state: 405.
+## Ends in an error in state: 410.
 ##
 ## top_decl_header -> nodespecs state_annot node_ident_decl LPAR . var_decl_list(vdecl) RPAR RETURNS LPAR var_decl_list(vdecl) RPAR option(preceded(PROTOTYPE,node_ident)) list(preceded(LIB,module_ident)) SCOL [ NODESPEC NODE FUNCTION EOF CONTRACT CONST ]
 ##
@@ -1307,7 +1345,7 @@ lustre_spec: GUARANTEES IF UIDENT SCOL
 ## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> IF expr . THEN expr ELSE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> IF expr . THEN expr ELSE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## IF expr
@@ -1326,7 +1364,7 @@ lustre_spec: GUARANTEES IF UIDENT THEN UIDENT ELSE XOR
 ##
 ## Ends in an error in state: 259.
 ##
-## expr -> IF expr THEN expr ELSE . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> IF expr THEN expr ELSE . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## IF expr THEN expr ELSE
@@ -1335,7 +1373,7 @@ lustre_spec: GUARANTEES IF UIDENT THEN XOR
 ##
 ## Ends in an error in state: 257.
 ##
-## expr -> IF expr THEN . expr ELSE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> IF expr THEN . expr ELSE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## IF expr THEN
@@ -1372,7 +1410,7 @@ lustre_spec: GUARANTEES IF UIDENT THEN UIDENT THEN
 ## expr -> expr . MULT expr [ XOR WHENNOT WHEN POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ ELSE DIV BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . DIV expr [ XOR WHENNOT WHEN POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ ELSE DIV BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . MOD expr [ XOR WHENNOT WHEN POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ ELSE DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> IF expr THEN expr . ELSE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> IF expr THEN expr . ELSE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## IF expr THEN expr
@@ -1391,7 +1429,7 @@ lustre_spec: GUARANTEES IF XOR
 ##
 ## Ends in an error in state: 182.
 ##
-## expr -> IF . expr THEN expr ELSE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> IF . expr THEN expr ELSE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## IF
@@ -1413,7 +1451,7 @@ lustre_spec: GUARANTEES LBRACKET UIDENT RPAR
 ##
 ## Ends in an error in state: 261.
 ##
-## expr -> LBRACKET separated_nonempty_list(COMMA,expr) . RBRACKET [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> LBRACKET separated_nonempty_list(COMMA,expr) . RBRACKET [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## LBRACKET separated_nonempty_list(COMMA,expr)
@@ -1429,7 +1467,7 @@ lustre_spec: GUARANTEES LBRACKET XOR
 ##
 ## Ends in an error in state: 180.
 ##
-## expr -> LBRACKET . separated_nonempty_list(COMMA,expr) RBRACKET [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> LBRACKET . separated_nonempty_list(COMMA,expr) RBRACKET [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## LBRACKET
@@ -1438,7 +1476,7 @@ lustre_spec: GUARANTEES LPAR UIDENT COMMA XOR
 ##
 ## Ends in an error in state: 268.
 ##
-## expr -> LPAR expr COMMA . separated_nonempty_list(COMMA,expr) RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> LPAR expr COMMA . separated_nonempty_list(COMMA,expr) RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## LPAR expr COMMA
@@ -1447,9 +1485,9 @@ lustre_spec: GUARANTEES LPAR XOR
 ##
 ## Ends in an error in state: 179.
 ##
-## expr -> LPAR . ANNOT expr RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> LPAR . expr RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> LPAR . expr COMMA separated_nonempty_list(COMMA,expr) RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> LPAR . ANNOT expr RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> LPAR . expr RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> LPAR . expr COMMA separated_nonempty_list(COMMA,expr) RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## LPAR
@@ -1458,7 +1496,7 @@ lustre_spec: GUARANTEES UIDENT LPAR UIDENT COMMA XOR
 ##
 ## Ends in an error in state: 249.
 ##
-## expr -> node_ident LPAR expr COMMA . separated_nonempty_list(COMMA,expr) RPAR option(preceded(EVERY,expr)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> node_ident LPAR expr COMMA . separated_nonempty_list(COMMA,expr) RPAR option(preceded(EVERY,expr)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## node_ident LPAR expr COMMA
@@ -1467,15 +1505,15 @@ lustre_spec: GUARANTEES UIDENT LPAR XOR
 ##
 ## Ends in an error in state: 188.
 ##
-## expr -> node_ident LPAR . expr RPAR option(preceded(EVERY,expr)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> node_ident LPAR . expr COMMA separated_nonempty_list(COMMA,expr) RPAR option(preceded(EVERY,expr)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> node_ident LPAR . expr RPAR option(preceded(EVERY,expr)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> node_ident LPAR . expr COMMA separated_nonempty_list(COMMA,expr) RPAR option(preceded(EVERY,expr)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## node_ident LPAR
 ##
 lustre_spec: IMPORT IDENT LPAR UIDENT COMMA UIDENT RPAR RETURNS LPAR UIDENT COMMA XOR
 ##
-## Ends in an error in state: 359.
+## Ends in an error in state: 364.
 ##
 ## contract_content -> IMPORT IDENT LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR RETURNS LPAR expr COMMA . separated_nonempty_list(COMMA,expr) RPAR SCOL contract_content [ TEL EOF ]
 ##
@@ -1484,7 +1522,7 @@ lustre_spec: IMPORT IDENT LPAR UIDENT COMMA UIDENT RPAR RETURNS LPAR UIDENT COMM
 ##
 lustre_spec: IMPORT IDENT LPAR UIDENT RPAR RETURNS LPAR UIDENT COMMA XOR
 ##
-## Ends in an error in state: 345.
+## Ends in an error in state: 350.
 ##
 ## contract_content -> IMPORT IDENT LPAR expr RPAR RETURNS LPAR expr COMMA . separated_nonempty_list(COMMA,expr) RPAR SCOL contract_content [ TEL EOF ]
 ##
@@ -1493,7 +1531,7 @@ lustre_spec: IMPORT IDENT LPAR UIDENT RPAR RETURNS LPAR UIDENT COMMA XOR
 ##
 lustre_spec: IMPORT IDENT LPAR UIDENT COMMA UIDENT RPAR RETURNS LPAR XOR
 ##
-## Ends in an error in state: 354.
+## Ends in an error in state: 359.
 ##
 ## contract_content -> IMPORT IDENT LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR RETURNS LPAR . expr RPAR SCOL contract_content [ TEL EOF ]
 ## contract_content -> IMPORT IDENT LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR RETURNS LPAR . expr COMMA separated_nonempty_list(COMMA,expr) RPAR SCOL contract_content [ TEL EOF ]
@@ -1513,7 +1551,7 @@ lustre_spec: IMPORT IDENT LPAR UIDENT RPAR RETURNS LPAR XOR
 ##
 lustre_spec: IMPORT IDENT LPAR UIDENT COMMA XOR
 ##
-## Ends in an error in state: 350.
+## Ends in an error in state: 355.
 ##
 ## contract_content -> IMPORT IDENT LPAR expr COMMA . separated_nonempty_list(COMMA,expr) RPAR RETURNS LPAR expr RPAR SCOL contract_content [ TEL EOF ]
 ## contract_content -> IMPORT IDENT LPAR expr COMMA . separated_nonempty_list(COMMA,expr) RPAR RETURNS LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR SCOL contract_content [ TEL EOF ]
@@ -1541,7 +1579,7 @@ lustre_spec: GUARANTEES LPAR ANNOT XOR
 ##
 ## Ends in an error in state: 263.
 ##
-## expr -> LPAR ANNOT . expr RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> LPAR ANNOT . expr RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## LPAR ANNOT
@@ -1553,7 +1591,7 @@ lustre_spec: GUARANTEES LPAR UIDENT COMMA UIDENT RBRACKET
 ##
 ## Ends in an error in state: 269.
 ##
-## expr -> LPAR expr COMMA separated_nonempty_list(COMMA,expr) . RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> LPAR expr COMMA separated_nonempty_list(COMMA,expr) . RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## LPAR expr COMMA separated_nonempty_list(COMMA,expr)
@@ -1573,7 +1611,7 @@ lustre_spec: GUARANTEES MERGE UIDENT LPAR UIDENT ARROW UIDENT RPAR VAR
 ##
 ## Ends in an error in state: 272.
 ##
-## list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) -> LPAR tag_ident ARROW expr RPAR . list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) -> LPAR tag_ident ARROW expr RPAR . list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## LPAR tag_ident ARROW expr RPAR
@@ -1582,7 +1620,7 @@ lustre_spec: GUARANTEES MERGE UIDENT VAR
 ##
 ## Ends in an error in state: 175.
 ##
-## expr -> MERGE vdecl_ident . list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> MERGE vdecl_ident . list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## MERGE vdecl_ident
@@ -1595,7 +1633,7 @@ lustre_spec: GUARANTEES MERGE UIDENT LPAR UIDENT ARROW XOR
 ##
 ## Ends in an error in state: 178.
 ##
-## list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) -> LPAR tag_ident ARROW . expr RPAR list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) -> LPAR tag_ident ARROW . expr RPAR list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## LPAR tag_ident ARROW
@@ -1608,7 +1646,7 @@ lustre_spec: GUARANTEES MERGE UIDENT LPAR UIDENT XOR
 ##
 ## Ends in an error in state: 177.
 ##
-## list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) -> LPAR tag_ident . ARROW expr RPAR list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) -> LPAR tag_ident . ARROW expr RPAR list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## LPAR tag_ident
@@ -1617,7 +1655,7 @@ lustre_spec: GUARANTEES MERGE UIDENT LPAR XOR
 ##
 ## Ends in an error in state: 176.
 ##
-## list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) -> LPAR . tag_ident ARROW expr RPAR list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) -> LPAR . tag_ident ARROW expr RPAR list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## LPAR
@@ -1630,7 +1668,7 @@ lustre_spec: GUARANTEES MERGE XOR
 ##
 ## Ends in an error in state: 174.
 ##
-## expr -> MERGE . vdecl_ident list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> MERGE . vdecl_ident list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## MERGE
@@ -1643,7 +1681,7 @@ lustre_spec: GUARANTEES NOT XOR
 ##
 ## Ends in an error in state: 172.
 ##
-## expr -> NOT . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> NOT . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## NOT
@@ -1652,7 +1690,7 @@ lustre_spec: GUARANTEES MINUS XOR
 ##
 ## Ends in an error in state: 173.
 ##
-## expr -> MINUS . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> MINUS . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## MINUS
@@ -1661,7 +1699,7 @@ lustre_spec: GUARANTEES PRE XOR
 ##
 ## Ends in an error in state: 171.
 ##
-## expr -> PRE . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> PRE . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## PRE
@@ -1673,8 +1711,8 @@ lustre_spec: GUARANTEES STRING VAR
 ##
 ## Ends in an error in state: 322.
 ##
-## contract_content -> GUARANTEES STRING . qexpr SCOL contract_content [ TEL EOF ]
-## expr -> STRING . [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
+## contract_content -> GUARANTEES STRING . qexpr option(proof_annotation) SCOL contract_content [ TEL EOF ]
+## expr -> STRING . [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## GUARANTEES STRING
@@ -1683,8 +1721,8 @@ lustre_spec: GUARANTEES XOR
 ##
 ## Ends in an error in state: 321.
 ##
-## contract_content -> GUARANTEES . qexpr SCOL contract_content [ TEL EOF ]
-## contract_content -> GUARANTEES . STRING qexpr SCOL contract_content [ TEL EOF ]
+## contract_content -> GUARANTEES . qexpr option(proof_annotation) SCOL contract_content [ TEL EOF ]
+## contract_content -> GUARANTEES . STRING qexpr option(proof_annotation) SCOL contract_content [ TEL EOF ]
 ##
 ## The known suffix of the stack is as follows:
 ## GUARANTEES
@@ -1697,24 +1735,24 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT AMPERAMPER UIDENT VAR
 ##
 ## Ends in an error in state: 43.
 ##
-## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim AMPERAMPER dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim AMPERAMPER dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim AMPERAMPER dim
@@ -1723,24 +1761,24 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT AND UIDENT VAR
 ##
 ## Ends in an error in state: 41.
 ##
-## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim AND dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim AND dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim AND dim
@@ -1749,24 +1787,24 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT BARBAR UIDENT VAR
 ##
 ## Ends in an error in state: 51.
 ##
-## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim BARBAR dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim BARBAR dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim BARBAR dim
@@ -1775,24 +1813,24 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT EQ UIDENT VAR
 ##
 ## Ends in an error in state: 39.
 ##
-## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim EQ dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim EQ dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim EQ dim
@@ -1801,24 +1839,24 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT GT UIDENT VAR
 ##
 ## Ends in an error in state: 37.
 ##
-## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim GT dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim GT dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim GT dim
@@ -1827,24 +1865,24 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT GTE UIDENT VAR
 ##
 ## Ends in an error in state: 35.
 ##
-## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim GTE dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim GTE dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim GTE dim
@@ -1853,24 +1891,24 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT IMPL UIDENT VAR
 ##
 ## Ends in an error in state: 49.
 ##
-## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim IMPL dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim IMPL dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim IMPL dim
@@ -1879,24 +1917,24 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT LT UIDENT VAR
 ##
 ## Ends in an error in state: 33.
 ##
-## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim LT dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim LT dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim LT dim
@@ -1905,24 +1943,24 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT LTE UIDENT VAR
 ##
 ## Ends in an error in state: 31.
 ##
-## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim LTE dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim LTE dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim LTE dim
@@ -1931,24 +1969,24 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT MINUS UIDENT VAR
 ##
 ## Ends in an error in state: 29.
 ##
-## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim MINUS dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim MINUS dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim MINUS dim
@@ -1957,24 +1995,24 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT NEQ UIDENT VAR
 ##
 ## Ends in an error in state: 27.
 ##
-## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim NEQ dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim NEQ dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim NEQ dim
@@ -1983,24 +2021,24 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT OR UIDENT VAR
 ##
 ## Ends in an error in state: 47.
 ##
-## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim OR dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim OR dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim OR dim
@@ -2009,24 +2047,24 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT PLUS UIDENT VAR
 ##
 ## Ends in an error in state: 19.
 ##
-## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim PLUS dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim PLUS dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim PLUS dim
@@ -2035,24 +2073,24 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT XOR UIDENT VAR
 ##
 ## Ends in an error in state: 17.
 ##
-## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim XOR dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim XOR dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim XOR dim
@@ -2061,8 +2099,8 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT RBRACKET VAR
 ##
 ## Ends in an error in state: 201.
 ##
-## nonempty_list(delimited(LBRACKET,dim,RBRACKET)) -> LBRACKET dim RBRACKET . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## nonempty_list(delimited(LBRACKET,dim,RBRACKET)) -> LBRACKET dim RBRACKET . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## nonempty_list(delimited(LBRACKET,dim,RBRACKET)) -> LBRACKET dim RBRACKET . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## nonempty_list(delimited(LBRACKET,dim,RBRACKET)) -> LBRACKET dim RBRACKET . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## LBRACKET dim RBRACKET
@@ -2088,8 +2126,8 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT WHENNOT
 ## dim -> dim . MULT dim [ XOR RBRACKET PLUS OR NEQ MULT MOD MINUS LTE LT IMPL GTE GT EQ DIV BARBAR AND AMPERAMPER ]
 ## dim -> dim . DIV dim [ XOR RBRACKET PLUS OR NEQ MULT MOD MINUS LTE LT IMPL GTE GT EQ DIV BARBAR AND AMPERAMPER ]
 ## dim -> dim . MOD dim [ XOR RBRACKET PLUS OR NEQ MULT MOD MINUS LTE LT IMPL GTE GT EQ DIV BARBAR AND AMPERAMPER ]
-## nonempty_list(delimited(LBRACKET,dim,RBRACKET)) -> LBRACKET dim . RBRACKET [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## nonempty_list(delimited(LBRACKET,dim,RBRACKET)) -> LBRACKET dim . RBRACKET nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## nonempty_list(delimited(LBRACKET,dim,RBRACKET)) -> LBRACKET dim . RBRACKET [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## nonempty_list(delimited(LBRACKET,dim,RBRACKET)) -> LBRACKET dim . RBRACKET nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## LBRACKET dim
@@ -2098,24 +2136,24 @@ lustre_spec: GUARANTEES UIDENT POWER IF UIDENT THEN UIDENT ELSE UIDENT VAR
 ##
 ## Ends in an error in state: 53.
 ##
-## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> IF dim THEN dim ELSE dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> IF dim THEN dim ELSE dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## IF dim THEN dim ELSE dim
@@ -2141,7 +2179,7 @@ lustre_spec: GUARANTEES UIDENT POWER IF UIDENT THEN UIDENT WHENNOT
 ## dim -> dim . MULT dim [ XOR PLUS OR NEQ MULT MOD MINUS LTE LT IMPL GTE GT EQ ELSE DIV BARBAR AND AMPERAMPER ]
 ## dim -> dim . DIV dim [ XOR PLUS OR NEQ MULT MOD MINUS LTE LT IMPL GTE GT EQ ELSE DIV BARBAR AND AMPERAMPER ]
 ## dim -> dim . MOD dim [ XOR PLUS OR NEQ MULT MOD MINUS LTE LT IMPL GTE GT EQ ELSE DIV BARBAR AND AMPERAMPER ]
-## dim -> IF dim THEN dim . ELSE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> IF dim THEN dim . ELSE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## IF dim THEN dim
@@ -2150,7 +2188,7 @@ lustre_spec: GUARANTEES UIDENT POWER LPAR UIDENT WHENNOT
 ##
 ## Ends in an error in state: 54.
 ##
-## dim -> LPAR dim . RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> LPAR dim . RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ## dim -> dim . AND dim [ XOR RPAR PLUS OR NEQ MULT MOD MINUS LTE LT IMPL GTE GT EQ DIV BARBAR AND AMPERAMPER ]
 ## dim -> dim . AMPERAMPER dim [ XOR RPAR PLUS OR NEQ MULT MOD MINUS LTE LT IMPL GTE GT EQ DIV BARBAR AND AMPERAMPER ]
 ## dim -> dim . OR dim [ XOR RPAR PLUS OR NEQ MULT MOD MINUS LTE LT IMPL GTE GT EQ DIV BARBAR AND AMPERAMPER ]
@@ -2176,24 +2214,24 @@ lustre_spec: GUARANTEES UIDENT POWER NOT UIDENT VAR
 ##
 ## Ends in an error in state: 57.
 ##
-## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> NOT dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AND dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . AMPERAMPER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . OR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . BARBAR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . XOR dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> NOT dim . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . IMPL dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . EQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . LTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . GTE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . NEQ dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . PLUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MINUS dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MULT dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . DIV dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim . MOD dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## NOT dim
@@ -2232,7 +2270,7 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT AMPERAMPER XOR
 ##
 ## Ends in an error in state: 42.
 ##
-## dim -> dim AMPERAMPER . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim AMPERAMPER . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim AMPERAMPER
@@ -2241,7 +2279,7 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT AND XOR
 ##
 ## Ends in an error in state: 40.
 ##
-## dim -> dim AND . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim AND . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim AND
@@ -2250,7 +2288,7 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT BARBAR XOR
 ##
 ## Ends in an error in state: 50.
 ##
-## dim -> dim BARBAR . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim BARBAR . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim BARBAR
@@ -2259,7 +2297,7 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT DIV XOR
 ##
 ## Ends in an error in state: 24.
 ##
-## dim -> dim DIV . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim DIV . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim DIV
@@ -2268,7 +2306,7 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT EQ XOR
 ##
 ## Ends in an error in state: 38.
 ##
-## dim -> dim EQ . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim EQ . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim EQ
@@ -2277,7 +2315,7 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT GT XOR
 ##
 ## Ends in an error in state: 36.
 ##
-## dim -> dim GT . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim GT . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim GT
@@ -2286,7 +2324,7 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT GTE XOR
 ##
 ## Ends in an error in state: 34.
 ##
-## dim -> dim GTE . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim GTE . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim GTE
@@ -2295,7 +2333,7 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT IMPL XOR
 ##
 ## Ends in an error in state: 48.
 ##
-## dim -> dim IMPL . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim IMPL . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim IMPL
@@ -2304,7 +2342,7 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT LT XOR
 ##
 ## Ends in an error in state: 32.
 ##
-## dim -> dim LT . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim LT . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim LT
@@ -2313,7 +2351,7 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT LTE XOR
 ##
 ## Ends in an error in state: 30.
 ##
-## dim -> dim LTE . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim LTE . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim LTE
@@ -2322,7 +2360,7 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT MINUS XOR
 ##
 ## Ends in an error in state: 28.
 ##
-## dim -> dim MINUS . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim MINUS . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim MINUS
@@ -2331,7 +2369,7 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT MOD XOR
 ##
 ## Ends in an error in state: 22.
 ##
-## dim -> dim MOD . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim MOD . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim MOD
@@ -2340,7 +2378,7 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT MULT XOR
 ##
 ## Ends in an error in state: 20.
 ##
-## dim -> dim MULT . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim MULT . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim MULT
@@ -2349,7 +2387,7 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT NEQ XOR
 ##
 ## Ends in an error in state: 26.
 ##
-## dim -> dim NEQ . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim NEQ . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim NEQ
@@ -2358,7 +2396,7 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT OR XOR
 ##
 ## Ends in an error in state: 46.
 ##
-## dim -> dim OR . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim OR . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim OR
@@ -2367,7 +2405,7 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT PLUS XOR
 ##
 ## Ends in an error in state: 18.
 ##
-## dim -> dim PLUS . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim PLUS . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim PLUS
@@ -2376,7 +2414,7 @@ lustre_spec: GUARANTEES UIDENT LBRACKET UIDENT XOR XOR
 ##
 ## Ends in an error in state: 16.
 ##
-## dim -> dim XOR . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> dim XOR . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## dim XOR
@@ -2388,8 +2426,8 @@ lustre_spec: GUARANTEES UIDENT LBRACKET XOR
 ##
 ## Ends in an error in state: 199.
 ##
-## nonempty_list(delimited(LBRACKET,dim,RBRACKET)) -> LBRACKET . dim RBRACKET [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## nonempty_list(delimited(LBRACKET,dim,RBRACKET)) -> LBRACKET . dim RBRACKET nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## nonempty_list(delimited(LBRACKET,dim,RBRACKET)) -> LBRACKET . dim RBRACKET [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## nonempty_list(delimited(LBRACKET,dim,RBRACKET)) -> LBRACKET . dim RBRACKET nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## LBRACKET
@@ -2402,7 +2440,7 @@ lustre_spec: GUARANTEES UIDENT LPAR UIDENT COMMA UIDENT RBRACKET
 ##
 ## Ends in an error in state: 250.
 ##
-## expr -> node_ident LPAR expr COMMA separated_nonempty_list(COMMA,expr) . RPAR option(preceded(EVERY,expr)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> node_ident LPAR expr COMMA separated_nonempty_list(COMMA,expr) . RPAR option(preceded(EVERY,expr)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## node_ident LPAR expr COMMA separated_nonempty_list(COMMA,expr)
@@ -2422,7 +2460,7 @@ lustre_spec: GUARANTEES UIDENT LPAR UIDENT RPAR EVERY XOR
 ##
 ## Ends in an error in state: 236.
 ##
-## option(preceded(EVERY,expr)) -> EVERY . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## option(preceded(EVERY,expr)) -> EVERY . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## EVERY
@@ -2441,8 +2479,8 @@ lustre_spec: GUARANTEES UIDENT LPAR UIDENT THEN
 ## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN RPAR POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV COMMA BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN RPAR POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV COMMA BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN RPAR POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> node_ident LPAR expr . RPAR option(preceded(EVERY,expr)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> node_ident LPAR expr . COMMA separated_nonempty_list(COMMA,expr) RPAR option(preceded(EVERY,expr)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> node_ident LPAR expr . RPAR option(preceded(EVERY,expr)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> node_ident LPAR expr . COMMA separated_nonempty_list(COMMA,expr) RPAR option(preceded(EVERY,expr)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . AND expr [ XOR WHENNOT WHEN RPAR POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV COMMA BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN RPAR POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV COMMA BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . OR expr [ XOR WHENNOT WHEN RPAR POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV COMMA BARBAR ARROW AND AMPERAMPER ]
@@ -2472,7 +2510,7 @@ lustre_spec: GUARANTEES UIDENT LPAR UIDENT THEN
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET UIDENT EQ UIDENT THEN
 ##
-## Ends in an error in state: 531.
+## Ends in an error in state: 536.
 ##
 ## eq -> separated_nonempty_list(COMMA,vdecl_ident) EQ expr . SCOL [ UIDENT TEL LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ## expr -> expr . POWER dim [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
@@ -2513,31 +2551,31 @@ lustre_spec: GUARANTEES NOT TRUE VAR
 ##
 ## Ends in an error in state: 276.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> NOT expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> NOT expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## NOT expr
@@ -2546,31 +2584,31 @@ lustre_spec: GUARANTEES MINUS TRUE VAR
 ##
 ## Ends in an error in state: 275.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> MINUS expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> MINUS expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## MINUS expr
@@ -2579,31 +2617,31 @@ lustre_spec: GUARANTEES UIDENT AMPERAMPER TRUE VAR
 ##
 ## Ends in an error in state: 225.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr AMPERAMPER expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr AMPERAMPER expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr AMPERAMPER expr
@@ -2612,31 +2650,31 @@ lustre_spec: GUARANTEES UIDENT AND TRUE VAR
 ##
 ## Ends in an error in state: 223.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr AND expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr AND expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr AND expr
@@ -2645,31 +2683,31 @@ lustre_spec: GUARANTEES UIDENT BARBAR TRUE VAR
 ##
 ## Ends in an error in state: 243.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr BARBAR expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr BARBAR expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr BARBAR expr
@@ -2678,31 +2716,31 @@ lustre_spec: GUARANTEES UIDENT OR TRUE VAR
 ##
 ## Ends in an error in state: 239.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr OR expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr OR expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr OR expr
@@ -2711,31 +2749,31 @@ lustre_spec: GUARANTEES UIDENT XOR TRUE VAR
 ##
 ## Ends in an error in state: 192.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr XOR expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr XOR expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr XOR expr
@@ -2744,31 +2782,31 @@ lustre_spec: GUARANTEES UIDENT IMPL TRUE VAR
 ##
 ## Ends in an error in state: 241.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr IMPL expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr IMPL expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr IMPL expr
@@ -2777,31 +2815,31 @@ lustre_spec: GUARANTEES UIDENT EQ UIDENT NEQ
 ##
 ## Ends in an error in state: 221.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr EQ expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr EQ expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr EQ expr
@@ -2816,31 +2854,31 @@ lustre_spec: GUARANTEES UIDENT LT UIDENT NEQ
 ##
 ## Ends in an error in state: 215.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr LT expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr LT expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr LT expr
@@ -2855,31 +2893,31 @@ lustre_spec: GUARANTEES UIDENT LTE UIDENT NEQ
 ##
 ## Ends in an error in state: 213.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr LTE expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr LTE expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr LTE expr
@@ -2894,31 +2932,31 @@ lustre_spec: GUARANTEES UIDENT GT UIDENT NEQ
 ##
 ## Ends in an error in state: 219.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr GT expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr GT expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr GT expr
@@ -2933,31 +2971,31 @@ lustre_spec: GUARANTEES UIDENT GTE UIDENT NEQ
 ##
 ## Ends in an error in state: 217.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr GTE expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr GTE expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr GTE expr
@@ -2972,31 +3010,31 @@ lustre_spec: GUARANTEES UIDENT NEQ UIDENT NEQ
 ##
 ## Ends in an error in state: 209.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr NEQ expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr NEQ expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr NEQ expr
@@ -3011,31 +3049,31 @@ lustre_spec: GUARANTEES UIDENT PLUS TRUE VAR
 ##
 ## Ends in an error in state: 196.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr PLUS expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr PLUS expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr PLUS expr
@@ -3044,31 +3082,31 @@ lustre_spec: GUARANTEES UIDENT MINUS TRUE VAR
 ##
 ## Ends in an error in state: 211.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr MINUS expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr MINUS expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr MINUS expr
@@ -3077,31 +3115,31 @@ lustre_spec: GUARANTEES UIDENT MULT TRUE VAR
 ##
 ## Ends in an error in state: 198.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr MULT expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr MULT expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr MULT expr
@@ -3110,31 +3148,31 @@ lustre_spec: GUARANTEES UIDENT DIV TRUE VAR
 ##
 ## Ends in an error in state: 207.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr DIV expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr DIV expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr DIV expr
@@ -3143,38 +3181,38 @@ lustre_spec: GUARANTEES UIDENT MOD TRUE VAR
 ##
 ## Ends in an error in state: 205.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr MOD expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr MOD expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr MOD expr
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET ASSERT UIDENT THEN
 ##
-## Ends in an error in state: 525.
+## Ends in an error in state: 530.
 ##
 ## assert_ -> ASSERT expr . SCOL [ UIDENT TEL LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ## expr -> expr . POWER dim [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
@@ -3213,7 +3251,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET ASSERT
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMATON IDENT STATE UIDENT COL LET TEL UNTIL UIDENT THEN
 ##
-## Ends in an error in state: 542.
+## Ends in an error in state: 547.
 ##
 ## expr -> expr . POWER dim [ XOR WHENNOT WHEN RESUME RESTART POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN RESUME RESTART POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
@@ -3253,7 +3291,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMA
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMATON IDENT STATE UIDENT COL UNLESS UIDENT THEN
 ##
-## Ends in an error in state: 514.
+## Ends in an error in state: 519.
 ##
 ## expr -> expr . POWER dim [ XOR WHENNOT WHEN RESUME RESTART POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN RESUME RESTART POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
@@ -3293,7 +3331,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET AUTOMA
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET LPAR UIDENT RPAR EQ UIDENT THEN
 ##
-## Ends in an error in state: 506.
+## Ends in an error in state: 511.
 ##
 ## eq -> LPAR separated_nonempty_list(COMMA,vdecl_ident) RPAR EQ expr . SCOL [ UIDENT TEL LPAR IDENT AUTOMATON ASSERT ANNOT ]
 ## expr -> expr . POWER dim [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
@@ -3332,7 +3370,7 @@ prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LET LPAR U
 ##
 prog: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR VAR CONST UIDENT EQ UIDENT THEN
 ##
-## Ends in an error in state: 491.
+## Ends in an error in state: 496.
 ##
 ## expr -> expr . POWER dim [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
@@ -3373,7 +3411,7 @@ lustre_spec: GUARANTEES IDENT VAR
 ##
 ## Ends in an error in state: 183.
 ##
-## expr -> IDENT . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> IDENT . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ## ident -> IDENT . [ LPAR ]
 ##
 ## The known suffix of the stack is as follows:
@@ -3383,31 +3421,31 @@ lustre_spec: GUARANTEES IF UIDENT THEN UIDENT ELSE TRUE VAR
 ##
 ## Ends in an error in state: 260.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> IF expr THEN expr ELSE expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> IF expr THEN expr ELSE expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## IF expr THEN expr ELSE expr
@@ -3456,7 +3494,7 @@ lustre_spec: GUARANTEES LPAR ANNOT UIDENT THEN
 ##
 ## Ends in an error in state: 264.
 ##
-## expr -> LPAR ANNOT expr . RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> LPAR ANNOT expr . RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . POWER dim [ XOR WHENNOT WHEN RPAR POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN RPAR POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . ARROW expr [ XOR WHENNOT WHEN RPAR POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
@@ -3495,8 +3533,8 @@ lustre_spec: GUARANTEES LPAR UIDENT THEN
 ##
 ## Ends in an error in state: 266.
 ##
-## expr -> LPAR expr . RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> LPAR expr . COMMA separated_nonempty_list(COMMA,expr) RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> LPAR expr . RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> LPAR expr . COMMA separated_nonempty_list(COMMA,expr) RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . POWER dim [ XOR WHENNOT WHEN RPAR POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV COMMA BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN RPAR POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV COMMA BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . ARROW expr [ XOR WHENNOT WHEN RPAR POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV COMMA BARBAR ARROW AND AMPERAMPER ]
@@ -3559,7 +3597,7 @@ lustre_spec: GUARANTEES MERGE UIDENT LPAR UIDENT ARROW UIDENT THEN
 ## expr -> expr . MULT expr [ XOR WHENNOT WHEN RPAR POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . DIV expr [ XOR WHENNOT WHEN RPAR POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
 ## expr -> expr . MOD expr [ XOR WHENNOT WHEN RPAR POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) -> LPAR tag_ident ARROW expr . RPAR list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) -> LPAR tag_ident ARROW expr . RPAR list(delimited(LPAR,separated_pair(tag_ident,ARROW,expr),RPAR)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## LPAR tag_ident ARROW expr
@@ -3574,31 +3612,31 @@ lustre_spec: GUARANTEES PRE TRUE VAR
 ##
 ## Ends in an error in state: 277.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> PRE expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> PRE expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## PRE expr
@@ -3607,31 +3645,31 @@ lustre_spec: GUARANTEES UIDENT ARROW TRUE VAR
 ##
 ## Ends in an error in state: 247.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr ARROW expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr ARROW expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr ARROW expr
@@ -3640,31 +3678,31 @@ lustre_spec: GUARANTEES UIDENT FBY TRUE VAR
 ##
 ## Ends in an error in state: 245.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr FBY expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr FBY expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr FBY expr
@@ -3673,7 +3711,7 @@ lustre_spec: GUARANTEES UIDENT LPAR UIDENT COMMA UIDENT RPAR VAR
 ##
 ## Ends in an error in state: 251.
 ##
-## expr -> node_ident LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR . option(preceded(EVERY,expr)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> node_ident LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR . option(preceded(EVERY,expr)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## node_ident LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR
@@ -3682,31 +3720,31 @@ lustre_spec: GUARANTEES UIDENT LPAR UIDENT RPAR EVERY TRUE VAR
 ##
 ## Ends in an error in state: 237.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## option(preceded(EVERY,expr)) -> EVERY expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## option(preceded(EVERY,expr)) -> EVERY expr . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## EVERY expr
@@ -3715,7 +3753,7 @@ lustre_spec: GUARANTEES UIDENT LPAR UIDENT RPAR VAR
 ##
 ## Ends in an error in state: 235.
 ##
-## expr -> node_ident LPAR expr RPAR . option(preceded(EVERY,expr)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> node_ident LPAR expr RPAR . option(preceded(EVERY,expr)) [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## node_ident LPAR expr RPAR
@@ -3724,31 +3762,31 @@ lustre_spec: GUARANTEES UIDENT THEN
 ##
 ## Ends in an error in state: 292.
 ##
-## expr -> expr . POWER dim [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . ARROW expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . FBY expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AND expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . OR expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . XOR expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . IMPL expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . EQ expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LT expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . LTE expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GT expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . GTE expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . NEQ expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . PLUS expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MINUS expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MULT expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . DIV expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr . MOD expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
-## qexpr -> expr . [ SCOL ]
+## expr -> expr . POWER dim [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . nonempty_list(delimited(LBRACKET,dim,RBRACKET)) [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . ARROW expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . FBY expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN vdecl_ident [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHENNOT vdecl_ident [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . WHEN tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AND expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . AMPERAMPER expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . OR expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . BARBAR expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . XOR expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . IMPL expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . EQ expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LT expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . LTE expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GT expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . GTE expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . NEQ expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . PLUS expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MINUS expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MULT expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . DIV expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr . MOD expr [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BY BARBAR ARROW AND AMPERAMPER ]
+## qexpr -> expr . [ SCOL BY ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr
@@ -3763,7 +3801,7 @@ lustre_spec: GUARANTEES UIDENT VAR
 ##
 ## Ends in an error in state: 168.
 ##
-## expr -> UIDENT . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> UIDENT . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ## ident -> UIDENT . [ LPAR ]
 ##
 ## The known suffix of the stack is as follows:
@@ -3771,7 +3809,7 @@ lustre_spec: GUARANTEES UIDENT VAR
 ##
 lustre_spec: IMPORT IDENT LPAR UIDENT COMMA UIDENT RPAR RETURNS LPAR UIDENT THEN
 ##
-## Ends in an error in state: 355.
+## Ends in an error in state: 360.
 ##
 ## contract_content -> IMPORT IDENT LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR RETURNS LPAR expr . RPAR SCOL contract_content [ TEL EOF ]
 ## contract_content -> IMPORT IDENT LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR RETURNS LPAR expr . COMMA separated_nonempty_list(COMMA,expr) RPAR SCOL contract_content [ TEL EOF ]
@@ -3932,7 +3970,7 @@ lustre_spec: VAR IDENT COL TREAL EQ UIDENT THEN
 ##
 lustre_spec: CONST IDENT EQ UIDENT THEN
 ##
-## Ends in an error in state: 329.
+## Ends in an error in state: 333.
 ##
 ## contract_content -> CONST IDENT option(preceded(COL,typeconst)) EQ expr . SCOL contract_content [ TEL EOF ]
 ## expr -> expr . POWER dim [ XOR WHENNOT WHEN SCOL POWER PLUS OR NEQ MULT MOD MINUS LTE LT LBRACKET IMPL GTE GT FBY EQ DIV BARBAR ARROW AND AMPERAMPER ]
@@ -3976,7 +4014,7 @@ lustre_spec: GUARANTEES UIDENT PLUS XOR
 ##
 ## Ends in an error in state: 195.
 ##
-## expr -> expr PLUS . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr PLUS . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr PLUS
@@ -3985,7 +4023,7 @@ lustre_spec: GUARANTEES UIDENT MINUS XOR
 ##
 ## Ends in an error in state: 210.
 ##
-## expr -> expr MINUS . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr MINUS . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr MINUS
@@ -3994,7 +4032,7 @@ lustre_spec: GUARANTEES UIDENT MULT XOR
 ##
 ## Ends in an error in state: 197.
 ##
-## expr -> expr MULT . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr MULT . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr MULT
@@ -4003,7 +4041,7 @@ lustre_spec: GUARANTEES UIDENT DIV XOR
 ##
 ## Ends in an error in state: 206.
 ##
-## expr -> expr DIV . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr DIV . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr DIV
@@ -4012,7 +4050,7 @@ lustre_spec: GUARANTEES UIDENT AMPERAMPER XOR
 ##
 ## Ends in an error in state: 224.
 ##
-## expr -> expr AMPERAMPER . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr AMPERAMPER . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr AMPERAMPER
@@ -4021,7 +4059,7 @@ lustre_spec: GUARANTEES UIDENT AND XOR
 ##
 ## Ends in an error in state: 222.
 ##
-## expr -> expr AND . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr AND . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr AND
@@ -4030,7 +4068,7 @@ lustre_spec: GUARANTEES UIDENT BARBAR XOR
 ##
 ## Ends in an error in state: 242.
 ##
-## expr -> expr BARBAR . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr BARBAR . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr BARBAR
@@ -4039,7 +4077,7 @@ lustre_spec: GUARANTEES UIDENT OR XOR
 ##
 ## Ends in an error in state: 238.
 ##
-## expr -> expr OR . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr OR . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr OR
@@ -4048,7 +4086,7 @@ lustre_spec: GUARANTEES UIDENT XOR XOR
 ##
 ## Ends in an error in state: 191.
 ##
-## expr -> expr XOR . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr XOR . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr XOR
@@ -4057,7 +4095,7 @@ lustre_spec: GUARANTEES UIDENT IMPL XOR
 ##
 ## Ends in an error in state: 240.
 ##
-## expr -> expr IMPL . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr IMPL . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr IMPL
@@ -4066,7 +4104,7 @@ lustre_spec: GUARANTEES UIDENT EQ XOR
 ##
 ## Ends in an error in state: 220.
 ##
-## expr -> expr EQ . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr EQ . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr EQ
@@ -4075,7 +4113,7 @@ lustre_spec: GUARANTEES UIDENT LT XOR
 ##
 ## Ends in an error in state: 214.
 ##
-## expr -> expr LT . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr LT . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr LT
@@ -4084,7 +4122,7 @@ lustre_spec: GUARANTEES UIDENT LTE XOR
 ##
 ## Ends in an error in state: 212.
 ##
-## expr -> expr LTE . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr LTE . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr LTE
@@ -4093,7 +4131,7 @@ lustre_spec: GUARANTEES UIDENT GT XOR
 ##
 ## Ends in an error in state: 218.
 ##
-## expr -> expr GT . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr GT . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr GT
@@ -4102,7 +4140,7 @@ lustre_spec: GUARANTEES UIDENT GTE XOR
 ##
 ## Ends in an error in state: 216.
 ##
-## expr -> expr GTE . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr GTE . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr GTE
@@ -4111,7 +4149,7 @@ lustre_spec: GUARANTEES UIDENT NEQ XOR
 ##
 ## Ends in an error in state: 208.
 ##
-## expr -> expr NEQ . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr NEQ . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr NEQ
@@ -4120,7 +4158,7 @@ lustre_spec: GUARANTEES UIDENT MOD XOR
 ##
 ## Ends in an error in state: 204.
 ##
-## expr -> expr MOD . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr MOD . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr MOD
@@ -4129,7 +4167,7 @@ lustre_spec: GUARANTEES UIDENT ARROW XOR
 ##
 ## Ends in an error in state: 246.
 ##
-## expr -> expr ARROW . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr ARROW . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr ARROW
@@ -4138,7 +4176,7 @@ lustre_spec: GUARANTEES UIDENT FBY XOR
 ##
 ## Ends in an error in state: 244.
 ##
-## expr -> expr FBY . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr FBY . expr [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr FBY
@@ -4150,7 +4188,7 @@ lustre_spec: GUARANTEES UIDENT POWER IF UIDENT THEN UIDENT ELSE XOR
 ##
 ## Ends in an error in state: 52.
 ##
-## dim -> IF dim THEN dim ELSE . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> IF dim THEN dim ELSE . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## IF dim THEN dim ELSE
@@ -4159,7 +4197,7 @@ lustre_spec: GUARANTEES UIDENT POWER IF UIDENT THEN XOR
 ##
 ## Ends in an error in state: 44.
 ##
-## dim -> IF dim THEN . dim ELSE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> IF dim THEN . dim ELSE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## IF dim THEN
@@ -4189,7 +4227,7 @@ lustre_spec: GUARANTEES UIDENT POWER IF UIDENT WHENNOT
 ## dim -> dim . MULT dim [ XOR THEN PLUS OR NEQ MULT MOD MINUS LTE LT IMPL GTE GT EQ DIV BARBAR AND AMPERAMPER ]
 ## dim -> dim . DIV dim [ XOR THEN PLUS OR NEQ MULT MOD MINUS LTE LT IMPL GTE GT EQ DIV BARBAR AND AMPERAMPER ]
 ## dim -> dim . MOD dim [ XOR THEN PLUS OR NEQ MULT MOD MINUS LTE LT IMPL GTE GT EQ DIV BARBAR AND AMPERAMPER ]
-## dim -> IF dim . THEN dim ELSE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> IF dim . THEN dim ELSE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## IF dim
@@ -4202,7 +4240,7 @@ lustre_spec: GUARANTEES UIDENT POWER IF XOR
 ##
 ## Ends in an error in state: 12.
 ##
-## dim -> IF . dim THEN dim ELSE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> IF . dim THEN dim ELSE dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## IF
@@ -4215,7 +4253,7 @@ lustre_spec: GUARANTEES UIDENT POWER LPAR XOR
 ##
 ## Ends in an error in state: 10.
 ##
-## dim -> LPAR . dim RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> LPAR . dim RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## LPAR
@@ -4224,7 +4262,7 @@ lustre_spec: GUARANTEES UIDENT POWER XOR
 ##
 ## Ends in an error in state: 193.
 ##
-## expr -> expr POWER . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr POWER . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr POWER
@@ -4246,7 +4284,7 @@ lustre_spec: GUARANTEES UIDENT POWER MINUS XOR
 ##
 ## Ends in an error in state: 9.
 ##
-## dim -> MINUS . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> MINUS . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## MINUS
@@ -4255,7 +4293,7 @@ lustre_spec: GUARANTEES UIDENT POWER NOT XOR
 ##
 ## Ends in an error in state: 8.
 ##
-## dim -> NOT . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## dim -> NOT . dim [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RCUR RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## NOT
@@ -4267,7 +4305,7 @@ lustre_spec: GUARANTEES UIDENT WHEN TRUE XOR
 ##
 ## Ends in an error in state: 231.
 ##
-## expr -> expr WHEN tag_ident . LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr WHEN tag_ident . LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr WHEN tag_ident
@@ -4276,7 +4314,7 @@ lustre_spec: GUARANTEES UIDENT WHEN UIDENT LPAR UIDENT XOR
 ##
 ## Ends in an error in state: 233.
 ##
-## expr -> expr WHEN tag_ident LPAR vdecl_ident . RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr WHEN tag_ident LPAR vdecl_ident . RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr WHEN tag_ident LPAR vdecl_ident
@@ -4285,7 +4323,7 @@ lustre_spec: GUARANTEES UIDENT WHEN UIDENT LPAR XOR
 ##
 ## Ends in an error in state: 232.
 ##
-## expr -> expr WHEN tag_ident LPAR . vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr WHEN tag_ident LPAR . vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr WHEN tag_ident LPAR
@@ -4294,7 +4332,7 @@ lustre_spec: GUARANTEES UIDENT WHEN UIDENT VAR
 ##
 ## Ends in an error in state: 229.
 ##
-## ident -> UIDENT . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## ident -> UIDENT . [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ## tag_ident -> UIDENT . [ LPAR ]
 ##
 ## The known suffix of the stack is as follows:
@@ -4304,8 +4342,8 @@ lustre_spec: GUARANTEES UIDENT WHEN XOR
 ##
 ## Ends in an error in state: 228.
 ##
-## expr -> expr WHEN . vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
-## expr -> expr WHEN . tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr WHEN . vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr WHEN . tag_ident LPAR vdecl_ident RPAR [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr WHEN
@@ -4314,7 +4352,7 @@ lustre_spec: GUARANTEES UIDENT WHENNOT XOR
 ##
 ## Ends in an error in state: 226.
 ##
-## expr -> expr WHENNOT . vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BARBAR ARROW AND AMPERAMPER ]
+## expr -> expr WHENNOT . vdecl_ident [ XOR WHENNOT WHEN THEN SCOL RPAR RESUME RESTART RBRACKET POWER PLUS OR NEQ MULT MOD MINUS LTE LT LET LBRACKET IMPL GTE GT FBY EQ ELSE DIV COMMA BY BARBAR ARROW AND AMPERAMPER ]
 ##
 ## The known suffix of the stack is as follows:
 ## expr WHENNOT
@@ -4325,7 +4363,7 @@ Ill-formed sampling expression: after the `when` and `whenot` keywords, either a
 
 lustre_spec: IMPORT IDENT LPAR UIDENT COMMA UIDENT RBRACKET
 ##
-## Ends in an error in state: 351.
+## Ends in an error in state: 356.
 ##
 ## contract_content -> IMPORT IDENT LPAR expr COMMA separated_nonempty_list(COMMA,expr) . RPAR RETURNS LPAR expr RPAR SCOL contract_content [ TEL EOF ]
 ## contract_content -> IMPORT IDENT LPAR expr COMMA separated_nonempty_list(COMMA,expr) . RPAR RETURNS LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR SCOL contract_content [ TEL EOF ]
@@ -4358,7 +4396,7 @@ Ill-formed `import` contract: an imported node must specify its inputs as a pare
 
 lustre_spec: IMPORT IDENT LPAR UIDENT COMMA UIDENT RPAR RETURNS LPAR UIDENT COMMA UIDENT RBRACKET
 ##
-## Ends in an error in state: 360.
+## Ends in an error in state: 365.
 ##
 ## contract_content -> IMPORT IDENT LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR RETURNS LPAR expr COMMA separated_nonempty_list(COMMA,expr) . RPAR SCOL contract_content [ TEL EOF ]
 ##
@@ -4374,7 +4412,7 @@ lustre_spec: IMPORT IDENT LPAR UIDENT COMMA UIDENT RPAR RETURNS LPAR UIDENT COMM
 ##
 lustre_spec: IMPORT IDENT LPAR UIDENT COMMA UIDENT RPAR XOR
 ##
-## Ends in an error in state: 352.
+## Ends in an error in state: 357.
 ##
 ## contract_content -> IMPORT IDENT LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR . RETURNS LPAR expr RPAR SCOL contract_content [ TEL EOF ]
 ## contract_content -> IMPORT IDENT LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR . RETURNS LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR SCOL contract_content [ TEL EOF ]
@@ -4384,7 +4422,7 @@ lustre_spec: IMPORT IDENT LPAR UIDENT COMMA UIDENT RPAR XOR
 ##
 lustre_spec: IMPORT IDENT LPAR UIDENT COMMA UIDENT RPAR RETURNS XOR
 ##
-## Ends in an error in state: 353.
+## Ends in an error in state: 358.
 ##
 ## contract_content -> IMPORT IDENT LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR RETURNS . LPAR expr RPAR SCOL contract_content [ TEL EOF ]
 ## contract_content -> IMPORT IDENT LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR RETURNS . LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR SCOL contract_content [ TEL EOF ]
@@ -4394,7 +4432,7 @@ lustre_spec: IMPORT IDENT LPAR UIDENT COMMA UIDENT RPAR RETURNS XOR
 ##
 lustre_spec: IMPORT IDENT LPAR UIDENT RPAR RETURNS LPAR UIDENT COMMA UIDENT RBRACKET
 ##
-## Ends in an error in state: 346.
+## Ends in an error in state: 351.
 ##
 ## contract_content -> IMPORT IDENT LPAR expr RPAR RETURNS LPAR expr COMMA separated_nonempty_list(COMMA,expr) . RPAR SCOL contract_content [ TEL EOF ]
 ##
@@ -4434,7 +4472,7 @@ Ill-formed `import` contract: an imported node must specify its outputs as a par
 
 lustre_spec: IMPORT IDENT LPAR UIDENT COMMA UIDENT RPAR RETURNS LPAR UIDENT COMMA UIDENT RPAR XOR
 ##
-## Ends in an error in state: 361.
+## Ends in an error in state: 366.
 ##
 ## contract_content -> IMPORT IDENT LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR RETURNS LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR . SCOL contract_content [ TEL EOF ]
 ##
@@ -4443,7 +4481,7 @@ lustre_spec: IMPORT IDENT LPAR UIDENT COMMA UIDENT RPAR RETURNS LPAR UIDENT COMM
 ##
 lustre_spec: IMPORT IDENT LPAR UIDENT COMMA UIDENT RPAR RETURNS LPAR UIDENT RPAR XOR
 ##
-## Ends in an error in state: 356.
+## Ends in an error in state: 361.
 ##
 ## contract_content -> IMPORT IDENT LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR RETURNS LPAR expr RPAR . SCOL contract_content [ TEL EOF ]
 ##
@@ -4452,7 +4490,7 @@ lustre_spec: IMPORT IDENT LPAR UIDENT COMMA UIDENT RPAR RETURNS LPAR UIDENT RPAR
 ##
 lustre_spec: IMPORT IDENT LPAR UIDENT RPAR RETURNS LPAR UIDENT COMMA UIDENT RPAR XOR
 ##
-## Ends in an error in state: 347.
+## Ends in an error in state: 352.
 ##
 ## contract_content -> IMPORT IDENT LPAR expr RPAR RETURNS LPAR expr COMMA separated_nonempty_list(COMMA,expr) RPAR . SCOL contract_content [ TEL EOF ]
 ##
@@ -4563,6 +4601,70 @@ lustre_spec: MODE IDENT LPAR XOR
 ## The known suffix of the stack is as follows:
 ## MODE IDENT LPAR
 ##
+lustre_spec: MODE IDENT LPAR ENSURE STRING UIDENT BY
+##
+## Ends in an error in state: 298.
+##
+## mode_content -> ENSURE STRING qexpr . SCOL mode_content [ RPAR ]
+##
+## The known suffix of the stack is as follows:
+## ENSURE STRING qexpr
+##
+## WARNING: This example involves spurious reductions.
+## This implies that, although the LR(1) items shown above provide an
+## accurate view of the past (what has been recognized so far), they
+## may provide an INCOMPLETE view of the future (what was expected next).
+## In state 168, spurious reduction of production expr -> UIDENT
+## In state 292, spurious reduction of production qexpr -> expr
+##
+lustre_spec: MODE IDENT LPAR ENSURE UIDENT BY
+##
+## Ends in an error in state: 301.
+##
+## mode_content -> ENSURE qexpr . SCOL mode_content [ RPAR ]
+##
+## The known suffix of the stack is as follows:
+## ENSURE qexpr
+##
+## WARNING: This example involves spurious reductions.
+## This implies that, although the LR(1) items shown above provide an
+## accurate view of the past (what has been recognized so far), they
+## may provide an INCOMPLETE view of the future (what was expected next).
+## In state 168, spurious reduction of production expr -> UIDENT
+## In state 292, spurious reduction of production qexpr -> expr
+##
+lustre_spec: MODE IDENT LPAR REQUIRE STRING UIDENT BY
+##
+## Ends in an error in state: 294.
+##
+## mode_content -> REQUIRE STRING qexpr . SCOL mode_content [ RPAR ]
+##
+## The known suffix of the stack is as follows:
+## REQUIRE STRING qexpr
+##
+## WARNING: This example involves spurious reductions.
+## This implies that, although the LR(1) items shown above provide an
+## accurate view of the past (what has been recognized so far), they
+## may provide an INCOMPLETE view of the future (what was expected next).
+## In state 168, spurious reduction of production expr -> UIDENT
+## In state 292, spurious reduction of production qexpr -> expr
+##
+lustre_spec: MODE IDENT LPAR REQUIRE UIDENT BY
+##
+## Ends in an error in state: 305.
+##
+## mode_content -> REQUIRE qexpr . SCOL mode_content [ RPAR ]
+##
+## The known suffix of the stack is as follows:
+## REQUIRE qexpr
+##
+## WARNING: This example involves spurious reductions.
+## This implies that, although the LR(1) items shown above provide an
+## accurate view of the past (what has been recognized so far), they
+## may provide an INCOMPLETE view of the future (what was expected next).
+## In state 168, spurious reduction of production expr -> UIDENT
+## In state 292, spurious reduction of production qexpr -> expr
+##
 
 Ill-formed `mode` contract content.
   Example: --@ mode m (require x=42; ensure y=0);
@@ -4624,12 +4726,6 @@ lustre_spec: VAR IDENT COL TREAL EQ XOR
 ## The known suffix of the stack is as follows:
 ## VAR IDENT COL typeconst EQ
 ##
-## WARNING: This example involves spurious reductions.
-## This implies that, although the LR(1) items shown above provide an
-## accurate view of the past (what has been recognized so far), they
-## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 5, spurious reduction of production typeconst -> TREAL
-##
 lustre_spec: VAR IDENT XOR
 ##
 ## Ends in an error in state: 164.
@@ -4708,6 +4804,12 @@ lustre_spec: VAR IDENT COL TREAL WHENNOT
 ## The known suffix of the stack is as follows:
 ## VAR IDENT COL typeconst
 ##
+## WARNING: This example involves spurious reductions.
+## This implies that, although the LR(1) items shown above provide an
+## accurate view of the past (what has been recognized so far), they
+## may provide an INCOMPLETE view of the future (what was expected next).
+## In state 5, spurious reduction of production typeconst -> TREAL
+##
 header: TYPE IDENT EQ STRUCT LCUR IDENT COL TREAL WHENNOT
 ##
 ## Ends in an error in state: 72.
@@ -4758,7 +4860,7 @@ A contract `var` declaration must be followed by an identifier.
 
 lustre_spec: XOR
 ##
-## Ends in an error in state: 457.
+## Ends in an error in state: 462.
 ##
 ## lustre_spec' -> . lustre_spec [ # ]
 ##
@@ -4768,9 +4870,25 @@ lustre_spec: XOR
 
 Ill-formed specification.
 
+lustre_annot: DIV COL UIDENT BY
+##
+## Ends in an error in state: 453.
+##
+## lustre_annot_list -> kwd COL qexpr . SCOL lustre_annot_list [ EOF ]
+##
+## The known suffix of the stack is as follows:
+## kwd COL qexpr
+##
+## WARNING: This example involves spurious reductions.
+## This implies that, although the LR(1) items shown above provide an
+## accurate view of the past (what has been recognized so far), they
+## may provide an INCOMPLETE view of the future (what was expected next).
+## In state 168, spurious reduction of production expr -> UIDENT
+## In state 292, spurious reduction of production qexpr -> expr
+##
 lustre_annot: CCODE COL UIDENT SCOL XOR
 ##
-## Ends in an error in state: 444.
+## Ends in an error in state: 449.
 ##
 ## lustre_annot_list -> CCODE COL qexpr SCOL . lustre_annot_list [ EOF ]
 ##
@@ -4779,7 +4897,7 @@ lustre_annot: CCODE COL UIDENT SCOL XOR
 ##
 lustre_annot: DIV COL UIDENT SCOL XOR
 ##
-## Ends in an error in state: 449.
+## Ends in an error in state: 454.
 ##
 ## lustre_annot_list -> kwd COL qexpr SCOL . lustre_annot_list [ EOF ]
 ##
@@ -4788,7 +4906,7 @@ lustre_annot: DIV COL UIDENT SCOL XOR
 ##
 lustre_annot: IDENT COL UIDENT SCOL XOR
 ##
-## Ends in an error in state: 437.
+## Ends in an error in state: 442.
 ##
 ## lustre_annot_list -> IDENT COL qexpr SCOL . lustre_annot_list [ EOF ]
 ##
@@ -4797,7 +4915,7 @@ lustre_annot: IDENT COL UIDENT SCOL XOR
 ##
 lustre_annot: INVARIANT COL UIDENT SCOL XOR
 ##
-## Ends in an error in state: 433.
+## Ends in an error in state: 438.
 ##
 ## lustre_annot_list -> INVARIANT COL qexpr SCOL . lustre_annot_list [ EOF ]
 ##
@@ -4806,19 +4924,83 @@ lustre_annot: INVARIANT COL UIDENT SCOL XOR
 ##
 lustre_annot: MATLAB COL UIDENT SCOL XOR
 ##
-## Ends in an error in state: 429.
+## Ends in an error in state: 434.
 ##
 ## lustre_annot_list -> MATLAB COL qexpr SCOL . lustre_annot_list [ EOF ]
 ##
 ## The known suffix of the stack is as follows:
 ## MATLAB COL qexpr SCOL
 ##
+lustre_annot: CCODE COL UIDENT BY
+##
+## Ends in an error in state: 448.
+##
+## lustre_annot_list -> CCODE COL qexpr . SCOL lustre_annot_list [ EOF ]
+##
+## The known suffix of the stack is as follows:
+## CCODE COL qexpr
+##
+## WARNING: This example involves spurious reductions.
+## This implies that, although the LR(1) items shown above provide an
+## accurate view of the past (what has been recognized so far), they
+## may provide an INCOMPLETE view of the future (what was expected next).
+## In state 168, spurious reduction of production expr -> UIDENT
+## In state 292, spurious reduction of production qexpr -> expr
+##
+lustre_annot: IDENT COL UIDENT BY
+##
+## Ends in an error in state: 441.
+##
+## lustre_annot_list -> IDENT COL qexpr . SCOL lustre_annot_list [ EOF ]
+##
+## The known suffix of the stack is as follows:
+## IDENT COL qexpr
+##
+## WARNING: This example involves spurious reductions.
+## This implies that, although the LR(1) items shown above provide an
+## accurate view of the past (what has been recognized so far), they
+## may provide an INCOMPLETE view of the future (what was expected next).
+## In state 168, spurious reduction of production expr -> UIDENT
+## In state 292, spurious reduction of production qexpr -> expr
+##
+lustre_annot: INVARIANT COL UIDENT BY
+##
+## Ends in an error in state: 437.
+##
+## lustre_annot_list -> INVARIANT COL qexpr . SCOL lustre_annot_list [ EOF ]
+##
+## The known suffix of the stack is as follows:
+## INVARIANT COL qexpr
+##
+## WARNING: This example involves spurious reductions.
+## This implies that, although the LR(1) items shown above provide an
+## accurate view of the past (what has been recognized so far), they
+## may provide an INCOMPLETE view of the future (what was expected next).
+## In state 168, spurious reduction of production expr -> UIDENT
+## In state 292, spurious reduction of production qexpr -> expr
+##
+lustre_annot: MATLAB COL UIDENT BY
+##
+## Ends in an error in state: 433.
+##
+## lustre_annot_list -> MATLAB COL qexpr . SCOL lustre_annot_list [ EOF ]
+##
+## The known suffix of the stack is as follows:
+## MATLAB COL qexpr
+##
+## WARNING: This example involves spurious reductions.
+## This implies that, although the LR(1) items shown above provide an
+## accurate view of the past (what has been recognized so far), they
+## may provide an INCOMPLETE view of the future (what was expected next).
+## In state 168, spurious reduction of production expr -> UIDENT
+## In state 292, spurious reduction of production qexpr -> expr
+##
 
 Ill-formed annotation.
 
 lustre_annot: CCODE COL XOR
 ##
-## Ends in an error in state: 442.
+## Ends in an error in state: 447.
 ##
 ## lustre_annot_list -> CCODE COL . qexpr SCOL lustre_annot_list [ EOF ]
 ##
@@ -4827,7 +5009,7 @@ lustre_annot: CCODE COL XOR
 ##
 lustre_annot: CCODE XOR
 ##
-## Ends in an error in state: 441.
+## Ends in an error in state: 446.
 ##
 ## lustre_annot_list -> CCODE . COL qexpr SCOL lustre_annot_list [ EOF ]
 ##
@@ -4840,7 +5022,7 @@ A `c_code` annotation must be followed by a possibly quantified expression, afte
 
 lustre_annot: DIV COL XOR
 ##
-## Ends in an error in state: 447.
+## Ends in an error in state: 452.
 ##
 ## lustre_annot_list -> kwd COL . qexpr SCOL lustre_annot_list [ EOF ]
 ##
@@ -4849,7 +5031,7 @@ lustre_annot: DIV COL XOR
 ##
 lustre_annot: DIV IDENT XOR
 ##
-## Ends in an error in state: 439.
+## Ends in an error in state: 444.
 ##
 ## kwd -> DIV IDENT . kwd [ COL ]
 ##
@@ -4858,7 +5040,7 @@ lustre_annot: DIV IDENT XOR
 ##
 lustre_annot: DIV XOR
 ##
-## Ends in an error in state: 438.
+## Ends in an error in state: 443.
 ##
 ## kwd -> DIV . [ COL ]
 ## kwd -> DIV . IDENT kwd [ COL ]
@@ -4872,7 +5054,7 @@ A multiple annotation must be followed by a possibly quantified expression, afte
 
 lustre_annot: IDENT COL XOR
 ##
-## Ends in an error in state: 435.
+## Ends in an error in state: 440.
 ##
 ## lustre_annot_list -> IDENT COL . qexpr SCOL lustre_annot_list [ EOF ]
 ##
@@ -4881,7 +5063,7 @@ lustre_annot: IDENT COL XOR
 ##
 lustre_annot: IDENT XOR
 ##
-## Ends in an error in state: 434.
+## Ends in an error in state: 439.
 ##
 ## lustre_annot_list -> IDENT . COL qexpr SCOL lustre_annot_list [ EOF ]
 ##
@@ -4894,7 +5076,7 @@ A single annotation must be followed by a possibly quantified expression, after
 
 lustre_annot: INVARIANT COL XOR
 ##
-## Ends in an error in state: 431.
+## Ends in an error in state: 436.
 ##
 ## lustre_annot_list -> INVARIANT COL . qexpr SCOL lustre_annot_list [ EOF ]
 ##
@@ -4903,7 +5085,7 @@ lustre_annot: INVARIANT COL XOR
 ##
 lustre_annot: INVARIANT XOR
 ##
-## Ends in an error in state: 430.
+## Ends in an error in state: 435.
 ##
 ## lustre_annot_list -> INVARIANT . COL qexpr SCOL lustre_annot_list [ EOF ]
 ##
@@ -4916,7 +5098,7 @@ An `invariant` annotation must be followed by a possibly quantified expression,
 
 lustre_annot: MATLAB COL XOR
 ##
-## Ends in an error in state: 427.
+## Ends in an error in state: 432.
 ##
 ## lustre_annot_list -> MATLAB COL . qexpr SCOL lustre_annot_list [ EOF ]
 ##
@@ -4925,7 +5107,7 @@ lustre_annot: MATLAB COL XOR
 ##
 lustre_annot: MATLAB XOR
 ##
-## Ends in an error in state: 426.
+## Ends in an error in state: 431.
 ##
 ## lustre_annot_list -> MATLAB . COL qexpr SCOL lustre_annot_list [ EOF ]
 ##
@@ -4938,7 +5120,7 @@ An `matlab` annotation must be followed by a possibly quantified expression, aft
 
 lustre_annot: XOR
 ##
-## Ends in an error in state: 425.
+## Ends in an error in state: 430.
 ##
 ## lustre_annot' -> . lustre_annot [ # ]
 ##
@@ -4948,10 +5130,9 @@ lustre_annot: XOR
 
 Ill-formed annotation.
 
-
 header: CONST UIDENT EQ FALSE XOR
 ##
-## Ends in an error in state: 396.
+## Ends in an error in state: 401.
 ##
 ## nonempty_list(cdecl) -> cdecl . [ SCOL ]
 ## nonempty_list(cdecl) -> cdecl . nonempty_list(cdecl) [ SCOL ]
@@ -4965,7 +5146,7 @@ A `const` declaration must be terminated by a `;`.
 
 header: CONST UIDENT EQ LBRACKET UIDENT COMMA XOR
 ##
-## Ends in an error in state: 386.
+## Ends in an error in state: 391.
 ##
 ## separated_nonempty_list(COMMA,signed_const) -> signed_const COMMA . separated_nonempty_list(COMMA,signed_const) [ RBRACKET ]
 ##
@@ -4974,7 +5155,7 @@ header: CONST UIDENT EQ LBRACKET UIDENT COMMA XOR
 ##
 header: CONST UIDENT EQ LBRACKET XOR
 ##
-## Ends in an error in state: 382.
+## Ends in an error in state: 387.
 ##
 ## signed_const -> LBRACKET . separated_nonempty_list(COMMA,signed_const) RBRACKET [ UIDENT SCOL RCUR RBRACKET IDENT COMMA ]
 ##
@@ -4983,7 +5164,7 @@ header: CONST UIDENT EQ LBRACKET XOR
 ##
 header: CONST UIDENT EQ LBRACKET UIDENT XOR
 ##
-## Ends in an error in state: 385.
+## Ends in an error in state: 390.
 ##
 ## separated_nonempty_list(COMMA,signed_const) -> signed_const . [ RBRACKET ]
 ## separated_nonempty_list(COMMA,signed_const) -> signed_const . COMMA separated_nonempty_list(COMMA,signed_const) [ RBRACKET ]
@@ -4997,7 +5178,7 @@ Ill-formed array constant.
 
 header: CONST UIDENT EQ LCUR IDENT EQ UIDENT COMMA XOR
 ##
-## Ends in an error in state: 391.
+## Ends in an error in state: 396.
 ##
 ## separated_nonempty_list(COMMA,separated_pair(IDENT,EQ,signed_const)) -> IDENT EQ signed_const COMMA . separated_nonempty_list(COMMA,separated_pair(IDENT,EQ,signed_const)) [ RCUR ]
 ##
@@ -5006,7 +5187,7 @@ header: CONST UIDENT EQ LCUR IDENT EQ UIDENT COMMA XOR
 ##
 header: CONST UIDENT EQ LCUR IDENT EQ XOR
 ##
-## Ends in an error in state: 381.
+## Ends in an error in state: 386.
 ##
 ## separated_nonempty_list(COMMA,separated_pair(IDENT,EQ,signed_const)) -> IDENT EQ . signed_const [ RCUR ]
 ## separated_nonempty_list(COMMA,separated_pair(IDENT,EQ,signed_const)) -> IDENT EQ . signed_const COMMA separated_nonempty_list(COMMA,separated_pair(IDENT,EQ,signed_const)) [ RCUR ]
@@ -5016,7 +5197,7 @@ header: CONST UIDENT EQ LCUR IDENT EQ XOR
 ##
 header: CONST UIDENT EQ LCUR IDENT EQ UIDENT XOR
 ##
-## Ends in an error in state: 390.
+## Ends in an error in state: 395.
 ##
 ## separated_nonempty_list(COMMA,separated_pair(IDENT,EQ,signed_const)) -> IDENT EQ signed_const . [ RCUR ]
 ## separated_nonempty_list(COMMA,separated_pair(IDENT,EQ,signed_const)) -> IDENT EQ signed_const . COMMA separated_nonempty_list(COMMA,separated_pair(IDENT,EQ,signed_const)) [ RCUR ]
@@ -5026,7 +5207,7 @@ header: CONST UIDENT EQ LCUR IDENT EQ UIDENT XOR
 ##
 header: CONST UIDENT EQ LCUR IDENT XOR
 ##
-## Ends in an error in state: 380.
+## Ends in an error in state: 385.
 ##
 ## separated_nonempty_list(COMMA,separated_pair(IDENT,EQ,signed_const)) -> IDENT . EQ signed_const [ RCUR ]
 ## separated_nonempty_list(COMMA,separated_pair(IDENT,EQ,signed_const)) -> IDENT . EQ signed_const COMMA separated_nonempty_list(COMMA,separated_pair(IDENT,EQ,signed_const)) [ RCUR ]
@@ -5036,7 +5217,7 @@ header: CONST UIDENT EQ LCUR IDENT XOR
 ##
 header: CONST UIDENT EQ LCUR XOR
 ##
-## Ends in an error in state: 379.
+## Ends in an error in state: 384.
 ##
 ## signed_const -> LCUR . separated_nonempty_list(COMMA,separated_pair(IDENT,EQ,signed_const)) RCUR [ UIDENT SCOL RCUR RBRACKET IDENT COMMA ]
 ##
@@ -5049,7 +5230,7 @@ Ill-formed structure constant.
 
 header: CONST UIDENT EQ MINUS XOR
 ##
-## Ends in an error in state: 376.
+## Ends in an error in state: 381.
 ##
 ## signed_const -> MINUS . INT [ UIDENT SCOL RCUR RBRACKET IDENT COMMA ]
 ## signed_const -> MINUS . REAL [ UIDENT SCOL RCUR RBRACKET IDENT COMMA ]
@@ -5063,7 +5244,7 @@ A real or integer constant is expected here.
 
 header: CONST UIDENT XOR
 ##
-## Ends in an error in state: 373.
+## Ends in an error in state: 378.
 ##
 ## cdecl -> const_ident . EQ signed_const [ UIDENT SCOL IDENT ]
 ##
@@ -5072,7 +5253,7 @@ header: CONST UIDENT XOR
 ##
 header: CONST UIDENT EQ XOR
 ##
-## Ends in an error in state: 374.
+## Ends in an error in state: 379.
 ##
 ## cdecl -> const_ident EQ . signed_const [ UIDENT SCOL IDENT ]
 ##
@@ -5085,7 +5266,7 @@ A `const` declaration must be initialized with a constant, using the `=` operato
 
 header: CONST XOR
 ##
-## Ends in an error in state: 369.
+## Ends in an error in state: 374.
 ##
 ## top_decl_header -> CONST . nonempty_list(cdecl) SCOL [ NODESPEC NODE FUNCTION EOF CONTRACT CONST ]
 ##
@@ -5094,7 +5275,7 @@ header: CONST XOR
 ##
 prog: CONST XOR
 ##
-## Ends in an error in state: 471.
+## Ends in an error in state: 476.
 ##
 ## top_decl -> CONST . nonempty_list(cdecl) SCOL [ NODESPEC NODE FUNCTION EOF CONST ]
 ##
@@ -5105,7 +5286,6 @@ prog: CONST XOR
 A `const` declaration must be followed by an identifier.
   Example: const x = 42;
 
-
 header: INCLUDE QUOTE UIDENT GT
 ##
 ## Ends in an error in state: 111.
@@ -5255,7 +5435,7 @@ Ill-formed path specification.
 
 header: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LIB XOR
 ##
-## Ends in an error in state: 415.
+## Ends in an error in state: 420.
 ##
 ## list(preceded(LIB,module_ident)) -> LIB . module_ident list(preceded(LIB,module_ident)) [ SCOL ]
 ##
@@ -5267,7 +5447,7 @@ The `lib` keyword must be followed by a module name.
 
 header: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR PROTOTYPE XOR
 ##
-## Ends in an error in state: 412.
+## Ends in an error in state: 417.
 ##
 ## option(preceded(PROTOTYPE,node_ident)) -> PROTOTYPE . node_ident [ SCOL LIB ]
 ##
@@ -5279,7 +5459,7 @@ The `prototype` keyword must be followed by a node or function name.
 
 header: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR XOR
 ##
-## Ends in an error in state: 411.
+## Ends in an error in state: 416.
 ##
 ## top_decl_header -> nodespecs state_annot node_ident_decl LPAR var_decl_list(vdecl) RPAR RETURNS LPAR var_decl_list(vdecl) RPAR . option(preceded(PROTOTYPE,node_ident)) list(preceded(LIB,module_ident)) SCOL [ NODESPEC NODE FUNCTION EOF CONTRACT CONST ]
 ##
@@ -5288,7 +5468,7 @@ header: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR XOR
 ##
 header: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LIB UIDENT XOR
 ##
-## Ends in an error in state: 416.
+## Ends in an error in state: 421.
 ##
 ## list(preceded(LIB,module_ident)) -> LIB module_ident . list(preceded(LIB,module_ident)) [ SCOL ]
 ##
@@ -5297,7 +5477,7 @@ header: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR LIB UIDE
 ##
 header: NODE UIDENT LPAR CONST IDENT RPAR RETURNS LPAR CONST IDENT RPAR PROTOTYPE UIDENT LET
 ##
-## Ends in an error in state: 414.
+## Ends in an error in state: 419.
 ##
 ## top_decl_header -> nodespecs state_annot node_ident_decl LPAR var_decl_list(vdecl) RPAR RETURNS LPAR var_decl_list(vdecl) RPAR option(preceded(PROTOTYPE,node_ident)) . list(preceded(LIB,module_ident)) SCOL [ NODESPEC NODE FUNCTION EOF CONTRACT CONST ]
 ##
@@ -5447,3 +5627,37 @@ header: XOR
 
 Ill-formed declaration.
 
+lustre_spec: GUARANTEES STRING UIDENT BY KINDUCTION XOR
+##
+## Ends in an error in state: 327.
+##
+## contract_content -> GUARANTEES STRING qexpr option(proof_annotation) . SCOL contract_content [ TEL EOF ]
+##
+## The known suffix of the stack is as follows:
+## GUARANTEES STRING qexpr option(proof_annotation)
+##
+lustre_spec: GUARANTEES UIDENT BY KINDUCTION XOR
+##
+## Ends in an error in state: 346.
+##
+## contract_content -> GUARANTEES qexpr option(proof_annotation) . SCOL contract_content [ TEL EOF ]
+##
+## The known suffix of the stack is as follows:
+## GUARANTEES qexpr option(proof_annotation)
+##
+
+A proof annotation must be terminated by a `;` to end the contract.
+
+lustre_spec: GUARANTEES UIDENT BY XOR
+##
+## Ends in an error in state: 324.
+##
+## proof_annotation -> BY . KINDUCTION [ SCOL ]
+##
+## The known suffix of the stack is as follows:
+## BY
+##
+
+Ill-formed proof annotation.
+  Example: guarantee x > 42 by 4-induction;
+
diff --git a/src/parsers/parser_lustre.mly b/src/parsers/parser_lustre.mly
index 8c86a0f3..5038be55 100644
--- a/src/parsers/parser_lustre.mly
+++ b/src/parsers/parser_lustre.mly
@@ -81,6 +81,8 @@ let rec fby loc expr n init =
 %token INVARIANT MODE CCODE MATLAB
 %token EXISTS FORALL
 %token PROTOTYPE LIB
+%token BY
+%token <int> KINDUCTION
 %token EOF
 
 %nonassoc p_string
@@ -370,6 +372,9 @@ top_contract:
     nd
   }
 
+proof_annotation:
+| BY k=KINDUCTION { Kinduction k }
+
 contract_content:
 | { empty_contract }
 /* | CONTRACT cc=contract_content */
@@ -380,8 +385,8 @@ contract_content:
   { merge_contracts (mk_contract_var x false (Some (mktyp $sloc t)) e $sloc) cc }
 | ASSUME x=ioption(STRING) e=qexpr SCOL cc=contract_content
   { merge_contracts (mk_contract_assume x e) cc }
-| GUARANTEES x=ioption(STRING) e=qexpr SCOL cc=contract_content
-  { merge_contracts (mk_contract_guarantees x e) cc }
+| GUARANTEES x=ioption(STRING) e=qexpr p=proof_annotation? SCOL cc=contract_content
+  { merge_contracts (mk_contract_guarantees x e p) cc }
 | MODE x=IDENT LPAR mc=mode_content RPAR SCOL cc=contract_content
   { merge_contracts (
         let r, e = mc in
diff --git a/src/printers.ml b/src/printers.ml
index 4b6e89c4..15bae926 100644
--- a/src/printers.ml
+++ b/src/printers.ml
@@ -581,7 +581,7 @@ let pp_spec_as_comment fmt (inl, outl, spec) =
     fprintf fmt "@[<hov 2>(*@contract@ ";
     pp_spec fmt c;
     fprintf fmt "@]*)@ "
-  | NodeSpec (name, _) ->
+  | NodeSpec name ->
     (* Pushing stmts in contract. We update the original information with the
        computed one in nd. *)
     let pp_l = pp_comma_list pp_var_name in
-- 
GitLab