From 6ea8238682075d66097aa9027751985e32a5cc49 Mon Sep 17 00:00:00 2001
From: Michele Alberti <michele.alberti@cea.fr>
Date: Wed, 30 Nov 2022 10:14:08 +0100
Subject: [PATCH] [dataset] More robust meta generation for inputs and outputs.

---
 src/dataset.ml | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/dataset.ml b/src/dataset.ml
index a1f0f6e..b792972 100644
--- a/src/dataset.ml
+++ b/src/dataset.ml
@@ -316,15 +316,16 @@ let add_decls ~kind task =
     | `In n -> (n, Fmt.str "x%d", Utils.meta_input)
     | `Out n -> (n, Fmt.str "y%d", Utils.meta_output)
   in
-  let lls =
-    List.init n ~f:(fun idx ->
-      Term.create_lsymbol (Ident.id_fresh (fid idx)) [] (Some Ty.ty_real))
+  let id_lls =
+    List.init n ~f:(fun id ->
+      (id, Term.create_lsymbol (Ident.id_fresh (fid id)) [] (Some Ty.ty_real)))
   in
-  let task =
-    List.foldi lls ~init:task ~f:(fun idx task ls ->
-      let task = Task.add_meta task meta [ MAls ls; MAint idx ] in
-      Task.add_param_decl task ls)
+  let lls, task =
+    List.fold id_lls ~init:([], task) ~f:(fun (lls, task) (id, ls) ->
+      let task = Task.add_meta task meta [ MAls ls; MAint id ] in
+      (ls :: lls, Task.add_param_decl task ls))
   in
+  let lls = List.rev lls in
   (lls, task)
 
 let tasks_of_nn_csv_predicate env
-- 
GitLab