diff --git a/src/builtin.elpi b/src/builtin.elpi index 155b38fa6..83013ac52 100644 --- a/src/builtin.elpi +++ b/src/builtin.elpi @@ -478,10 +478,9 @@ primitive? X S :- is_cdata X (ctype S). external pred new_int o:int. % [findall_solution P L] finds all the solved instances of P and puts them -% in L -% in the order in which they are found. Instances can contain -% eigenvariables -% and unification variables. +% in L in the order in which they are found. Instances can contain +% eigenvariables and unification variables. P may or may not be +% instantiated. Instances should be found in L. external pred findall_solutions i:prop, o:list prop. diff --git a/src/builtin.ml b/src/builtin.ml index 98d891935..a493b1867 100644 --- a/src/builtin.ml +++ b/src/builtin.ml @@ -1037,9 +1037,7 @@ X == Y :- same_term X Y. !: !fresh_int)), DocAbove); - LPDoc {|[findall_solution P L] finds all the solved instances of P and puts them in L -in the order in which they are found. Instances can contain eigenvariables -and unification variables.|}; + LPDoc {|[findall_solution P L] finds all the solved instances of P and puts them in L in the order in which they are found. Instances can contain eigenvariables and unification variables. P may or may not be instantiated. Instances should be found in L.|}; LPCode "external pred findall_solutions i:prop, o:list prop."; MLData safe; diff --git a/tests/sources/trace_w.elab.json b/tests/sources/trace_w.elab.json index f3007465b..c74cb5987 100644 --- a/tests/sources/trace_w.elab.json +++ b/tests/sources/trace_w.elab.json @@ -2429,9 +2429,9 @@ "File", { "filename": "builtin.elpi", - "line": 505, + "line": 504, "column": 0, - "character": 12438 + "character": 12502 } ] } @@ -2466,9 +2466,9 @@ "File", { "filename": "builtin.elpi", - "line": 505, + "line": 504, "column": 0, - "character": 12438 + "character": 12502 } ] } @@ -2629,9 +2629,9 @@ "File", { "filename": "builtin.elpi", - "line": 505, + "line": 504, "column": 0, - "character": 12438 + "character": 12502 } ] } @@ -2761,9 +2761,9 @@ "File", { "filename": "builtin.elpi", - "line": 505, + "line": 504, "column": 0, - "character": 12438 + "character": 12502 } ] } @@ -2873,9 +2873,9 @@ "File", { "filename": "builtin.elpi", - "line": 506, + "line": 505, "column": 0, - "character": 12459 + "character": 12523 } ] } @@ -2906,9 +2906,9 @@ "File", { "filename": "builtin.elpi", - "line": 506, + "line": 505, "column": 0, - "character": 12459 + "character": 12523 } ] } @@ -3035,9 +3035,9 @@ "File", { "filename": "builtin.elpi", - "line": 506, + "line": 505, "column": 0, - "character": 12459 + "character": 12523 } ] } @@ -3273,9 +3273,9 @@ "File", { "filename": "builtin.elpi", - "line": 505, + "line": 504, "column": 0, - "character": 12438 + "character": 12502 } ] } @@ -3315,9 +3315,9 @@ "File", { "filename": "builtin.elpi", - "line": 505, + "line": 504, "column": 0, - "character": 12438 + "character": 12502 } ] } @@ -3478,9 +3478,9 @@ "File", { "filename": "builtin.elpi", - "line": 505, + "line": 504, "column": 0, - "character": 12438 + "character": 12502 } ] } @@ -3655,9 +3655,9 @@ "File", { "filename": "builtin.elpi", - "line": 505, + "line": 504, "column": 0, - "character": 12438 + "character": 12502 } ] } @@ -3796,9 +3796,9 @@ "File", { "filename": "builtin.elpi", - "line": 506, + "line": 505, "column": 0, - "character": 12459 + "character": 12523 } ] } @@ -3846,9 +3846,9 @@ "File", { "filename": "builtin.elpi", - "line": 505, + "line": 504, "column": 0, - "character": 12438 + "character": 12502 } ] } @@ -4789,9 +4789,9 @@ "File", { "filename": "builtin.elpi", - "line": 505, + "line": 504, "column": 0, - "character": 12438 + "character": 12502 } ] } @@ -4826,9 +4826,9 @@ "File", { "filename": "builtin.elpi", - "line": 505, + "line": 504, "column": 0, - "character": 12438 + "character": 12502 } ] } @@ -4951,9 +4951,9 @@ "File", { "filename": "builtin.elpi", - "line": 505, + "line": 504, "column": 0, - "character": 12438 + "character": 12502 } ] } @@ -5045,9 +5045,9 @@ "File", { "filename": "builtin.elpi", - "line": 505, + "line": 504, "column": 0, - "character": 12438 + "character": 12502 } ] } @@ -5119,9 +5119,9 @@ "File", { "filename": "builtin.elpi", - "line": 506, + "line": 505, "column": 0, - "character": 12459 + "character": 12523 } ] } @@ -5145,9 +5145,9 @@ "File", { "filename": "builtin.elpi", - "line": 506, + "line": 505, "column": 0, - "character": 12459 + "character": 12523 } ] } @@ -5234,9 +5234,9 @@ "File", { "filename": "builtin.elpi", - "line": 506, + "line": 505, "column": 0, - "character": 12459 + "character": 12523 } ] } diff --git a/tests/sources/trace_w.json b/tests/sources/trace_w.json index 5a2478649..d238aa4c6 100644 --- a/tests/sources/trace_w.json +++ b/tests/sources/trace_w.json @@ -189,8 +189,8 @@ {"step" : 4,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} {"step" : 5,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["if","if (mem [] (uvar frozen--519 [])) (X7 = []) (X7 = [uvar frozen--519 []])"]} {"step" : 5,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} -{"step" : 5,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 505, column 0, character 12438:","File \"builtin.elpi\", line 506, column 0, character 12459:"]} -{"step" : 5,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 505, column 0, character 12438:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 504, column 0, character 12502:","File \"builtin.elpi\", line 505, column 0, character 12523:"]} +{"step" : 5,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 504, column 0, character 12502:","(if A0 A1 _) :- A0, (!), A1."]} {"step" : 5,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := mem [] (uvar frozen--519 [])"]} {"step" : 5,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A1 := X7 = []"]} {"step" : 5,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["35"]} @@ -215,8 +215,8 @@ {"step" : 7,"kind" : ["Info"],"goal_id" : 38,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["fail"]} {"step" : 8,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["if","if (mem [] (uvar frozen--519 [])) (X7 = []) (X7 = [uvar frozen--519 []])"]} {"step" : 8,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} -{"step" : 8,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 506, column 0, character 12459:"]} -{"step" : 8,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 506, column 0, character 12459:","(if _ _ A0) :- A0."]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 505, column 0, character 12523:"]} +{"step" : 8,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 505, column 0, character 12523:","(if _ _ A0) :- A0."]} {"step" : 8,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := X7 = [uvar frozen--519 []]"]} {"step" : 8,"kind" : ["Info"],"goal_id" : 34,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["39"]} {"step" : 8,"kind" : ["Info"],"goal_id" : 39,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["X7 = [uvar frozen--519 []]"]} @@ -238,8 +238,8 @@ {"step" : 10,"kind" : ["Info"],"goal_id" : 40,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} {"step" : 11,"kind" : ["Info"],"goal_id" : 40,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["if","if (mem [uvar frozen--519 []] (uvar frozen--519 [])) \n (X4 = [uvar frozen--519 []]) \n (X4 = [uvar frozen--519 [], uvar frozen--519 []])"]} {"step" : 11,"kind" : ["Info"],"goal_id" : 40,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} -{"step" : 11,"kind" : ["Info"],"goal_id" : 40,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 505, column 0, character 12438:","File \"builtin.elpi\", line 506, column 0, character 12459:"]} -{"step" : 11,"kind" : ["Info"],"goal_id" : 40,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 505, column 0, character 12438:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 40,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 504, column 0, character 12502:","File \"builtin.elpi\", line 505, column 0, character 12523:"]} +{"step" : 11,"kind" : ["Info"],"goal_id" : 40,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 504, column 0, character 12502:","(if A0 A1 _) :- A0, (!), A1."]} {"step" : 11,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := mem [uvar frozen--519 []] (uvar frozen--519 [])"]} {"step" : 11,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A1 := X4 = [uvar frozen--519 []]"]} {"step" : 11,"kind" : ["Info"],"goal_id" : 40,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["41"]} @@ -273,7 +273,7 @@ {"step" : 14,"kind" : ["Info"],"goal_id" : 45,"runtime_id" : 1,"name" : "user:rule:cut","payload" : ["success"]} {"step" : 15,"kind" : ["Info"],"goal_id" : 42,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["!","!"]} {"step" : 15,"kind" : ["Info"],"goal_id" : 42,"runtime_id" : 1,"name" : "user:rule","payload" : ["cut"]} -{"step" : 15,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:rule:cut:branch","payload" : ["40","File \"builtin.elpi\", line 506, column 0, character 12459:","(if _ _ A0) :- A0."]} +{"step" : 15,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:rule:cut:branch","payload" : ["40","File \"builtin.elpi\", line 505, column 0, character 12523:","(if _ _ A0) :- A0."]} {"step" : 15,"kind" : ["Info"],"goal_id" : 42,"runtime_id" : 1,"name" : "user:rule:cut","payload" : ["success"]} {"step" : 16,"kind" : ["Info"],"goal_id" : 43,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["=","X4 = [uvar frozen--519 []]"]} {"step" : 16,"kind" : ["Info"],"goal_id" : 43,"runtime_id" : 1,"name" : "user:rule","payload" : ["eq"]} @@ -358,8 +358,8 @@ {"step" : 25,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["success"]} {"step" : 26,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["if","if (mem [] (uvar frozen--519 [])) (X12 = eqt) (X12 = any)"]} {"step" : 26,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} -{"step" : 26,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 505, column 0, character 12438:","File \"builtin.elpi\", line 506, column 0, character 12459:"]} -{"step" : 26,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 505, column 0, character 12438:","(if A0 A1 _) :- A0, (!), A1."]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 504, column 0, character 12502:","File \"builtin.elpi\", line 505, column 0, character 12523:"]} +{"step" : 26,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 504, column 0, character 12502:","(if A0 A1 _) :- A0, (!), A1."]} {"step" : 26,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := mem [] (uvar frozen--519 [])"]} {"step" : 26,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A1 := X12 = eqt"]} {"step" : 26,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["55"]} @@ -384,8 +384,8 @@ {"step" : 28,"kind" : ["Info"],"goal_id" : 58,"runtime_id" : 1,"name" : "user:rule:backchain","payload" : ["fail"]} {"step" : 29,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:curgoal","payload" : ["if","if (mem [] (uvar frozen--519 [])) (X12 = eqt) (X12 = any)"]} {"step" : 29,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:rule","payload" : ["backchain"]} -{"step" : 29,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 506, column 0, character 12459:"]} -{"step" : 29,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 506, column 0, character 12459:","(if _ _ A0) :- A0."]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:rule:backchain:candidates","payload" : ["File \"builtin.elpi\", line 505, column 0, character 12523:"]} +{"step" : 29,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:rule:backchain:try","payload" : ["File \"builtin.elpi\", line 505, column 0, character 12523:","(if _ _ A0) :- A0."]} {"step" : 29,"kind" : ["Info"],"goal_id" : 0,"runtime_id" : 1,"name" : "user:assign","payload" : ["A0 := X12 = any"]} {"step" : 29,"kind" : ["Info"],"goal_id" : 53,"runtime_id" : 1,"name" : "user:subgoal","payload" : ["59"]} {"step" : 29,"kind" : ["Info"],"goal_id" : 59,"runtime_id" : 1,"name" : "user:newgoal","payload" : ["X12 = any"]}