eyeprolog 1.6.8 → 1.6.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -96,6 +96,7 @@ npm test
96
96
  The npm command list is deliberately small:
97
97
 
98
98
  - `npm test` (or `npm run test`): run the release gate, including live upstream conformity checks (WG17 syntax among them).
99
+ - `npm run neumerkel`: re-fetch the upstream Neumerkel conformity sources and fail if the tracked report no longer matches them. The release gate reports that drift as a warning; this command makes it an error, so it answers "are we still current?" on its own.
99
100
 
100
101
  Use `npm test -- --offline` for a network-free local pass (this also skips the live-discovered WG17 syntax check, since it has no offline snapshot). Focused checks remain available directly, for example `node test/run-regression.mjs docs`; see [test runners](test/README.md). The automatic version hooks rebuild generated library and book files, run the release gate, refresh and stage conformance reports, and push the release. Detailed upstream report maintenance is documented in the [conformance guide](test/conformance/README.md).
101
102
 
@@ -0,0 +1,3 @@
1
+ best_release_plan(plan(api(1), cache(0), audit(0), search(1)), 13).
2
+
3
+ step(best_release_plan(plan(api(1), cache(0), audit(0), search(1)), 13), unproven, [], []).
@@ -0,0 +1,107 @@
1
+ factorial(6, 720).
2
+
3
+ clause(1, factorial(0, 1), true).
4
+ clause(2,
5
+ factorial(var('N'), var('F')),
6
+ ((integer(var('N')) -> var('N') >= 0 + 1 ; var('Var#1') = 1, clpz:clpz_geq(var('N'), var('Var#1'))),
7
+ (integer(var('Previous')) -> (integer(var('N')) -> var('Previous') =:= var('N') - 1 ; var('T#2') is var('Previous'), clpz:clpz_equal(var('T#2'), var('N') - 1)) ; integer(var('N')) -> (true, var(var('Previous')) -> var('Previous') is var('N') - 1 ; var('T#2') is var('N') - 1, clpz:clpz_equal(var('Previous'), var('T#2'))) ; clpz:clpz_equal(var('Previous'), var('N') - 1)),
8
+ factorial(var('Previous'), var('PreviousFactorial')),
9
+ (integer(var('F')) -> (integer(var('N')), integer(var('PreviousFactorial')) -> var('F') =:= var('N') * var('PreviousFactorial') ; var('T#3') is var('F'), clpz:clpz_equal(var('T#3'), var('N') * var('PreviousFactorial'))) ; integer(var('N')), integer(var('PreviousFactorial')) -> (true, var(var('F')) -> var('F') is var('N') * var('PreviousFactorial') ; var('T#3') is var('N') * var('PreviousFactorial'), clpz:clpz_equal(var('F'), var('T#3'))) ; clpz:clpz_equal(var('F'), var('N') * var('PreviousFactorial'))))).
10
+
11
+ step(factorial(6, 720),
12
+ rule(2),
13
+ ['N' = 6, 'F' = 720, 'Previous' = 5, 'PreviousFactorial' = 120],
14
+ [(integer(6) -> 6 >= 0 + 1 ; Var_1 = 1, clpz:clpz_geq(6, Var_1)),
15
+ (integer(5) -> (integer(6) -> 5 =:= 6 - 1 ; T_2 is 5, clpz:clpz_equal(T_2, 6 - 1)) ; integer(6) -> (true, var(5) -> 5 is 6 - 1 ; T_2 is 6 - 1, clpz:clpz_equal(5, T_2)) ; clpz:clpz_equal(5, 6 - 1)),
16
+ factorial(5, 120),
17
+ (integer(720) -> (integer(6), integer(120) -> 720 =:= 6 * 120 ; T_3 is 720, clpz:clpz_equal(T_3, 6 * 120)) ; integer(6), integer(120) -> (true, var(720) -> 720 is 6 * 120 ; T_3 is 6 * 120, clpz:clpz_equal(720, T_3)) ; clpz:clpz_equal(720, 6 * 120))]).
18
+ step((integer(6) -> 6 >= 0 + 1 ; Var_1 = 1, clpz:clpz_geq(6, Var_1)), builtin, [], []).
19
+ step((integer(5) -> (integer(6) -> 5 =:= 6 - 1 ; T_2 is 5, clpz:clpz_equal(T_2, 6 - 1)) ; integer(6) -> (true, var(5) -> 5 is 6 - 1 ; T_2 is 6 - 1, clpz:clpz_equal(5, T_2)) ; clpz:clpz_equal(5, 6 - 1)),
20
+ builtin,
21
+ [],
22
+ []).
23
+ step(factorial(5, 120),
24
+ rule(2),
25
+ ['N' = 5, 'F' = 120, 'Previous' = 4, 'PreviousFactorial' = 24],
26
+ [(integer(5) -> 5 >= 0 + 1 ; Var_1 = 1, clpz:clpz_geq(5, Var_1)),
27
+ (integer(4) -> (integer(5) -> 4 =:= 5 - 1 ; T_2 is 4, clpz:clpz_equal(T_2, 5 - 1)) ; integer(5) -> (true, var(4) -> 4 is 5 - 1 ; T_2 is 5 - 1, clpz:clpz_equal(4, T_2)) ; clpz:clpz_equal(4, 5 - 1)),
28
+ factorial(4, 24),
29
+ (integer(120) -> (integer(5), integer(24) -> 120 =:= 5 * 24 ; T_3 is 120, clpz:clpz_equal(T_3, 5 * 24)) ; integer(5), integer(24) -> (true, var(120) -> 120 is 5 * 24 ; T_3 is 5 * 24, clpz:clpz_equal(120, T_3)) ; clpz:clpz_equal(120, 5 * 24))]).
30
+ step((integer(5) -> 5 >= 0 + 1 ; Var_1 = 1, clpz:clpz_geq(5, Var_1)), builtin, [], []).
31
+ step((integer(4) -> (integer(5) -> 4 =:= 5 - 1 ; T_2 is 4, clpz:clpz_equal(T_2, 5 - 1)) ; integer(5) -> (true, var(4) -> 4 is 5 - 1 ; T_2 is 5 - 1, clpz:clpz_equal(4, T_2)) ; clpz:clpz_equal(4, 5 - 1)),
32
+ builtin,
33
+ [],
34
+ []).
35
+ step(factorial(4, 24),
36
+ rule(2),
37
+ ['N' = 4, 'F' = 24, 'Previous' = 3, 'PreviousFactorial' = 6],
38
+ [(integer(4) -> 4 >= 0 + 1 ; Var_1 = 1, clpz:clpz_geq(4, Var_1)),
39
+ (integer(3) -> (integer(4) -> 3 =:= 4 - 1 ; T_2 is 3, clpz:clpz_equal(T_2, 4 - 1)) ; integer(4) -> (true, var(3) -> 3 is 4 - 1 ; T_2 is 4 - 1, clpz:clpz_equal(3, T_2)) ; clpz:clpz_equal(3, 4 - 1)),
40
+ factorial(3, 6),
41
+ (integer(24) -> (integer(4), integer(6) -> 24 =:= 4 * 6 ; T_3 is 24, clpz:clpz_equal(T_3, 4 * 6)) ; integer(4), integer(6) -> (true, var(24) -> 24 is 4 * 6 ; T_3 is 4 * 6, clpz:clpz_equal(24, T_3)) ; clpz:clpz_equal(24, 4 * 6))]).
42
+ step((integer(4) -> 4 >= 0 + 1 ; Var_1 = 1, clpz:clpz_geq(4, Var_1)), builtin, [], []).
43
+ step((integer(3) -> (integer(4) -> 3 =:= 4 - 1 ; T_2 is 3, clpz:clpz_equal(T_2, 4 - 1)) ; integer(4) -> (true, var(3) -> 3 is 4 - 1 ; T_2 is 4 - 1, clpz:clpz_equal(3, T_2)) ; clpz:clpz_equal(3, 4 - 1)),
44
+ builtin,
45
+ [],
46
+ []).
47
+ step(factorial(3, 6),
48
+ rule(2),
49
+ ['N' = 3, 'F' = 6, 'Previous' = 2, 'PreviousFactorial' = 2],
50
+ [(integer(3) -> 3 >= 0 + 1 ; Var_1 = 1, clpz:clpz_geq(3, Var_1)),
51
+ (integer(2) -> (integer(3) -> 2 =:= 3 - 1 ; T_2 is 2, clpz:clpz_equal(T_2, 3 - 1)) ; integer(3) -> (true, var(2) -> 2 is 3 - 1 ; T_2 is 3 - 1, clpz:clpz_equal(2, T_2)) ; clpz:clpz_equal(2, 3 - 1)),
52
+ factorial(2, 2),
53
+ (integer(6) -> (integer(3), integer(2) -> 6 =:= 3 * 2 ; T_3 is 6, clpz:clpz_equal(T_3, 3 * 2)) ; integer(3), integer(2) -> (true, var(6) -> 6 is 3 * 2 ; T_3 is 3 * 2, clpz:clpz_equal(6, T_3)) ; clpz:clpz_equal(6, 3 * 2))]).
54
+ step((integer(3) -> 3 >= 0 + 1 ; Var_1 = 1, clpz:clpz_geq(3, Var_1)), builtin, [], []).
55
+ step((integer(2) -> (integer(3) -> 2 =:= 3 - 1 ; T_2 is 2, clpz:clpz_equal(T_2, 3 - 1)) ; integer(3) -> (true, var(2) -> 2 is 3 - 1 ; T_2 is 3 - 1, clpz:clpz_equal(2, T_2)) ; clpz:clpz_equal(2, 3 - 1)),
56
+ builtin,
57
+ [],
58
+ []).
59
+ step(factorial(2, 2),
60
+ rule(2),
61
+ ['N' = 2, 'F' = 2, 'Previous' = 1, 'PreviousFactorial' = 1],
62
+ [(integer(2) -> 2 >= 0 + 1 ; Var_1 = 1, clpz:clpz_geq(2, Var_1)),
63
+ (integer(1) -> (integer(2) -> 1 =:= 2 - 1 ; T_2 is 1, clpz:clpz_equal(T_2, 2 - 1)) ; integer(2) -> (true, var(1) -> 1 is 2 - 1 ; T_2 is 2 - 1, clpz:clpz_equal(1, T_2)) ; clpz:clpz_equal(1, 2 - 1)),
64
+ factorial(1, 1),
65
+ (integer(2) -> (integer(2), integer(1) -> 2 =:= 2 * 1 ; T_3 is 2, clpz:clpz_equal(T_3, 2 * 1)) ; integer(2), integer(1) -> (true, var(2) -> 2 is 2 * 1 ; T_3 is 2 * 1, clpz:clpz_equal(2, T_3)) ; clpz:clpz_equal(2, 2 * 1))]).
66
+ step((integer(2) -> 2 >= 0 + 1 ; Var_1 = 1, clpz:clpz_geq(2, Var_1)), builtin, [], []).
67
+ step((integer(1) -> (integer(2) -> 1 =:= 2 - 1 ; T_2 is 1, clpz:clpz_equal(T_2, 2 - 1)) ; integer(2) -> (true, var(1) -> 1 is 2 - 1 ; T_2 is 2 - 1, clpz:clpz_equal(1, T_2)) ; clpz:clpz_equal(1, 2 - 1)),
68
+ builtin,
69
+ [],
70
+ []).
71
+ step(factorial(1, 1),
72
+ rule(2),
73
+ ['N' = 1, 'F' = 1, 'Previous' = 0, 'PreviousFactorial' = 1],
74
+ [(integer(1) -> 1 >= 0 + 1 ; Var_1 = 1, clpz:clpz_geq(1, Var_1)),
75
+ (integer(0) -> (integer(1) -> 0 =:= 1 - 1 ; T_2 is 0, clpz:clpz_equal(T_2, 1 - 1)) ; integer(1) -> (true, var(0) -> 0 is 1 - 1 ; T_2 is 1 - 1, clpz:clpz_equal(0, T_2)) ; clpz:clpz_equal(0, 1 - 1)),
76
+ factorial(0, 1),
77
+ (integer(1) -> (integer(1), integer(1) -> 1 =:= 1 * 1 ; T_3 is 1, clpz:clpz_equal(T_3, 1 * 1)) ; integer(1), integer(1) -> (true, var(1) -> 1 is 1 * 1 ; T_3 is 1 * 1, clpz:clpz_equal(1, T_3)) ; clpz:clpz_equal(1, 1 * 1))]).
78
+ step((integer(1) -> 1 >= 0 + 1 ; Var_1 = 1, clpz:clpz_geq(1, Var_1)), builtin, [], []).
79
+ step((integer(0) -> (integer(1) -> 0 =:= 1 - 1 ; T_2 is 0, clpz:clpz_equal(T_2, 1 - 1)) ; integer(1) -> (true, var(0) -> 0 is 1 - 1 ; T_2 is 1 - 1, clpz:clpz_equal(0, T_2)) ; clpz:clpz_equal(0, 1 - 1)),
80
+ builtin,
81
+ [],
82
+ []).
83
+ step(factorial(0, 1), fact(1), [], []).
84
+ step((integer(1) -> (integer(1), integer(1) -> 1 =:= 1 * 1 ; T_3 is 1, clpz:clpz_equal(T_3, 1 * 1)) ; integer(1), integer(1) -> (true, var(1) -> 1 is 1 * 1 ; T_3 is 1 * 1, clpz:clpz_equal(1, T_3)) ; clpz:clpz_equal(1, 1 * 1)),
85
+ builtin,
86
+ [],
87
+ []).
88
+ step((integer(2) -> (integer(2), integer(1) -> 2 =:= 2 * 1 ; T_3 is 2, clpz:clpz_equal(T_3, 2 * 1)) ; integer(2), integer(1) -> (true, var(2) -> 2 is 2 * 1 ; T_3 is 2 * 1, clpz:clpz_equal(2, T_3)) ; clpz:clpz_equal(2, 2 * 1)),
89
+ builtin,
90
+ [],
91
+ []).
92
+ step((integer(6) -> (integer(3), integer(2) -> 6 =:= 3 * 2 ; T_3 is 6, clpz:clpz_equal(T_3, 3 * 2)) ; integer(3), integer(2) -> (true, var(6) -> 6 is 3 * 2 ; T_3 is 3 * 2, clpz:clpz_equal(6, T_3)) ; clpz:clpz_equal(6, 3 * 2)),
93
+ builtin,
94
+ [],
95
+ []).
96
+ step((integer(24) -> (integer(4), integer(6) -> 24 =:= 4 * 6 ; T_3 is 24, clpz:clpz_equal(T_3, 4 * 6)) ; integer(4), integer(6) -> (true, var(24) -> 24 is 4 * 6 ; T_3 is 4 * 6, clpz:clpz_equal(24, T_3)) ; clpz:clpz_equal(24, 4 * 6)),
97
+ builtin,
98
+ [],
99
+ []).
100
+ step((integer(120) -> (integer(5), integer(24) -> 120 =:= 5 * 24 ; T_3 is 120, clpz:clpz_equal(T_3, 5 * 24)) ; integer(5), integer(24) -> (true, var(120) -> 120 is 5 * 24 ; T_3 is 5 * 24, clpz:clpz_equal(120, T_3)) ; clpz:clpz_equal(120, 5 * 24)),
101
+ builtin,
102
+ [],
103
+ []).
104
+ step((integer(720) -> (integer(6), integer(120) -> 720 =:= 6 * 120 ; T_3 is 720, clpz:clpz_equal(T_3, 6 * 120)) ; integer(6), integer(120) -> (true, var(720) -> 720 is 6 * 120 ; T_3 is 6 * 120, clpz:clpz_equal(720, T_3)) ; clpz:clpz_equal(720, 6 * 120)),
105
+ builtin,
106
+ [],
107
+ []).
@@ -0,0 +1,139 @@
1
+ advanced_clpz(table, compatible(4, 0, 2)).
2
+ advanced_clpz(table, compatible(4, 3, 2)).
3
+ advanced_clpz(schedule, starts([0, 1, 3])).
4
+ advanced_clpz(cardinality, assignment([1, 1, 3], 13, >)).
5
+ advanced_clpz(cardinality, assignment([1, 3, 1], 12, >)).
6
+ advanced_clpz(cardinality, assignment([3, 1, 1], 6, <)).
7
+ advanced_clpz(circuit, successors([2, 3, 4, 1])).
8
+
9
+ clause(1,
10
+ advanced_clpz(table, compatible(4, var('Y'), var('Distinct'))),
11
+ (tuples_in([[var('X'), var('Y')]], [[1, 2], [1, 5], [4, 0], [4, 3]]),
12
+ var('X') = 4,
13
+ nvalue(var('Distinct'), [var('X'), var('Y')]),
14
+ labeling([], [var('Y')]))).
15
+ clause(2,
16
+ advanced_clpz(schedule, starts([var('A'), var('B'), var('C')])),
17
+ ([var('A'), var('B'), var('C')] ins 0..3,
18
+ lex_chain([[var('A'), var('B')], [var('B'), var('C')]]),
19
+ serialized([var('A'), var('B'), var('C')], [1, 2, 1]),
20
+ (integer(var('B')) -> (integer(var('A')) -> var('B') >= var('A') + 1 ; var('T#1') is var('B'), clpz:clpz_geq(var('T#1'), var('A') + 1)) ; integer(var('A')) -> var('T#1') is var('A') + 1, clpz:clpz_geq(var('B'), var('T#1')) ; clpz:clpz_geq(var('B'), var('A') + 1)),
21
+ (integer(var('C')) -> (integer(var('B')) -> var('C') >= var('B') + 1 ; var('T#2') is var('C'), clpz:clpz_geq(var('T#2'), var('B') + 1)) ; integer(var('B')) -> var('T#2') is var('B') + 1, clpz:clpz_geq(var('C'), var('T#2')) ; clpz:clpz_geq(var('C'), var('B') + 1)),
22
+ labeling([ff], [var('A'), var('B'), var('C')]))).
23
+ clause(3,
24
+ advanced_clpz(cardinality, assignment(var('Values'), var('Cost'), var('Order'))),
25
+ (var('Values') = [anonymous(1), anonymous(2), anonymous(3)],
26
+ global_cardinality(var('Values'), [1 - 2, 3 - 1], [cost(var('Cost'), [[5, 1], [2, 4], [3, 6]])]),
27
+ labeling([ff], var('Values')),
28
+ zcompare(var('Order'), var('Cost'), 10))).
29
+ clause(4,
30
+ advanced_clpz(circuit, successors(var('Values'))),
31
+ (var('Values') = [var('A'), var('B'), anonymous(1), anonymous(2)],
32
+ circuit(var('Values')),
33
+ (integer(var('A')) -> var('A') =:= 2 ; true, var(var('A')) -> var('A') = 2 ; var('Var#3') = 2, clpz:clpz_equal(var('A'), var('Var#3'))),
34
+ (integer(var('B')) -> var('B') =:= 3 ; true, var(var('B')) -> var('B') = 3 ; var('Var#4') = 3, clpz:clpz_equal(var('B'), var('Var#4'))),
35
+ labeling([ff], var('Values')))).
36
+
37
+ step(advanced_clpz(table, compatible(4, 0, 2)),
38
+ rule(1),
39
+ ['Y' = 0, 'Distinct' = 2, 'X' = 4],
40
+ [tuples_in([[4, 0]], [[1, 2], [1, 5], [4, 0], [4, 3]]),
41
+ 4 = 4,
42
+ nvalue(2, [4, 0]),
43
+ labeling([], [0])]).
44
+ step(tuples_in([[4, 0]], [[1, 2], [1, 5], [4, 0], [4, 3]]), builtin, [], []).
45
+ step(4 = 4, builtin, [], []).
46
+ step(nvalue(2, [4, 0]), builtin, [], []).
47
+ step(labeling([], [0]), builtin, [], []).
48
+ step(advanced_clpz(table, compatible(4, 3, 2)),
49
+ rule(1),
50
+ ['Y' = 3, 'Distinct' = 2, 'X' = 4],
51
+ [tuples_in([[4, 3]], [[1, 2], [1, 5], [4, 0], [4, 3]]),
52
+ 4 = 4,
53
+ nvalue(2, [4, 3]),
54
+ labeling([], [3])]).
55
+ step(tuples_in([[4, 3]], [[1, 2], [1, 5], [4, 0], [4, 3]]), builtin, [], []).
56
+ step(nvalue(2, [4, 3]), builtin, [], []).
57
+ step(labeling([], [3]), builtin, [], []).
58
+ step(advanced_clpz(schedule, starts([0, 1, 3])),
59
+ rule(2),
60
+ ['A' = 0, 'B' = 1, 'C' = 3],
61
+ [[0, 1, 3] ins 0..3,
62
+ lex_chain([[0, 1], [1, 3]]),
63
+ serialized([0, 1, 3], [1, 2, 1]),
64
+ (integer(1) -> (integer(0) -> 1 >= 0 + 1 ; T_1 is 1, clpz:clpz_geq(T_1, 0 + 1)) ; integer(0) -> T_1 is 0 + 1, clpz:clpz_geq(1, T_1) ; clpz:clpz_geq(1, 0 + 1)),
65
+ (integer(3) -> (integer(1) -> 3 >= 1 + 1 ; T_2 is 3, clpz:clpz_geq(T_2, 1 + 1)) ; integer(1) -> T_2 is 1 + 1, clpz:clpz_geq(3, T_2) ; clpz:clpz_geq(3, 1 + 1)),
66
+ labeling([ff], [0, 1, 3])]).
67
+ step([0, 1, 3] ins 0..3, builtin, [], []).
68
+ step(lex_chain([[0, 1], [1, 3]]), builtin, [], []).
69
+ step(serialized([0, 1, 3], [1, 2, 1]), builtin, [], []).
70
+ step((integer(1) -> (integer(0) -> 1 >= 0 + 1 ; T_1 is 1, clpz:clpz_geq(T_1, 0 + 1)) ; integer(0) -> T_1 is 0 + 1, clpz:clpz_geq(1, T_1) ; clpz:clpz_geq(1, 0 + 1)),
71
+ builtin,
72
+ [],
73
+ []).
74
+ step((integer(3) -> (integer(1) -> 3 >= 1 + 1 ; T_2 is 3, clpz:clpz_geq(T_2, 1 + 1)) ; integer(1) -> T_2 is 1 + 1, clpz:clpz_geq(3, T_2) ; clpz:clpz_geq(3, 1 + 1)),
75
+ builtin,
76
+ [],
77
+ []).
78
+ step(labeling([ff], [0, 1, 3]), builtin, [], []).
79
+ step(advanced_clpz(cardinality, assignment([1, 1, 3], 13, >)),
80
+ rule(3),
81
+ ['Values' = [1, 1, 3], 'Cost' = 13, 'Order' = (>)],
82
+ [[1, 1, 3] = [1, 1, 3],
83
+ global_cardinality([1, 1, 3], [1 - 2, 3 - 1], [cost(13, [[5, 1], [2, 4], [3, 6]])]),
84
+ labeling([ff], [1, 1, 3]),
85
+ zcompare(>, 13, 10)]).
86
+ step([1, 1, 3] = [1, 1, 3], builtin, [], []).
87
+ step(global_cardinality([1, 1, 3], [1 - 2, 3 - 1], [cost(13, [[5, 1], [2, 4], [3, 6]])]),
88
+ builtin,
89
+ [],
90
+ []).
91
+ step(labeling([ff], [1, 1, 3]), builtin, [], []).
92
+ step(zcompare(>, 13, 10), builtin, [], []).
93
+ step(advanced_clpz(cardinality, assignment([1, 3, 1], 12, >)),
94
+ rule(3),
95
+ ['Values' = [1, 3, 1], 'Cost' = 12, 'Order' = (>)],
96
+ [[1, 3, 1] = [1, 3, 1],
97
+ global_cardinality([1, 3, 1], [1 - 2, 3 - 1], [cost(12, [[5, 1], [2, 4], [3, 6]])]),
98
+ labeling([ff], [1, 3, 1]),
99
+ zcompare(>, 12, 10)]).
100
+ step([1, 3, 1] = [1, 3, 1], builtin, [], []).
101
+ step(global_cardinality([1, 3, 1], [1 - 2, 3 - 1], [cost(12, [[5, 1], [2, 4], [3, 6]])]),
102
+ builtin,
103
+ [],
104
+ []).
105
+ step(labeling([ff], [1, 3, 1]), builtin, [], []).
106
+ step(zcompare(>, 12, 10), builtin, [], []).
107
+ step(advanced_clpz(cardinality, assignment([3, 1, 1], 6, <)),
108
+ rule(3),
109
+ ['Values' = [3, 1, 1], 'Cost' = 6, 'Order' = (<)],
110
+ [[3, 1, 1] = [3, 1, 1],
111
+ global_cardinality([3, 1, 1], [1 - 2, 3 - 1], [cost(6, [[5, 1], [2, 4], [3, 6]])]),
112
+ labeling([ff], [3, 1, 1]),
113
+ zcompare(<, 6, 10)]).
114
+ step([3, 1, 1] = [3, 1, 1], builtin, [], []).
115
+ step(global_cardinality([3, 1, 1], [1 - 2, 3 - 1], [cost(6, [[5, 1], [2, 4], [3, 6]])]),
116
+ builtin,
117
+ [],
118
+ []).
119
+ step(labeling([ff], [3, 1, 1]), builtin, [], []).
120
+ step(zcompare(<, 6, 10), builtin, [], []).
121
+ step(advanced_clpz(circuit, successors([2, 3, 4, 1])),
122
+ rule(4),
123
+ ['Values' = [2, 3, 4, 1], 'A' = 2, 'B' = 3],
124
+ [[2, 3, 4, 1] = [2, 3, 4, 1],
125
+ circuit([2, 3, 4, 1]),
126
+ (integer(2) -> 2 =:= 2 ; true, var(2) -> 2 = 2 ; Var_3 = 2, clpz:clpz_equal(2, Var_3)),
127
+ (integer(3) -> 3 =:= 3 ; true, var(3) -> 3 = 3 ; Var_4 = 3, clpz:clpz_equal(3, Var_4)),
128
+ labeling([ff], [2, 3, 4, 1])]).
129
+ step([2, 3, 4, 1] = [2, 3, 4, 1], builtin, [], []).
130
+ step(circuit([2, 3, 4, 1]), builtin, [], []).
131
+ step((integer(2) -> 2 =:= 2 ; true, var(2) -> 2 = 2 ; Var_3 = 2, clpz:clpz_equal(2, Var_3)),
132
+ builtin,
133
+ [],
134
+ []).
135
+ step((integer(3) -> 3 =:= 3 ; true, var(3) -> 3 = 3 ; Var_4 = 3, clpz:clpz_equal(3, Var_4)),
136
+ builtin,
137
+ [],
138
+ []).
139
+ step(labeling([ff], [2, 3, 4, 1]), builtin, [], []).