summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimotej Lazar <timotej.lazar@fri.uni-lj.si>2017-02-27 18:35:01 +0100
committerTimotej Lazar <timotej.lazar@fri.uni-lj.si>2017-02-27 18:35:01 +0100
commit92c49ac708e04e545da6e7aafe91cac8f223f475 (patch)
treefe56e0e2e5e40e863cb993d85cd0e09d39e545de
parent320f6db34b5da13e259c3a55db9996a456bf8839 (diff)
Prolog: add bugs files for the first six groups
-rw-r--r--prolog/problems/family_relations/ancestor_2/bugs.json260
-rw-r--r--prolog/problems/family_relations/aunt_2/bugs.json252
-rw-r--r--prolog/problems/family_relations/brother_2/bugs.json115
-rw-r--r--prolog/problems/family_relations/cousin_2/bugs.json547
-rw-r--r--prolog/problems/family_relations/descendant_2/bugs.json251
-rw-r--r--prolog/problems/family_relations/grandparent_2/bugs.json134
-rw-r--r--prolog/problems/family_relations/mother_2/bugs.json84
-rw-r--r--prolog/problems/family_relations/sister_2/bugs.json340
-rw-r--r--prolog/problems/lists/conc_3/bugs.json623
-rw-r--r--prolog/problems/lists/del_3/bugs.json833
-rw-r--r--prolog/problems/lists/divide_3/bugs.json597
-rw-r--r--prolog/problems/lists/dup_2/bugs.json537
-rw-r--r--prolog/problems/lists/insert_3/bugs.json669
-rw-r--r--prolog/problems/lists/memb_2/bugs.json419
-rw-r--r--prolog/problems/lists/permute_2/bugs.json452
-rw-r--r--prolog/problems/lists_advanced/len_2/bugs.json371
-rw-r--r--prolog/problems/lists_advanced/max_2/bugs.json467
-rw-r--r--prolog/problems/lists_advanced/min_2/bugs.json704
-rw-r--r--prolog/problems/lists_advanced/palindrome_1/bugs.json403
-rw-r--r--prolog/problems/lists_advanced/rev_2/bugs.json610
-rw-r--r--prolog/problems/lists_advanced/shiftleft_2/bugs.json349
-rw-r--r--prolog/problems/lists_advanced/shiftright_2/bugs.json464
-rw-r--r--prolog/problems/lists_advanced/sublist_2/bugs.json527
-rw-r--r--prolog/problems/lists_advanced/sum_2/bugs.json403
-rw-r--r--prolog/problems/sets/count_3/bugs.json509
-rw-r--r--prolog/problems/sets/diff_3/bugs.json320
-rw-r--r--prolog/problems/sets/intersect_3/bugs.json496
-rw-r--r--prolog/problems/sets/is_superset_2/bugs.json311
-rw-r--r--prolog/problems/sets/powerset_2/bugs.json219
-rw-r--r--prolog/problems/sets/subset_2/bugs.json235
-rw-r--r--prolog/problems/sets/union_3/bugs.json715
-rw-r--r--prolog/problems/sorting/is_sorted_1/bugs.json287
-rw-r--r--prolog/problems/sorting/isort_2/bugs.json390
-rw-r--r--prolog/problems/sorting/pivoting_4/bugs.json614
-rw-r--r--prolog/problems/sorting/quick_sort_2/bugs.json594
-rw-r--r--prolog/problems/sorting/sins_3/bugs.json900
-rw-r--r--prolog/problems/sorting/slowest_sort_ever_2/bugs.json245
37 files changed, 16246 insertions, 0 deletions
diff --git a/prolog/problems/family_relations/ancestor_2/bugs.json b/prolog/problems/family_relations/ancestor_2/bugs.json
new file mode 100644
index 0000000..f56f5c7
--- /dev/null
+++ b/prolog/problems/family_relations/ancestor_2/bugs.json
@@ -0,0 +1,260 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"ancestor\") (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"ancestor\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"ancestor\") (args (args variable)))) (compound (functor \"ancestor\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"ancestor\") (args variable)))",
+ "(clause (head (compound (functor \"ancestor\") (args variable))) (compound (functor \"ancestor\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"ancestor\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"ancestor\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"ancestor\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"ancestor\") (args (args variable)))))",
+ "(clause (head (compound (functor \"ancestor\") (args variable))))",
+ "(clause (head (compound (functor \"ancestor\") (args (args variable)))) (compound (functor \"ancestor\") (args variable)))",
+ "(clause (head (compound (functor \"ancestor\") (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"ancestor\") (args variable)))",
+ "(clause (compound (functor \"ancestor\") (args (args variable))))",
+ "(clause (binop variable \"==\"))",
+ "(clause (head (compound (functor \"ancestor\") (args variable))) (compound (functor \"ancestor\") (args (args variable))))",
+ "(clause (head (compound (functor \"ancestor\") (args (args variable)))) (compound (functor \"grandparent\") (args (args variable))))",
+ "(clause (head (compound (functor \"ancestor\") (args (args variable)))) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"ancestor\") (args variable))) (compound (functor \"grandparent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (binop \"==\" variable))",
+ "(clause (head (compound (functor \"ancestor\") (args variable))) (binop variable \"\\==\"))",
+ "(clause (head (compound (functor \"ancestor\") (args (args variable)))) (binop \"\\=\" variable))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop variable \"==\"))",
+ "(clause (head (compound (functor \"ancestor\") (args (args variable)))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop variable \"\\=\"))",
+ "(clause (compound (functor \"ancestor\") (args (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"ancestor\") (args variable))) (binop \"==\" variable))",
+ "(clause (head (compound (functor \"ancestor\") (args variable))) (binop variable \"\\=\"))",
+ "(clause (head (compound (functor \"ancestor\") (args (args variable)))) (binop \"==\" variable))",
+ "(clause (head (compound (functor \"ancestor\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"ancestor\") (args (args variable))) (binop \"\\=\" variable))",
+ "(clause (head (compound (functor \"ancestor\") (args variable))) (compound (functor \"sister\") (args variable)))",
+ "(clause (compound (functor \"ancestor\") (args variable)) (compound (functor \"sister\") (args (args variable))))",
+ "(clause (compound (functor \"ancestor\") (args variable)) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop variable \"is\"))",
+ "(clause (compound (functor \"sister\") (args variable)))",
+ "(clause (compound (functor \"sister\") (args (args variable))))",
+ "(clause (compound (functor \"ancestor\") (args variable)) (compound (functor \"brother\") (args (args variable))))",
+ "(clause (head (compound (functor \"ancestor\") (args variable))) (compound (functor \"brother\") (args variable)))",
+ "(clause (compound (functor \"ancestor\") (args (args variable))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\=\" variable))",
+ "(clause (binop \"\\==\" variable) (compound (functor \"parent\") (args (args variable))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"ancestor\") (args variable)))"
+ ],
+ "distribution": [
+ 49,
+ 0
+ ],
+ "quality": 0.9629885382291584
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"ancestor\") (args (args variable))))"
+ ],
+ "distribution": [
+ 39,
+ 0
+ ],
+ "quality": 0.9541530529030873
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"ancestor\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"ancestor\") (args (args variable)))) (compound (functor \"ancestor\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"ancestor\") (args variable)))"
+ ],
+ "distribution": [
+ 6,
+ 170
+ ],
+ "quality": 0.9514788098199769
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"ancestor\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 34,
+ 0
+ ],
+ "quality": 0.9470223522722367
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 33,
+ 0
+ ],
+ "quality": 0.9453306576768873
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"ancestor\") (args (args variable)))) (compound (functor \"ancestor\") (args variable)))"
+ ],
+ "distribution": [
+ 33,
+ 0
+ ],
+ "quality": 0.9453306576768873
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"ancestor\") (args variable))))"
+ ],
+ "distribution": [
+ 32,
+ 0
+ ],
+ "quality": 0.9435307541149079
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"ancestor\") (args variable))) (compound (functor \"parent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 31,
+ 0
+ ],
+ "quality": 0.9416119920933244
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"ancestor\") (args variable))) (compound (functor \"ancestor\") (args (args variable))))"
+ ],
+ "distribution": [
+ 22,
+ 0
+ ],
+ "quality": 0.9157923393616936
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"ancestor\") (args (args variable)))) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 16,
+ 0
+ ],
+ "quality": 0.884763343524827
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.8655912886026441
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"ancestor\") (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"ancestor\") (args variable))) (compound (functor \"ancestor\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"ancestor\") (args (args variable))))"
+ ],
+ "distribution": [
+ 10,
+ 79
+ ],
+ "quality": 0.8502921553589384
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"ancestor\") (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"ancestor\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"ancestor\") (args (args variable)))) (compound (functor \"ancestor\") (args (args variable))))"
+ ],
+ "distribution": [
+ 52,
+ 172
+ ],
+ "quality": 0.7525612821040794
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.7358835810639816
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"ancestor\") (args variable))) (compound (functor \"sister\") (args variable)))"
+ ],
+ "distribution": [
+ 6,
+ 0
+ ],
+ "quality": 0.7012043532450386
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"ancestor\") (args (args variable)))) (binop variable \"is\"))"
+ ],
+ "distribution": [
+ 6,
+ 0
+ ],
+ "quality": 0.7012043532450386
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"ancestor\") (args (args variable))) (binop \"\\==\" variable))"
+ ],
+ "distribution": [
+ 5,
+ 0
+ ],
+ "quality": 0.6649699835988584
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"ancestor\") (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"ancestor\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"ancestor\") (args variable))) (compound (functor \"ancestor\") (args variable)))"
+ ],
+ "distribution": [
+ 43,
+ 84
+ ],
+ "quality": 0.6159501919553191
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/family_relations/aunt_2/bugs.json b/prolog/problems/family_relations/aunt_2/bugs.json
new file mode 100644
index 0000000..3dfc1db
--- /dev/null
+++ b/prolog/problems/family_relations/aunt_2/bugs.json
@@ -0,0 +1,252 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"aunt\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"aunt\") (args variable))) (compound (functor \"sister\") (args variable)))",
+ "(clause (head (compound (functor \"aunt\") (args variable))) (compound (functor \"female\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"sister\") (args (args variable))))",
+ "(clause (head (compound (functor \"aunt\") (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"sister\") (args (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"female\") (args variable)) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"female\") (args variable)) (compound (functor \"sister\") (args variable)))",
+ "(clause (head (compound (functor \"aunt\") (args variable))) (compound (functor \"sister\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"sister\") (args variable)))",
+ "(clause (head (compound (functor \"aunt\") (args variable))) (binop variable \"\\==\"))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop variable \"\\==\"))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"female\") (args variable)))",
+ "(clause (compound (functor \"female\") (args variable)) (binop variable \"\\==\"))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop \"\\==\" variable))",
+ "(clause (head (compound (functor \"aunt\") (args (args variable)))) (binop \"\\==\" variable))",
+ "(clause (head (compound (functor \"aunt\") (args (args variable)))) (compound (functor \"mother\") (args (args variable))))",
+ "(clause (head (compound (functor \"aunt\") (args (args variable)))))",
+ "(clause (compound (functor \"brother\") (args (args variable))))",
+ "(clause (compound (functor \"female\") (args variable)) (compound (functor \"sister\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\=\" variable))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop variable \"\\==\"))",
+ "(clause (compound (functor \"sister\") (args variable)))",
+ "(clause (head (compound (functor \"aunt\") (args (args variable)))) (compound (functor \"sister\") (args (args variable))))",
+ "(clause (compound (functor \"brother\") (args variable)))",
+ "(clause (head (compound (functor \"aunt\") (args variable))) (binop variable \"\\=\"))",
+ "(clause (head (compound (functor \"aunt\") (args variable))))",
+ "(clause (compound (functor \"mother\") (args variable)) (compound (functor \"sister\") (args (args variable))))",
+ "(clause (head (compound (functor \"aunt\") (args variable))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"aunt\") (args variable))) (compound (functor \"brother\") (args (args variable))))",
+ "(clause (head (compound (functor \"aunt\") (args (args variable)))) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"sister\") (args variable)))",
+ "(clause (compound (functor \"sister\") (args (args variable))) (binop variable \"\\==\"))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"sister\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop variable \"\\=\"))",
+ "(clause (compound (functor \"female\") (args variable)) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"female\") (args variable)))",
+ "(clause (compound (functor \"sister\") (args variable)) (compound (functor \"female\") (args variable)))",
+ "(clause (head (compound (functor \"aunt\") (args (args variable)))) (compound (functor \"sister\") (args variable)))",
+ "(clause (compound (functor \"sister\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"brother\") (args variable)))",
+ "(clause (head (compound (functor \"aunt\") (args (args variable)))) (binop \"\\=\" variable))",
+ "(clause (compound (functor \"sister\") (args variable)) (binop variable \"\\=\"))",
+ "(clause (head (compound (functor \"aunt\") (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"female\") (args variable)) (binop variable \"\\=\"))",
+ "(clause (head (compound (functor \"aunt\") (args variable))) (compound (functor \"brother\") (args variable)))",
+ "(clause (compound (functor \"sister\") (args variable)) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"sister\") (args variable))) (compound (functor \"female\") (args variable)))",
+ "(clause (compound (functor \"female\") (args variable)) (compound (functor \"brother\") (args (args variable))))",
+ "(clause (binop variable \"\\==\") (compound (functor \"female\") (args variable)))",
+ "(clause (head (compound (functor \"sister\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"female\") (args variable)))",
+ "(clause (head (compound (functor \"sister\") (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"sister\") (args variable))) (binop variable \"\\==\"))",
+ "(clause (head (compound (functor \"sister\") (args (args variable)))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"female\") (args variable)) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"sister\") (args variable)) (binop variable \"\\==\"))",
+ "(clause (head (compound (functor \"aunt\") (args variable))) (binop \"\\=\" variable))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"brother\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop variable \"\\=\"))"
+ ],
+ "rules": [
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"aunt\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"sister\") (args (args variable))) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 1,
+ 65
+ ],
+ "quality": 0.947889568617913
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"aunt\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"aunt\") (args variable))) (compound (functor \"sister\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"sister\") (args (args variable))))"
+ ],
+ "distribution": [
+ 7,
+ 151
+ ],
+ "quality": 0.9379739504789125
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 24,
+ 0
+ ],
+ "quality": 0.914813761663181
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"aunt\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 20,
+ 0
+ ],
+ "quality": 0.8970351219221164
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"aunt\") (args (args variable)))) (compound (functor \"sister\") (args (args variable))))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8783140596236834
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"aunt\") (args variable))))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.8622447942091449
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"mother\") (args variable)) (compound (functor \"sister\") (args (args variable))))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.8526064437591069
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.8415381256574634
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"aunt\") (args (args variable)))) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.8415381256574634
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"aunt\") (args variable))) (compound (functor \"sister\") (args variable)))"
+ ],
+ "distribution": [
+ 48,
+ 217
+ ],
+ "quality": 0.8109202887628649
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"sister\") (args (args variable))) (binop variable \"\\==\"))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.8101710193035057
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"aunt\") (args (args variable)))) (compound (functor \"sister\") (args variable)))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.792429870081551
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"aunt\") (args variable))) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7676282421060165
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"female\") (args variable)))"
+ ],
+ "distribution": [
+ 8,
+ 0
+ ],
+ "quality": 0.7381905943393422
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"female\") (args variable)))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.7045898992557954
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"female\") (args variable)) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 6,
+ 0
+ ],
+ "quality": 0.6624455004031453
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/family_relations/brother_2/bugs.json b/prolog/problems/family_relations/brother_2/bugs.json
new file mode 100644
index 0000000..252bcdf
--- /dev/null
+++ b/prolog/problems/family_relations/brother_2/bugs.json
@@ -0,0 +1,115 @@
+{
+ "patterns": [
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"brother\") (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"brother\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"brother\") (args variable))) (compound (functor \"male\") (args variable)))",
+ "(clause (head (compound (functor \"brother\") (args variable))) (binop variable \"\\==\"))",
+ "(clause (head (compound (functor \"brother\") (args (args variable)))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop variable \"\\==\"))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"male\") (args variable)))",
+ "(clause (compound (functor \"male\") (args variable)) (binop variable \"\\==\"))",
+ "(clause (compound (functor \"male\") (args variable)) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"brother\") (args (args variable)))) (binop \"\\=\" variable))",
+ "(clause (head (compound (functor \"brother\") (args variable))) (binop variable \"\\=\"))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop variable \"\\=\"))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\=\" variable))",
+ "(clause (compound (functor \"male\") (args variable)) (binop variable \"\\=\"))",
+ "(clause (binop variable \"\\==\") (compound (functor \"male\") (args variable)))",
+ "(clause (binop variable \"\\=\") (compound (functor \"male\") (args variable)))",
+ "(clause (binop \"\\=\" variable) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (binop variable \"\\=\") (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"brother\") (args (args variable)))) (compound (functor \"not\") (args (binop \"=\" variable))))",
+ "(clause (head (compound (functor \"brother\") (args variable))) (binop \"\\=\" variable))",
+ "(clause (head (compound (functor \"brother\") (args (args variable)))) (binop variable \"\\=\"))",
+ "(clause (head (compound (functor \"brother\") (args variable))) (compound (functor \"not\") (args (binop variable \"=\"))))"
+ ],
+ "rules": [
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"brother\") (args variable))) (compound (functor \"male\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\==\" variable))"
+ ],
+ "distribution": [
+ 0,
+ 102
+ ],
+ "quality": 0.9873786600439431
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"brother\") (args variable))) (compound (functor \"male\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\=\" variable))",
+ "(clause (head (compound (functor \"brother\") (args (args variable)))) (binop \"\\=\" variable))"
+ ],
+ "distribution": [
+ 0,
+ 39
+ ],
+ "quality": 0.9574307072764063
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\=\" variable))",
+ "(clause (compound (functor \"male\") (args variable)) (binop variable \"\\=\"))"
+ ],
+ "distribution": [
+ 0,
+ 34
+ ],
+ "quality": 0.9526649947812729
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"brother\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\==\" variable))"
+ ],
+ "distribution": [
+ 4,
+ 102
+ ],
+ "quality": 0.9462163947101927
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"brother\") (args variable))) (compound (functor \"male\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\=\" variable))"
+ ],
+ "distribution": [
+ 1,
+ 43
+ ],
+ "quality": 0.9357128569764824
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"brother\") (args variable))) (compound (functor \"male\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"male\") (args variable)))"
+ ],
+ "distribution": [
+ 9,
+ 80
+ ],
+ "quality": 0.8661764695637234
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"\\=\" variable) (compound (functor \"parent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7899147086754702
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/family_relations/cousin_2/bugs.json b/prolog/problems/family_relations/cousin_2/bugs.json
new file mode 100644
index 0000000..cf1bafe
--- /dev/null
+++ b/prolog/problems/family_relations/cousin_2/bugs.json
@@ -0,0 +1,547 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"cousin\") (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"sister\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"sister\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"brother\") (args (args variable))))",
+ "(clause (compound (functor \"sister\") (args variable)))",
+ "(clause (compound (functor \"sister\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"brother\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\==\" variable))",
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop variable \"\\==\"))",
+ "(clause (head (compound (functor \"cousin\") (args variable))) (binop variable \"\\==\"))",
+ "(clause (compound (functor \"grandparent\") (args (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop variable \"\\==\"))",
+ "(clause (head (compound (functor \"cousin\") (args variable))) (compound (functor \"grandparent\") (args (args variable))))",
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (compound (functor \"grandparent\") (args (args variable))))",
+ "(clause (compound (functor \"grandparent\") (args variable)) (compound (functor \"grandparent\") (args variable)))",
+ "(clause (compound (functor \"brother\") (args variable)))",
+ "(clause (compound (functor \"brother\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"grandparent\") (args (args variable))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"grandparent\") (args (args variable))) (binop variable \"\\==\"))",
+ "(clause (compound (functor \"grandparent\") (args variable)) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"brother\") (args variable)) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop variable \"\\=\"))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\=\" variable))",
+ "(clause (compound (functor \"sister\") (args variable)) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop variable \"\\=\"))",
+ "(clause (head (compound (functor \"cousin\") (args variable))) (binop variable \"\\=\"))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (binop \"\\=\" variable))",
+ "(clause (compound (functor \"brother\") (args (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop \"\\=\" variable))",
+ "(clause (compound (functor \"sister\") (args (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (binop variable \"\\==\") (compound (functor \"parent\") (args (args variable))))",
+ "(clause (binop \"\\==\" variable) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"cousin\") (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (binop variable \"\\==\")))",
+ "(clause (head (binop \"\\==\" variable)))",
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (compound (functor \"aunt\") (args (args variable))))",
+ "(clause (compound (functor \"aunt\") (args variable)) (compound (functor \"parent\") (args variable)))",
+ "(clause (binop variable \"\\==\") (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"cousin\") (args variable))) (compound (functor \"aunt\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"sibling\") (args variable)))",
+ "(clause (compound (functor \"grandparent\") (args (args variable))) (binop variable \"\\=\"))",
+ "(clause (binop \"\\==\" variable) (compound (functor \"sister\") (args (args variable))))",
+ "(clause (binop variable \"\\==\") (compound (functor \"sister\") (args variable)))",
+ "(clause (head (compound (functor \"sibling\") (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"sibling\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"grandparent\") (args (args variable))) (binop \"\\=\" variable))",
+ "(clause (binop variable \"\\==\"))",
+ "(clause (compound (functor \"aunt\") (args variable)))",
+ "(clause (binop \"\\==\" variable))",
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"sister\") (args (args variable))) (compound (functor \"brother\") (args (args variable))))",
+ "(clause (compound (functor \"aunt\") (args (args variable))))",
+ "(clause (head (compound (functor \"cousin\") (args variable))) (compound (functor \"male\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"aunt\") (args variable)))",
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))))",
+ "(clause (head (compound (functor \"parent\") (args variable))))",
+ "(clause (head (compound (functor \"parent\") (args (args variable)))))",
+ "(clause (binop \"\\==\" variable) (compound (functor \"brother\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"sister\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"sibling\") (args (args variable))))",
+ "(clause (binop \"\\==\" variable) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"sister\") (args variable)))",
+ "(clause (binop variable \"\\==\") (compound (functor \"brother\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"brother\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"brother\") (args (args variable))))",
+ "(clause (compound (functor \"grandparent\") (args variable)))",
+ "(clause (compound (functor \"male\") (args variable)) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"sister\") (args (args variable))) (binop \"\\==\" variable))",
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (compound (functor \"uncle\") (args (args variable))))",
+ "(clause (compound (functor \"sibling\") (args (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"cousin\") (args variable))) (compound (functor \"brother\") (args variable)))",
+ "(clause (compound (functor \"sister\") (args variable)) (compound (functor \"brother\") (args variable)))",
+ "(clause (compound (functor \"grandparent\") (args (args variable))) (binop (compound (functor \"parent\") (args (args variable))) \"\\==\"))",
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (binop \"\\==\" (compound (functor \"parent\") (args (args variable)))))",
+ "(clause (head (compound (functor \"cousin\") (args variable))) (binop (compound (functor \"parent\") (args (args variable))) \"\\==\"))",
+ "(clause (head (compound (functor \"rel\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"grandparent\") (args (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (binop \"\\==\" variable) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"brother\") (args (args variable))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"grandparent\") (args (args variable))) (binop \"\\==\" (compound (functor \"parent\") (args (args variable)))))",
+ "(clause (compound (functor \"male\") (args variable)) (binop variable \"\\==\"))",
+ "(clause (head (compound (functor \"uncle\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (compound (functor \"brother\") (args (args variable))))",
+ "(clause (compound (functor \"brother\") (args variable)) (binop variable \"\\==\"))",
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (compound (functor \"sister\") (args (args variable))))",
+ "(clause (compound (functor \"brother\") (args (args variable))) (compound (functor \"sister\") (args (args variable))))",
+ "(clause (compound (functor \"sister\") (args variable)) (binop variable \"\\==\"))",
+ "(clause (compound (functor \"sister\") (args variable)) (binop \"\\=\" variable))",
+ "(clause (compound (functor \"grandparent\") (args variable)) (binop variable \"==\"))",
+ "(clause (binop \"\\=\" variable) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"cousin\") (args variable))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"brother\") (args variable)) (binop \"\\=\" variable))",
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (binop variable \"\\=\"))",
+ "(clause (head (compound (functor \"cousin\") (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"rel\") (args variable)))",
+ "(clause (binop (compound (functor \"parent\") (args (args variable))) \"\\==\") (binop variable \"\\==\"))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"uncle\") (args variable)))",
+ "(clause (binop \"\\==\" (compound (functor \"parent\") (args (args variable)))) (binop \"\\==\" variable))",
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (compound (functor \"rel\") (args (args variable))))",
+ "(clause (compound (functor \"grandparent\") (args variable)) (binop \"==\" variable))",
+ "(clause (binop variable \"\\==\") (compound (functor \"sister\") (args (args variable))))",
+ "(clause (head (compound (functor \"cousin\") (args variable))) (compound (functor \"sister\") (args variable)))",
+ "(clause (head (compound (functor \"uncle\") (args variable))) (compound (functor \"brother\") (args variable)))",
+ "(clause (binop \"\\=\" variable) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"cousin\") (args variable))) (compound (functor \"mother\") (args (args variable))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 133,
+ 6
+ ],
+ "quality": 0.94016212482336
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"cousin\") (args variable))) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 29,
+ 0
+ ],
+ "quality": 0.933779474141905
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"cousin\") (args variable))) (compound (functor \"grandparent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 131,
+ 9
+ ],
+ "quality": 0.9176017146530752
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (compound (functor \"grandparent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 122,
+ 9
+ ],
+ "quality": 0.9115239358917779
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 1,
+ 46
+ ],
+ "quality": 0.9076289132901347
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"parent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 32,
+ 1
+ ],
+ "quality": 0.9018227532951513
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"cousin\") (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"sister\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"brother\") (args variable)))",
+ "(clause (compound (functor \"sister\") (args variable)))"
+ ],
+ "distribution": [
+ 3,
+ 61
+ ],
+ "quality": 0.8974982076912563
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop \"\\==\" variable))"
+ ],
+ "distribution": [
+ 1,
+ 40
+ ],
+ "quality": 0.8923400808585659
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"cousin\") (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"brother\") (args variable)))",
+ "(clause (compound (functor \"sister\") (args variable)))",
+ "(clause (compound (functor \"sister\") (args (args variable))))"
+ ],
+ "distribution": [
+ 5,
+ 69
+ ],
+ "quality": 0.8778775682779553
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"cousin\") (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"brother\") (args (args variable))))",
+ "(clause (compound (functor \"sister\") (args (args variable))))"
+ ],
+ "distribution": [
+ 6,
+ 73
+ ],
+ "quality": 0.8765880199817603
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"sister\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"brother\") (args (args variable))))",
+ "(clause (compound (functor \"brother\") (args (args variable))))"
+ ],
+ "distribution": [
+ 4,
+ 53
+ ],
+ "quality": 0.8692566844984977
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"sister\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"brother\") (args variable)))",
+ "(clause (compound (functor \"brother\") (args variable)))"
+ ],
+ "distribution": [
+ 5,
+ 59
+ ],
+ "quality": 0.8673836719098068
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.8498355518209159
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"sister\") (args (args variable))) (compound (functor \"brother\") (args (args variable))))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.8498355518209159
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"\\==\"))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.8498355518209159
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop \"\\==\" variable))",
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 5,
+ 51
+ ],
+ "quality": 0.8470067221446368
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop variable \"\\==\"))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 3,
+ 41
+ ],
+ "quality": 0.8454701631582257
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"cousin\") (args variable))) (compound (functor \"male\") (args variable)))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.8369844665046267
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (binop variable \"\\==\")))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.8369844665046267
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"sister\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"brother\") (args variable)))"
+ ],
+ "distribution": [
+ 19,
+ 117
+ ],
+ "quality": 0.8367214651159391
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"sister\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"brother\") (args (args variable))))"
+ ],
+ "distribution": [
+ 20,
+ 118
+ ],
+ "quality": 0.8317204395318585
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"parent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8245830644763305
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.8207906119330671
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"cousin\") (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"sister\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"brother\") (args (args variable))))"
+ ],
+ "distribution": [
+ 26,
+ 134
+ ],
+ "quality": 0.814618215172423
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"sister\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"brother\") (args variable)))"
+ ],
+ "distribution": [
+ 27,
+ 136
+ ],
+ "quality": 0.8145742550525583
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"sister\") (args variable)))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.801889173359944
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"cousin\") (args variable))) (compound (functor \"brother\") (args variable)))"
+ ],
+ "distribution": [
+ 8,
+ 0
+ ],
+ "quality": 0.7274216707800343
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"sister\") (args variable)))",
+ "(clause (compound (functor \"sister\") (args variable)) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"cousin\") (args variable))) (compound (functor \"parent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 1,
+ 15
+ ],
+ "quality": 0.7117650610669528
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop variable \"\\=\"))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\=\" variable))"
+ ],
+ "distribution": [
+ 2,
+ 18
+ ],
+ "quality": 0.7085607880281732
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop \"\\=\" variable))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\=\" variable))"
+ ],
+ "distribution": [
+ 2,
+ 18
+ ],
+ "quality": 0.7085607880281732
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop variable \"\\=\"))"
+ ],
+ "distribution": [
+ 4,
+ 19
+ ],
+ "quality": 0.6686625243584223
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"cousin\") (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"brother\") (args (args variable))))"
+ ],
+ "distribution": [
+ 63,
+ 138
+ ],
+ "quality": 0.6674026842607351
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"brother\") (args (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"sister\") (args (args variable))) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 6,
+ 20
+ ],
+ "quality": 0.6144839912537575
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"brother\") (args variable)))",
+ "(clause (compound (functor \"brother\") (args (args variable))))"
+ ],
+ "distribution": [
+ 39,
+ 63
+ ],
+ "quality": 0.5661405653076401
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"cousin\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop \"\\==\" variable))"
+ ],
+ "distribution": [
+ 65,
+ 65
+ ],
+ "quality": 0.4334631379481499
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/family_relations/descendant_2/bugs.json b/prolog/problems/family_relations/descendant_2/bugs.json
new file mode 100644
index 0000000..0eeaccc
--- /dev/null
+++ b/prolog/problems/family_relations/descendant_2/bugs.json
@@ -0,0 +1,251 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"descendant\") (args (args variable)))) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"descendant\") (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"descendant\") (args variable))) (compound (functor \"ancestor\") (args (args variable))))",
+ "(clause (head (compound (functor \"descendant\") (args variable))) (compound (functor \"descendant\") (args variable)))",
+ "(clause (head (compound (functor \"descendant\") (args (args variable)))) (compound (functor \"ancestor\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"descendant\") (args (args variable))))",
+ "(clause (head (compound (functor \"descendant\") (args (args variable)))) (compound (functor \"descendant\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"descendant\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"descendant\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"descendant\") (args (args variable))))",
+ "(clause (head (compound (functor \"descendant\") (args variable))) (compound (functor \"descendant\") (args (args variable))))",
+ "(clause (head (compound (functor \"descendant\") (args variable))))",
+ "(clause (head (compound (functor \"descendant\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"descendant\") (args (args variable)))) (compound (functor \"descendant\") (args variable)))",
+ "(clause (binop variable \"==\"))",
+ "(clause (head (compound (functor \"descendant\") (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"descendant\") (args (args variable)))))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"ancestor\") (args variable)))",
+ "(clause (binop \"==\" variable))",
+ "(clause (head (compound (functor \"descendant\") (args (args variable)))) (compound (functor \"child\") (args (args variable))))",
+ "(clause (head (compound (functor \"descendant\") (args (args variable)))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"ancestor\") (args (args variable))))",
+ "(clause (head (compound (functor \"descendant\") (args variable))) (compound (functor \"child\") (args variable)))",
+ "(clause (head (compound (functor \"descendant\") (args (args variable)))) (compound (functor \"ancestor\") (args (args variable))))",
+ "(clause (head (compound (functor \"descdendant\") (args (args variable)))) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"descdendant\") (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"descendant\") (args variable))) (binop variable \"\\==\"))",
+ "(clause (head (compound (functor \"descandant\") (args (args variable)))) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"descandant\") (args variable)))"
+ ],
+ "rules": [
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"descendant\") (args (args variable)))) (compound (functor \"ancestor\") (args variable)))"
+ ],
+ "distribution": [
+ 1,
+ 105
+ ],
+ "quality": 0.973626841987995
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"descendant\") (args variable)))"
+ ],
+ "distribution": [
+ 64,
+ 0
+ ],
+ "quality": 0.9705736245082147
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"descendant\") (args (args variable))))"
+ ],
+ "distribution": [
+ 63,
+ 0
+ ],
+ "quality": 0.9700883375409743
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"descendant\") (args variable))) (compound (functor \"ancestor\") (args (args variable))))"
+ ],
+ "distribution": [
+ 2,
+ 110
+ ],
+ "quality": 0.9654522191878034
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"descendant\") (args variable))) (compound (functor \"descendant\") (args (args variable))))"
+ ],
+ "distribution": [
+ 32,
+ 0
+ ],
+ "quality": 0.9401859078473961
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"descendant\") (args variable))))"
+ ],
+ "distribution": [
+ 29,
+ 0
+ ],
+ "quality": 0.933957780902709
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"descendant\") (args (args variable)))) (compound (functor \"descendant\") (args variable)))"
+ ],
+ "distribution": [
+ 28,
+ 0
+ ],
+ "quality": 0.9315914615339456
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"descendant\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 28,
+ 0
+ ],
+ "quality": 0.9315914615339456
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"descendant\") (args (args variable))))",
+ "(clause (head (compound (functor \"descendant\") (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"descendant\") (args variable))) (compound (functor \"descendant\") (args variable)))"
+ ],
+ "distribution": [
+ 3,
+ 71
+ ],
+ "quality": 0.924459733681661
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"descendant\") (args variable))) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 20,
+ 0
+ ],
+ "quality": 0.9044160072989779
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"descendant\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 16,
+ 0
+ ],
+ "quality": 0.8838503753702701
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"descendant\") (args variable)))",
+ "(clause (head (compound (functor \"descendant\") (args (args variable)))) (compound (functor \"descendant\") (args (args variable))))",
+ "(clause (head (compound (functor \"descendant\") (args (args variable)))) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 6,
+ 64
+ ],
+ "quality": 0.8711158595238758
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"descendant\") (args variable)))",
+ "(clause (head (compound (functor \"descendant\") (args (args variable)))) (compound (functor \"descendant\") (args (args variable))))"
+ ],
+ "distribution": [
+ 8,
+ 65
+ ],
+ "quality": 0.849709057252787
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"descdendant\") (args (args variable)))) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 6,
+ 0
+ ],
+ "quality": 0.7136115876115294
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"descendant\") (args (args variable)))) (compound (functor \"ancestor\") (args (args variable))))"
+ ],
+ "distribution": [
+ 6,
+ 0
+ ],
+ "quality": 0.7136115876115294
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"descandant\") (args (args variable)))) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 6,
+ 0
+ ],
+ "quality": 0.7136115876115294
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"descandant\") (args variable)))"
+ ],
+ "distribution": [
+ 5,
+ 0
+ ],
+ "quality": 0.6665876404448069
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"descendant\") (args variable))) (compound (functor \"descendant\") (args variable)))"
+ ],
+ "distribution": [
+ 34,
+ 72
+ ],
+ "quality": 0.627337822618307
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"==\"))"
+ ],
+ "distribution": [
+ 4,
+ 0
+ ],
+ "quality": 0.6108003755618978
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/family_relations/grandparent_2/bugs.json b/prolog/problems/family_relations/grandparent_2/bugs.json
new file mode 100644
index 0000000..03ebb02
--- /dev/null
+++ b/prolog/problems/family_relations/grandparent_2/bugs.json
@@ -0,0 +1,134 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"grandparent\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"grandparent\") (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"grandparent\") (args (args variable)))) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"grandparent\") (args (args variable)))) (compound (functor \"grandparent\") (args (args variable))))",
+ "(clause (head (compound (functor \"grandparent\") (args variable))) (compound (functor \"grandparent\") (args variable)))",
+ "(clause (head (compound (functor \"grandparent\") (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"grandparent\") (args variable))) (compound (functor \"female\") (args variable)))",
+ "(clause (head (compound (functor \"grandparent\") (args (args variable)))))",
+ "(clause (head (compound (functor \"grandparent\") (args variable))) (compound (functor \"male\") (args variable)))",
+ "(clause (head (compound (functor \"grandparent\") (args variable))) (compound (functor \"parent\") (args (compound (functor \"parent\") (args variable)))))",
+ "(clause (compound (functor \"female\") (args variable)) (compound (functor \"grandparent\") (args variable)))"
+ ],
+ "rules": [
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"grandparent\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 0,
+ 39
+ ],
+ "quality": 0.9610730922668185
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"grandparent\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"grandparent\") (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 8,
+ 198
+ ],
+ "quality": 0.9536702271177137
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"grandparent\") (args (args variable)))) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.8356509258426985
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"grandparent\") (args variable))) (compound (functor \"parent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.8071381578664112
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 8,
+ 0
+ ],
+ "quality": 0.7681743107725475
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"grandparent\") (args (args variable)))) (compound (functor \"grandparent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.741594251804507
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.741594251804507
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"grandparent\") (args variable))) (compound (functor \"female\") (args variable)))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.741594251804507
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"grandparent\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.741594251804507
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"grandparent\") (args variable))) (compound (functor \"parent\") (args (compound (functor \"parent\") (args variable)))))"
+ ],
+ "distribution": [
+ 5,
+ 0
+ ],
+ "quality": 0.6643380722879881
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/family_relations/mother_2/bugs.json b/prolog/problems/family_relations/mother_2/bugs.json
new file mode 100644
index 0000000..a65eb29
--- /dev/null
+++ b/prolog/problems/family_relations/mother_2/bugs.json
@@ -0,0 +1,84 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"mother\") (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"mother\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"mother\") (args variable))) (compound (functor \"female\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"female\") (args variable)))",
+ "(clause (compound (functor \"female\") (args variable)) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"mother\") (args (args variable)))))",
+ "(clause (head (compound (functor \"mother\") (args variable))))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"female\") (args variable)))",
+ "(clause (head (compound (functor \"mother\") (args (args variable)))) (compound (functor \"female\") (args variable)))",
+ "(clause (head (binop variable \"=\")))"
+ ],
+ "rules": [
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"mother\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"female\") (args variable)))"
+ ],
+ "distribution": [
+ 1,
+ 178
+ ],
+ "quality": 0.987052705253526
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"mother\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"female\") (args variable)) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 0,
+ 79
+ ],
+ "quality": 0.9826262170902895
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"mother\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.890899775723019
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"mother\") (args variable))))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7987809210948922
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"female\") (args variable)))"
+ ],
+ "distribution": [
+ 6,
+ 0
+ ],
+ "quality": 0.720112523275646
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (binop variable \"=\")))"
+ ],
+ "distribution": [
+ 4,
+ 0
+ ],
+ "quality": 0.6198615754492156
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/family_relations/sister_2/bugs.json b/prolog/problems/family_relations/sister_2/bugs.json
new file mode 100644
index 0000000..2fa8351
--- /dev/null
+++ b/prolog/problems/family_relations/sister_2/bugs.json
@@ -0,0 +1,340 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"sister\") (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"sister\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"sister\") (args variable))) (compound (functor \"female\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"female\") (args variable)))",
+ "(clause (compound (functor \"female\") (args variable)) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"sister\") (args (args variable)))) (binop \"\\==\" variable))",
+ "(clause (head (compound (functor \"sister\") (args variable))) (binop variable \"\\==\"))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop variable \"\\==\"))",
+ "(clause (compound (functor \"female\") (args variable)) (binop variable \"\\==\"))",
+ "(clause (head (compound (functor \"sister\") (args (args variable)))) (compound (functor \"female\") (args variable)))",
+ "(clause (head (compound (functor \"sister\") (args (args variable)))) (binop \"\\=\" variable))",
+ "(clause (head (compound (functor \"sister\") (args variable))) (binop variable \"\\=\"))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\=\" variable))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop variable \"\\=\"))",
+ "(clause (compound (functor \"female\") (args variable)) (binop variable \"\\=\"))",
+ "(clause (binop \"\\==\" variable) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (binop variable \"\\==\") (compound (functor \"female\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (binop variable \"\\==\") (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"female\") (args variable)) (binop \"\\==\" variable))",
+ "(clause (head (compound (functor \"sister\") (args variable))) (compound (functor \"parent\") (args variable)))",
+ "(clause (binop variable \"\\=\") (compound (functor \"female\") (args variable)))",
+ "(clause (head (compound (functor \"sister\") (args (args variable)))) (compound (functor \"parent\") (args variable)))",
+ "(clause (binop \"\\=\" variable) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"female\") (args variable)))",
+ "(clause (binop variable \"\\=\") (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"sister\") (args variable))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"parent\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"sister\") (args (args variable)))) (binop variable \"\\==\"))",
+ "(clause (head (compound (functor \"sister\") (args variable))) (binop \"\\=\" variable))",
+ "(clause (head (compound (functor \"sister\") (args (args variable)))) (compound (functor \"not\") (args (binop \"=\" variable))))",
+ "(clause (compound (functor \"female\") (args variable)) (compound (functor \"parent\") (args variable)))",
+ "(clause (head (compound (functor \"sister\") (args variable))) (compound (functor \"not\") (args (binop variable \"=\"))))",
+ "(clause (head (compound (functor \"sister\") (args (args variable)))) (binop variable \"\\=\"))",
+ "(clause (head (compound (functor \"female\") (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop variable \"==\"))",
+ "(clause (compound (functor \"female\") (args variable)) (binop \"\\=\" variable))",
+ "(clause (binop (compound (functor \"parent\") (args variable)) \"==\" (compound (functor \"parent\") (args variable))))",
+ "(clause (binop \"\\==\" variable) (compound (functor \"female\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"not\") (args (binop variable \"=\"))))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"not\") (args (binop \"=\" variable))))",
+ "(clause (head (compound (functor \"sister\") (args variable))) (compound (functor \"mother\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop \"==\" variable))",
+ "(clause (head (compound (functor \"sister\") (args (args variable)))) (binop \"==\" (compound (functor \"parent\") (args (args variable)))))",
+ "(clause (head (compound (functor \"sister\") (args (args variable)))))",
+ "(clause (head (compound (functor \"sister\") (args variable))) (binop (compound (functor \"parent\") (args (args variable))) \"==\"))",
+ "(clause (compound (functor \"parent\") (args variable)) (binop variable \"=\\=\"))",
+ "(clause (head (compound (functor \"sister\") (args (args variable)))) (binop \"=\\=\" variable))",
+ "(clause (compound (functor \"female\") (args variable)))",
+ "(clause (compound (functor \"female\") (args variable)) (compound (functor \"mother\") (args (args variable))))",
+ "(clause (head (compound (functor \"sister\") (args variable))) (compound (functor \"sibling\") (args variable)))",
+ "(clause (compound (functor \"female\") (args variable)) (compound (functor \"not\") (args (binop variable \"=\"))))",
+ "(clause (head (compound (functor \"sister\") (args (args variable)))) (compound (functor \"sibling\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"=\\=\" variable))",
+ "(clause (head (compound (functor \"sister\") (args (args variable)))) (binop \"=\" (compound (functor \"parent\") (args (args variable)))))",
+ "(clause (compound (functor \"female\") (args variable)) (binop variable \"=\\=\"))",
+ "(clause (head (compound (functor \"sibling\") (args variable))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (head (compound (functor \"sister\") (args (args variable)))) (compound (functor \"mother\") (args (args variable))))",
+ "(clause (head (compound (functor \"sibling\") (args (args variable)))) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"mother\") (args variable)) (compound (functor \"mother\") (args variable)))",
+ "(clause (compound (functor \"sibling\") (args variable)) (compound (functor \"female\") (args variable)))",
+ "(clause (head (compound (functor \"sister\") (args variable))) (compound (functor \"feamle\") (args variable)))",
+ "(clause (compound (functor \"female\") (args variable)) (binop (compound (functor \"parent\") (args (args variable))) \"==\"))",
+ "(clause (head (compound (functor \"sister\") (args variable))) (binop (compound (functor \"parent\") (args (args variable))) \"=\"))",
+ "(clause (head (compound (functor \"sister\") (args variable))) (binop variable \"=\\=\"))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"feamle\") (args variable)))",
+ "(clause (binop (compound (functor \"parent\") (args variable)) \"=\" (compound (functor \"parent\") (args variable))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sister\") (args (args variable)))) (compound (functor \"female\") (args variable)))"
+ ],
+ "distribution": [
+ 131,
+ 0
+ ],
+ "quality": 0.98752268394827
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"\\==\" variable) (compound (functor \"parent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 45,
+ 0
+ ],
+ "quality": 0.960805156909999
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"\\==\") (compound (functor \"parent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 37,
+ 0
+ ],
+ "quality": 0.9514793639924134
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sister\") (args variable))) (compound (functor \"female\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop variable \"\\=\"))",
+ "(clause (head (compound (functor \"sister\") (args (args variable)))) (binop \"\\=\" variable))"
+ ],
+ "distribution": [
+ 1,
+ 72
+ ],
+ "quality": 0.9491654216200829
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sister\") (args variable))) (compound (functor \"female\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop variable \"\\=\"))"
+ ],
+ "distribution": [
+ 3,
+ 81
+ ],
+ "quality": 0.9323996349698898
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sister\") (args variable))) (compound (functor \"female\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop variable \"\\==\"))",
+ "(clause (compound (functor \"female\") (args variable)) (compound (functor \"parent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 4,
+ 95
+ ],
+ "quality": 0.9294071429039249
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"female\") (args variable)) (compound (functor \"parent\") (args (args variable))))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"female\") (args variable)) (binop variable \"\\==\"))"
+ ],
+ "distribution": [
+ 4,
+ 89
+ ],
+ "quality": 0.9257398293889815
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sister\") (args variable))) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 25,
+ 0
+ ],
+ "quality": 0.9244949834569286
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sister\") (args variable))) (compound (functor \"female\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (binop variable \"\\==\"))"
+ ],
+ "distribution": [
+ 17,
+ 184
+ ],
+ "quality": 0.9097159118083122
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sister\") (args (args variable)))) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 21,
+ 0
+ ],
+ "quality": 0.9090981834363482
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"\\=\" variable) (compound (functor \"parent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 19,
+ 0
+ ],
+ "quality": 0.899813945496532
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"\\=\") (compound (functor \"parent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8864346621831894
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)) (compound (functor \"female\") (args variable)))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.8577342713242664
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"female\") (args variable))))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.8143191401362178
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"female\") (args variable)) (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.8143191401362178
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args variable)))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.7963231180678917
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"parent\") (args (args variable))))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.7963231180678917
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"\\==\" variable) (compound (functor \"female\") (args variable)))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7745383217844619
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop (compound (functor \"parent\") (args variable)) \"==\" (compound (functor \"parent\") (args variable))))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7745383217844619
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sister\") (args variable))) (compound (functor \"mother\") (args (args variable))))"
+ ],
+ "distribution": [
+ 8,
+ 0
+ ],
+ "quality": 0.7500360114235385
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sister\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 8,
+ 0
+ ],
+ "quality": 0.7500360114235385
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"female\") (args variable)) (compound (functor \"not\") (args (binop variable \"=\"))))"
+ ],
+ "distribution": [
+ 0,
+ 6
+ ],
+ "quality": 0.6828971360185574
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sister\") (args variable))) (compound (functor \"female\") (args variable)))",
+ "(clause (compound (functor \"parent\") (args (args variable))) (compound (functor \"not\") (args (binop variable \"=\"))))"
+ ],
+ "distribution": [
+ 0,
+ 7
+ ],
+ "quality": 0.6384215810360028
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/lists/conc_3/bugs.json b/prolog/problems/lists/conc_3/bugs.json
new file mode 100644
index 0000000..faa8bb9
--- /dev/null
+++ b/prolog/problems/lists/conc_3/bugs.json
@@ -0,0 +1,623 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args (args variable (args variable))))))",
+ "(clause (head (compound (functor \"conc\") (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"conc\") (args (list (h variable)) (args (args (list (h variable))))))))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (head (compound (functor \"conc\") (args (args (args (list (t variable))))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"conc\") (args (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"conc\") (args (args \"[]\" (args variable))))))",
+ "(clause (head (compound (functor \"conc\") (args variable (args \"[]\")))))",
+ "(clause (binop variable \"=\"))",
+ "(clause (head (compound (functor \"conc\") (args variable (args (args variable))))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))))",
+ "(clause (head (compound (functor \"conc\") (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"conc\") (args variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"conc\") (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop variable \"=\") (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"conc\") (args (list (h variable))))))",
+ "(clause (binop variable \"=\") (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args variable))))",
+ "(clause (head (compound (functor \"conc\") (args (args (list (t variable)))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (binop variable \"=\"))",
+ "(clause (binop variable \"=\" (list (t variable))))",
+ "(clause (binop \"=\" (list (t variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (binop variable \"=\") (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable (args (list (t variable))))))))",
+ "(clause (binop \"=\" variable))",
+ "(clause (head (compound (functor \"conc\") (args (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\" (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"conc\") (args (args \"[]\" (args \"[]\"))))))",
+ "(clause (head (compound (functor \"conc\") (args variable))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))) (binop \"=\" variable))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"conc\") (args variable))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (compound (functor \"conc\") (args (args variable (args variable)))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (compound (functor \"conc\") (args (args (args (list (t variable)))))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (binop \"=\" (list (t variable))))",
+ "(clause (binop variable \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"conc\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))) (compound (functor \"conc\") (args (args (args (list (t variable)))))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop (list (t variable)) \"=\") (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args variable (args (args (list (h variable))))))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (compound (functor \"conc\") (args (args variable (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"conc\") (args (args (list (h variable)))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"conc\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t (list (h variable))))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (t variable))))",
+ "(clause (binop variable \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"conc\") (args (args (list (h variable)))))))",
+ "(clause (compound (functor \"conc\") (args \"[]\" (args variable))))",
+ "(clause (head (compound (functor \"conc\") (args variable))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (compound (functor \"conc\") (args (args (list (t variable))))))",
+ "(clause (compound (functor \"conc\") (args \"[]\")))",
+ "(clause (compound (functor \"conc\") (args \"[]\" (args (args variable)))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"conc\") (args (list (t variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"conc\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (binop variable \"=\"))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (binop \"=\" (list (t (list (t (list (t (list (h variable))))))))))",
+ "(clause (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop (list (h variable)) \"=\") (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"conc\") (args (list (h variable) (t \"[]\"))))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t \"[]\"))))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"conc\") (args (args (list (h variable)))))) (binop \"=\" (list (t variable))))",
+ "(clause (binop variable \"=\") (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t \"[]\")) (args variable)))))",
+ "(clause (binop variable \"=\") (binop \"=\" variable))",
+ "(clause (compound (functor \"conc\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"conc\") (args (args (list (h variable)) (args (list (t variable))))))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (t (list (t (list (h variable))))))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args (list (t variable))))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"conc\") (args (args (list (h variable)) (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t variable))))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args (list (h variable))))))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"conc\") (args (args (args (list (t variable))))))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\" (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args (list (t (list (h variable))))))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"conc\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t \"[]\")) (args (args variable))))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t variable))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop variable \"=\") (binop variable \"=\"))",
+ "(clause (head (compound (functor \"conc\") (args (args (args (list (h variable))))))) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (binop variable \"==\" \"[]\"))",
+ "(clause (head (compound (functor \"conc\") (args (list (h variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args (args variable (args (list (t (list (h variable))))))))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\" (args (list (h variable)))))))",
+ "(clause (binop \"=\" (list (t variable))) (binop variable \"==\"))",
+ "(clause (binop \"==\" \"[]\"))",
+ "(clause (binop (list (h variable)) \"=\") (binop \"=\" (list (t (list (t (list (h variable))))))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t variable))))) (compound (functor \"conc\") (args (args (args (list (h variable)))))))",
+ "(clause (compound (functor \"conc\") (args variable)) (binop variable \"=\"))",
+ "(clause (compound (functor \"conc\") (args variable)) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"conc\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t variable)) (args (args variable))))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"conc\") (args (args (list (h variable)) (args (list (t (list (h variable))))))))))",
+ "(clause (head (compound (functor \"conc\") (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"conc\") (args (args (list (h variable)))))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (compound (functor \"conc\") (args variable (args (args (list (h variable)))))))",
+ "(clause (binop variable \"=\") (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"conc\") (args variable))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args (list (h variable))))))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 200,
+ 0
+ ],
+ "quality": 0.9918098978873745
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))))"
+ ],
+ "distribution": [
+ 95,
+ 0
+ ],
+ "quality": 0.9813216549666162
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 109,
+ 0
+ ],
+ "quality": 0.9792693390073695
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 84,
+ 0
+ ],
+ "quality": 0.9784913292107171
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 128,
+ 1
+ ],
+ "quality": 0.9769005851308159
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args variable))) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 74,
+ 0
+ ],
+ "quality": 0.9751485753644915
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args (list (h variable)) (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args (list (t variable))))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable (args variable))))))"
+ ],
+ "distribution": [
+ 5,
+ 194
+ ],
+ "quality": 0.96777166797591
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=\") (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 57,
+ 0
+ ],
+ "quality": 0.9664740583799806
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 52,
+ 0
+ ],
+ "quality": 0.9625183513217128
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\" (args variable)))))"
+ ],
+ "distribution": [
+ 96,
+ 1
+ ],
+ "quality": 0.9616690423705326
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args variable))))"
+ ],
+ "distribution": [
+ 49,
+ 0
+ ],
+ "quality": 0.9598416751987479
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args (args variable (args variable))))))",
+ "(clause (head (compound (functor \"conc\") (args (list (h variable)) (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args (list (t variable))))))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 8,
+ 195
+ ],
+ "quality": 0.9537663671373556
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 176,
+ 6
+ ],
+ "quality": 0.9534661465905875
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 41,
+ 0
+ ],
+ "quality": 0.9502480946983761
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args (args (args (list (t variable))))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"conc\") (args (list (h variable)) (args (args (list (h variable))))))))"
+ ],
+ "distribution": [
+ 10,
+ 199
+ ],
+ "quality": 0.9456023946121227
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 35,
+ 0
+ ],
+ "quality": 0.9400876354157746
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (args (list (t variable)))))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 48,
+ 1
+ ],
+ "quality": 0.9301166055329816
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 30,
+ 0
+ ],
+ "quality": 0.9274776659225339
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args (list (h variable)) (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args (list (t variable))))))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 15,
+ 200
+ ],
+ "quality": 0.9240650012127092
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 134,
+ 8
+ ],
+ "quality": 0.9227536777332479
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"conc\") (args variable (args \"[]\")))))"
+ ],
+ "distribution": [
+ 54,
+ 1
+ ],
+ "quality": 0.9220529205414407
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 42,
+ 1
+ ],
+ "quality": 0.918344977607912
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (args variable (args (list (t variable))))))))"
+ ],
+ "distribution": [
+ 27,
+ 0
+ ],
+ "quality": 0.9172841429595752
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (list (h variable))))) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 156,
+ 12
+ ],
+ "quality": 0.9092617591052642
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable (args variable))))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args (list (t variable))))))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 19,
+ 199
+ ],
+ "quality": 0.9069186602870813
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (binop \"=\" (list (t (list (h variable))))))"
+ ],
+ "distribution": [
+ 24,
+ 0
+ ],
+ "quality": 0.9056547059316193
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args variable))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 68,
+ 4
+ ],
+ "quality": 0.9017940133144648
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable (args variable))))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args (list (t variable))))))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 22,
+ 201
+ ],
+ "quality": 0.8956538011695907
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args (list (t variable))))))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 24,
+ 205
+ ],
+ "quality": 0.8897060833902939
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args variable))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 21,
+ 0
+ ],
+ "quality": 0.8878657999705749
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (binop \"=\" (list (t (list (h variable))))))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.8624843097901103
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args variable (args variable)))))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.8624843097901103
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (args (list (h variable)))))))"
+ ],
+ "distribution": [
+ 16,
+ 0
+ ],
+ "quality": 0.8416383100276
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args (list (h variable)) (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args (list (t variable))))))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 48,
+ 205
+ ],
+ "quality": 0.805969040247678
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (list (t (list (h variable))))))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.7979894054615561
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args (args variable (args variable))))))"
+ ],
+ "distribution": [
+ 105,
+ 203
+ ],
+ "quality": 0.6457478342210308
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 132,
+ 210
+ ],
+ "quality": 0.6033553813748799
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable (args variable))))))"
+ ],
+ "distribution": [
+ 176,
+ 219
+ ],
+ "quality": 0.5467835845280454
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\" (args (args variable))))))"
+ ],
+ "distribution": [
+ 213,
+ 227
+ ],
+ "quality": 0.5093693606117694
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 26,
+ 31
+ ],
+ "quality": 0.4752464712988064
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/lists/del_3/bugs.json b/prolog/problems/lists/del_3/bugs.json
new file mode 100644
index 0000000..34d373a
--- /dev/null
+++ b/prolog/problems/lists/del_3/bugs.json
@@ -0,0 +1,833 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"del\") (args variable))) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"del\") (args variable (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"del\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)) (args variable))))))",
+ "(clause (head (compound (functor \"del\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)) (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"del\") (args (args (args (list (t variable))))))) (compound (functor \"del\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"del\") (args (args (args variable))))) (compound (functor \"del\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" variable))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"del\") (args variable))))",
+ "(clause (binop variable \"=\"))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"del\") (args variable))) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"del\") (args variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (args variable))))))",
+ "(clause (head (compound (functor \"del\") (args (args (args \"[]\"))))))",
+ "(clause (binop \"=\" variable))",
+ "(clause (head (compound (functor \"del\") (args variable (args (args \"[]\"))))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"del\") (args (args \"[]\")))))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"del\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)))))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)))))) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"del\") (args (args (args variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"del\") (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"del\") (args variable))) (binop variable \"==\"))",
+ "(clause (head (compound (functor \"del\") (args (args \"[]\" (args \"[]\"))))))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"del\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"del\") (args (args variable)))))",
+ "(clause (binop variable \"=\") (compound (functor \"del\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"del\") (args variable))) (binop \"==\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"==\" variable))",
+ "(clause (binop variable \"=\") (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)) (args \"[]\"))))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"del\") (args variable))) (binop \"\\==\" variable))",
+ "(clause (head (compound (functor \"del\") (args (args (args variable))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \"==\"))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)) (args (list (h variable))))))))",
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"del\") (args variable (args (args (list (h variable))))))))",
+ "(clause (binop \"\\==\" variable) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"delete\") (args variable))) (compound (functor \"delete\") (args variable)))",
+ "(clause (head (compound (functor \"del\") (args (args variable (args variable))))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)))))) (binop \"==\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"delete\") (args variable (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"del\") (args (args \"[]\" (args variable))))))",
+ "(clause (head (compound (functor \"del\") (args variable))) (binop variable \"\\=\"))",
+ "(clause (head (compound (functor \"del\") (args (args variable)))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (binop variable \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"del\") (args variable))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"del\") (args (args (args variable))))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)) (args (list (t variable))))))))",
+ "(clause (head (compound (functor \"del\") (args (args (args (list (t variable))))))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)))))) (compound (functor \"del\") (args (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"del\") (args (args (args (list (t variable))))))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (args variable))))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (binop variable \"=\")))",
+ "(clause (head (compound (functor \"del\") (args variable))) (compound (functor \"insert\") (args variable)))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)))))) (binop variable \"\\==\"))",
+ "(clause (head (compound (functor \"conc\") (args variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)))))) (binop \"\\=\" variable))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)))))) (binop variable \"\\=\"))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))) (compound (functor \"del\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"del\") (args (args variable)))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"del\") (args (args (args (list (h variable))))))))",
+ "(clause (head (binop \"=\" (list (t variable)))))",
+ "(clause (head (compound (functor \"del\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"del\") (args (args (args variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"del\") (args variable (args variable)))))",
+ "(clause (head (compound (functor \"del\") (args (args (args (list (h variable))))))) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)))))) (binop variable \"=\"))",
+ "(clause (binop variable \"\\=\") (compound (functor \"del\") (args variable)))",
+ "(clause (binop variable \"=\" (list (h variable))))",
+ "(clause (binop \"=\" variable) (binop variable \"\\==\"))",
+ "(clause (head (compound (functor \"del\") (args (args (args variable))))) (compound (functor \"del\") (args (args (args (list (t variable)))))))",
+ "(clause (binop variable \"\\=\") (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"del\") (args (args variable (args \"[]\"))))))",
+ "(clause (compound (functor \"del\") (args (args variable (args variable)))))",
+ "(clause (head (compound (functor \"delete\") (args (args (list (h variable)) (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"del\") (args variable))) (binop \"\\=\" variable))",
+ "(clause (compound (functor \"del\") (args variable)))",
+ "(clause (compound (functor \"del\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \"\\==\"))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t (list (h variable)))))))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"delete\") (args (args (list (t variable)) (args variable))))))",
+ "(clause (head (compound (functor \"delete\") (args (args (args (list (t variable))))))) (compound (functor \"delete\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"del\") (args (args (args (list (h variable))))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"del\") (args (args (args variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)))))) (binop variable \"==\"))",
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (binop \"=\" (list (h variable)))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))))",
+ "(clause (compound (functor \"memb\") (args variable)) (compound (functor \"del\") (args variable)))",
+ "(clause (binop variable \"\\=\"))",
+ "(clause (compound (functor \"del\") (args (args variable))) (binop \"=\" (list (t variable))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"delete\") (args (args (list (t variable)))))) (compound (functor \"delete\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"del\") (args (args (args (list (h variable))))))) (binop \"\\=\" variable))",
+ "(clause (binop \"=\" (list (t variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"del\") (args \"[]\" (args (args variable))))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"del\") (args (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"del\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"del\") (args (args (args variable))))) (binop \"=\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop (binop \"=\" variable) \"|\"))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)) (args variable))))))",
+ "(clause (head (compound (functor \"del\") (args \"[]\"))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop variable \"=\" (list (h \"[]\"))))",
+ "(clause (head (compound (functor \"del\") (args variable))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop \"=\" (list (h \"[]\"))))",
+ "(clause (binop \"=\" (list (h \"[]\") (t variable))))",
+ "(clause (binop \"=\" (list (t variable))) (binop (binop variable \"=\") \"|\"))",
+ "(clause (compound (functor \"del\") (args (args (args \"[]\")))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"del\") (args (args variable)))) (binop \"=\" variable))",
+ "(clause (binop \"\\=\" variable) (compound (functor \"del\") (args variable)))",
+ "(clause (binop variable \"\\==\") (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"del\") (args variable))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))) (compound (functor \"del\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"del\") (args (args variable (args \"[]\")))))",
+ "(clause (binop (binop \"=\" variable) \"|\") (binop \"=\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"del\") (args (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (args (list (t variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (binop \"==\" variable) (compound (functor \"del\") (args variable)))",
+ "(clause (compound (functor \"del\") (args variable (args (args \"[]\")))))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (head (compound (functor \"del\") (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (head (compound (functor \"del\") (args (args (args (list (t (list (h variable))))))))) (compound (functor \"del\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"del\") (args (args (args (list (h variable))))))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (args (list (h variable))))))) (binop \"=\" (list (h variable))))",
+ "(clause (binop variable \"=\") (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t (list (h variable)))) (args variable))))))",
+ "(clause (head (binop variable \"=\" (list (h variable)))))",
+ "(clause (head (compound (functor \"del\") (args (args variable)))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))) (compound (functor \"del\") (args (args (list (t variable))))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (compound (functor \"del\") (args variable)) (binop \"=\" variable))",
+ "(clause (compound (functor \"del\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)))))))"
+ ],
+ "distribution": [
+ 116,
+ 0
+ ],
+ "quality": 0.9849948790812632
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (args variable))))) (compound (functor \"del\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 196,
+ 2
+ ],
+ "quality": 0.9800002708060949
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args variable))))"
+ ],
+ "distribution": [
+ 117,
+ 1
+ ],
+ "quality": 0.9746637220573926
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (args variable))))))"
+ ],
+ "distribution": [
+ 83,
+ 1
+ ],
+ "quality": 0.9637161155237414
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)))))) (compound (functor \"del\") (args variable)))"
+ ],
+ "distribution": [
+ 49,
+ 0
+ ],
+ "quality": 0.9605929930584268
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"del\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 44,
+ 0
+ ],
+ "quality": 0.9555710694733691
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 90,
+ 2
+ ],
+ "quality": 0.9538781413622573
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args variable (args \"[]\")))))"
+ ],
+ "distribution": [
+ 55,
+ 1
+ ],
+ "quality": 0.9427801352444736
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 33,
+ 0
+ ],
+ "quality": 0.9376094405437594
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=\") (compound (functor \"del\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 31,
+ 0
+ ],
+ "quality": 0.9332118303316111
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args variable (args (args \"[]\"))))))"
+ ],
+ "distribution": [
+ 68,
+ 3
+ ],
+ "quality": 0.9223387559820253
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 45,
+ 2
+ ],
+ "quality": 0.9029287003421126
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))))"
+ ],
+ "distribution": [
+ 22,
+ 0
+ ],
+ "quality": 0.90080527035397
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 20,
+ 0
+ ],
+ "quality": 0.8911811592756177
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=\") (compound (functor \"del\") (args (args variable))))"
+ ],
+ "distribution": [
+ 20,
+ 0
+ ],
+ "quality": 0.8911811592756177
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)) (args (list (h variable))))))))"
+ ],
+ "distribution": [
+ 19,
+ 0
+ ],
+ "quality": 0.8842519805264388
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 19,
+ 0
+ ],
+ "quality": 0.8842519805264388
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"\\==\" variable) (compound (functor \"del\") (args variable)))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.8762537481589044
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)))))) (binop \"==\" variable))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8664132146073047
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"delete\") (args variable (args (list (h variable)))))))"
+ ],
+ "distribution": [
+ 16,
+ 0
+ ],
+ "quality": 0.8554008072866465
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args variable (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)) (args variable))))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)) (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"del\") (args (args (args (list (t variable))))))) (compound (functor \"del\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 21,
+ 155
+ ],
+ "quality": 0.8535437992650724
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args variable)))) (compound (functor \"del\") (args (args variable))))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.845385684352757
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"delete\") (args variable))) (compound (functor \"delete\") (args variable)))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.845385684352757
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args variable (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)) (args variable))))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)) (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"del\") (args (args (args (list (t variable))))))) (compound (functor \"del\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 25,
+ 158
+ ],
+ "quality": 0.8389658632349006
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)) (args variable))))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)) (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"del\") (args (args (args (list (t variable))))))) (compound (functor \"del\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 25,
+ 156
+ ],
+ "quality": 0.837055718203718
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.815496657694811
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (args (list (t variable))))))))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.815496657694811
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)))))) (compound (functor \"del\") (args (args (args (list (h variable)))))))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.815496657694811
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args variable (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)) (args variable))))))",
+ "(clause (head (compound (functor \"del\") (args (args (args (list (t variable))))))) (compound (functor \"del\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 32,
+ 161
+ ],
+ "quality": 0.8133170492524149
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)))))) (binop \"\\=\" variable))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.7990326898491317
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.7990326898491317
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)))))) (binop variable \"\\==\"))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.7990326898491317
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (binop variable \"=\")))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.7990326898491317
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args variable (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)) (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"del\") (args (args (args (list (t variable))))))) (compound (functor \"del\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 38,
+ 159
+ ],
+ "quality": 0.7825207375818234
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (args variable))))) (compound (functor \"del\") (args (args (args (list (t variable)))))))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.7778461853105435
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"\\=\") (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.7778461853105435
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"\\=\") (compound (functor \"del\") (args variable)))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.7778461853105435
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)) (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"del\") (args (args (args (list (t variable))))))) (compound (functor \"del\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 47,
+ 165
+ ],
+ "quality": 0.7580333749731936
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.7517017140221434
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args variable))) (binop \"\\=\" variable))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.7517017140221434
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args variable (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)) (args variable))))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 2,
+ 25
+ ],
+ "quality": 0.746763415540722
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (args variable))))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"del\") (args variable))) (compound (functor \"insert\") (args variable)))"
+ ],
+ "distribution": [
+ 0,
+ 11
+ ],
+ "quality": 0.7314481033259684
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (args (list (t variable))))))) (compound (functor \"del\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 70,
+ 173
+ ],
+ "quality": 0.699662623234134
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args variable (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)) (args variable))))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 7,
+ 31
+ ],
+ "quality": 0.6871971251913926
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 0,
+ 7
+ ],
+ "quality": 0.6814775755254696
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)) (args variable))))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 9,
+ 32
+ ],
+ "quality": 0.6807877449850186
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 3,
+ 16
+ ],
+ "quality": 0.6432549088482765
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"del\") (args variable))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 4,
+ 20
+ ],
+ "quality": 0.6264207966829962
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)) (args variable))))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (h variable)))))) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 10,
+ 28
+ ],
+ "quality": 0.581720792487467
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"del\") (args variable))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 10,
+ 25
+ ],
+ "quality": 0.5799037859009714
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args variable (args (list (h variable)))))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 20,
+ 38
+ ],
+ "quality": 0.5647093308403234
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args variable (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)) (args variable))))))"
+ ],
+ "distribution": [
+ 134,
+ 184
+ ],
+ "quality": 0.5608601870295024
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 62,
+ 81
+ ],
+ "quality": 0.5359594019200824
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args variable))) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"del\") (args variable (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)) (args variable))))))"
+ ],
+ "distribution": [
+ 174,
+ 200
+ ],
+ "quality": 0.518985127711331
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args variable (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))) (compound (functor \"del\") (args (args variable))))"
+ ],
+ "distribution": [
+ 187,
+ 196
+ ],
+ "quality": 0.4985565256833396
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"del\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 6,
+ 15
+ ],
+ "quality": 0.4771191019402525
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"del\") (args (args (list (t variable)))))) (compound (functor \"del\") (args (args variable))))"
+ ],
+ "distribution": [
+ 257,
+ 212
+ ],
+ "quality": 0.4430781515633242
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/lists/divide_3/bugs.json b/prolog/problems/lists/divide_3/bugs.json
new file mode 100644
index 0000000..7a3d3a8
--- /dev/null
+++ b/prolog/problems/lists/divide_3/bugs.json
@@ -0,0 +1,597 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"divide\") (args (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"divide\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"divide\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (t variable))))))) (compound (functor \"divide\") (args variable)))",
+ "(clause (head (compound (functor \"divide\") (args (args \"[]\" (args \"[]\"))))))",
+ "(clause (head (compound (functor \"divide\") (args \"[]\" (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"divide\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"divide\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"divide\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (h variable)))) (args (args (list (h variable))))))))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable)) (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (h variable)) (args \"[]\"))))))",
+ "(clause (head (compound (functor \"divide\") (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (t variable)))))) (compound (functor \"divide\") (args (args variable))))",
+ "(clause (head (compound (functor \"divide\") (args (args (args (list (t variable))))))) (compound (functor \"divide\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (binop variable \"=\"))",
+ "(clause (head (compound (functor \"divide\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (args (args variable))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"divide\") (args (args variable))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"divide\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"divide\") (args (args (args variable))))) (compound (functor \"divide\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (t (list (t variable))))) (compound (functor \"divide\") (args variable)))",
+ "(clause (head (compound (functor \"divide\") (args (args (args variable))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (h variable))))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"divide\") (args (args variable)))) (compound (functor \"divide\") (args (args variable))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t \"[]\"))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable) (t \"[]\"))))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"divide\") (args \"[]\" (args variable)))))",
+ "(clause (binop \"=\" (list (t variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"divide\") (args \"[]\" (args (args variable))))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"divide\") (args variable)))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (compound (functor \"divide\") (args (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t \"[]\")) (args (args \"[]\"))))))",
+ "(clause (compound (functor \"divide\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (h variable))))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"conc\") (args variable (args (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t variable))))) (compound (functor \"divide\") (args variable)))",
+ "(clause (head (compound (functor \"divide\") (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t \"[]\")) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"divide\") (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"divide\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t variable))))) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"divide\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"divide\") (args (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"divide\") (args (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (args variable (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"divide\") (args (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"divide\") (args (args variable)))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"divide\") (args (args variable (args \"[]\"))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable)) (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (args (args variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"divide\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"divide\") (args (args variable))))",
+ "(clause (head (compound (functor \"divide\") (args (args (args variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop variable \"=\" (list (t variable))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (t \"[]\"))))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable) (t (list (t \"[]\"))))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t \"[]\")) (args variable)))))",
+ "(clause (compound (functor \"divide\") (args (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"divide\") (args (args variable (args variable))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (h variable) (t \"[]\"))))))))",
+ "(clause (compound (functor \"divide\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop \"=\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable))))) (binop \"=\" variable))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"divide\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"divide\") (args (args (args variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (t \"[]\")))) (args (list (h variable)))))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"divide\") (args (args (args variable)))))",
+ "(clause (compound (functor \"divide\") (args (args variable))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (h variable))))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (t \"[]\")))) (args (args (list (h variable))))))))",
+ "(clause (binop variable \"=\") (compound (functor \"divide\") (args variable)))",
+ "(clause (head (compound (functor \"divide\") (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (binop variable \"=\") (compound (functor \"divide\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (args (args variable))))) (compound (functor \"divide\") (args (args variable))))",
+ "(clause (binop variable \"=\") (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable)) (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (h variable))))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (binop \"=\" (list (t (list (t variable))))) (binop variable \"=\"))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (t variable))))))))",
+ "(clause (binop variable \"=\") (compound (functor \"divide\") (args (args variable))))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable))))) (compound (functor \"divide\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"divide\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (h variable))))))) (compound (functor \"divide\") (args (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable)) (args \"[]\")))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t \"[]\")) (args (args variable))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable))))))",
+ "(clause (compound (functor \"divide\") (args (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (h variable)))) (args (args variable))))))",
+ "(clause (binop variable \"=\" variable))",
+ "(clause (compound (functor \"divide\") (args (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (args variable)))) (compound (functor \"divide\") (args (args (list (t variable))))))",
+ "(clause (compound (functor \"divide\") (args variable)))",
+ "(clause (head (compound (functor \"divide\") (args (args (args variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"divide\") (args (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop variable \"=\" (list (t \"[]\"))))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (h variable) (t \"[]\")))))))",
+ "(clause (binop \"=\" (list (h variable) (t \"[]\"))))",
+ "(clause (binop \"=\" (list (t \"[]\"))))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (t \"[]\")))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable)) (args (list (t \"[]\")))))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"divide\") (args (args (args variable))))) (compound (functor \"divide\") (args (args (args (list (t variable)))))))",
+ "(clause (binop variable \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (binop variable \"=\") (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"divide\") (args (args (args variable)))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (t variable)))))) (compound (functor \"divide\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (h variable))))))))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (h variable))))))) (binop \"=\" variable))",
+ "(clause (binop variable \"=\") (binop \"=\" variable))",
+ "(clause (compound (functor \"divide\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"divide\") (args (args \"[]\" (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable))))) (compound (functor \"oddlen\") (args (list (h variable)))))",
+ "(clause (compound (functor \"oddlen\") (args (list (t variable)))) (compound (functor \"divide\") (args variable)))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (h variable)))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (t \"[]\")) (args \"[]\"))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable))))) (compound (functor \"evenlen\") (args (list (h variable)))))",
+ "(clause (compound (functor \"divide\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"divide\") (args (args (args (list (h variable))))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"divide\") (args (list (t variable))))) (compound (functor \"oddlen\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t variable))))))",
+ "(clause (head (compound (functor \"devide\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"divide\") (args variable (args (args \"[]\"))))))",
+ "(clause (compound (functor \"divide\") (args (args (args variable)))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (t (list (h variable)))))) (args (list (t (list (h variable)))))))))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (h variable)))))) (compound (functor \"evenlen\") (args (list (h variable)))))",
+ "(clause (binop variable \"=\") (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"divide\") (args variable (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (t variable))))))) (compound (functor \"divide\") (args (list (t variable)))))",
+ "(clause (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"divide\") (args (args variable)))) (compound (functor \"divide\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t \"[]\")) (args (list (t \"[]\")))))))",
+ "(clause (head (compound (functor \"divide\") (args (args (args (list (t (list (h variable))))))))) (compound (functor \"divide\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (t (list (t variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (compound (functor \"divide\") (args (args variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (t variable))))))) (compound (functor \"divide\") (args (list (h variable)))))",
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"divide\") (args (args (args variable)))) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (compound (functor \"divide\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"divide\") (args variable)))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable))))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (t variable)))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (t variable)) (args (list (t variable))))))))",
+ "(clause (compound (functor \"evenlen\") (args (list (t variable)))) (compound (functor \"divide\") (args variable)))",
+ "(clause (head (compound (functor \"devide\") (args (list (h variable))))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"devide\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (compound (functor \"divide\") (args (args variable))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"divide\") (args (args (args (list (t variable))))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"divide\") (args (args (args (list (h variable))))))) (compound (functor \"oddlen\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t variable))))) (compound (functor \"evenlen\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (t variable)))))) (compound (functor \"divide\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (h variable)))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"divide\") (args (args (binop \"|\" \"[]\"))))))",
+ "(clause (head (compound (functor \"divideL\") (args (args variable)))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"divide\") (args variable))))",
+ "(clause (head (compound (functor \"divide\") (args (args (args (list (t variable))))))) (compound (functor \"divide\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"divide\") (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"devide\") (args (list (h variable) (t (list (h \"[]\"))))))))",
+ "(clause (head (compound (functor \"devide\") (args (list (t (list (h \"[]\"))))))))",
+ "(clause (binop variable \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"divide\") (args (args variable)))) (compound (functor \"concat\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (args (binop \"|\" \"[]\") (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"divide\") (args (args (binop \"|\" \"[]\") (args (args (list (h variable)))))))))",
+ "(clause (head (compound (functor \"divide\") (args (args (binop variable \"|\") (args (args (list (h variable)))))))))",
+ "(clause (head (compound (functor \"divide\") (args variable (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"divide\") (args (args variable)))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"divide\") (args (args (args variable))))) (compound (functor \"concat\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (args (binop variable \"|\" \"[]\"))))))",
+ "(clause (head (compound (functor \"divide\") (args variable (args (binop \"|\" \"[]\"))))))",
+ "(clause (binop variable \"=\") (binop variable \"=\"))",
+ "(clause (head (compound (functor \"divideL\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (binop variable \">\"))",
+ "(clause (head (compound (functor \"divide2\") (args (list (t variable))))) (compound (functor \"divide\") (args variable)))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (t \"[]\")))) (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t \"[]\")) (args \"[]\")))))",
+ "(clause (head (compound (functor \"divideS\") (args (args (args variable))))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"divideS\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"divide\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (args (args (list (h variable))))))) (compound (functor \"divide\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t \"[]\")) (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t variable)) (args (args (list (h variable))))))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"divide\") (args (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (t (list (h variable)))))))) (compound (functor \"divide\") (args (args variable))))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"divide\") (args (args (args variable))))) (compound (functor \"divide2\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t variable))))) (compound (functor \"divide2\") (args variable)))",
+ "(clause (head (compound (functor \"divide\") (args (args (args (list (h variable))))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (t variable)))) (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (t \"[]\")))) (args (args variable))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (t variable)))) (args (args (list (t variable))))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t variable))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"divide\") (args variable))) (compound (functor \"divide\") (args variable)))",
+ "(clause (head (compound (functor \"dividel\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable))))) (compound (functor \"divide\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"divide2\") (args (args variable)))) (compound (functor \"divide\") (args (args variable))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (h \"[]\"))))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t variable)) (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (h variable)))))) (compound (functor \"divide\") (args (list (h variable)))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable) (t (list (h \"[]\"))))))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (args (args variable))))))"
+ ],
+ "distribution": [
+ 86,
+ 0
+ ],
+ "quality": 0.9785860066956276
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (args (args variable))))) (compound (functor \"divide\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 108,
+ 1
+ ],
+ "quality": 0.9720150880155988
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 61,
+ 0
+ ],
+ "quality": 0.968078588978822
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (args variable)))) (compound (functor \"divide\") (args (args variable))))"
+ ],
+ "distribution": [
+ 92,
+ 1
+ ],
+ "quality": 0.9663450177851911
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (args variable)))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 48,
+ 0
+ ],
+ "quality": 0.9570652224524285
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"divide\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 47,
+ 0
+ ],
+ "quality": 0.956022243308435
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 40,
+ 0
+ ],
+ "quality": 0.9468348385402378
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (list (h variable)) (args variable)))))"
+ ],
+ "distribution": [
+ 39,
+ 0
+ ],
+ "quality": 0.9451487184421172
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (list (t \"[]\")) (args variable)))))"
+ ],
+ "distribution": [
+ 32,
+ 0
+ ],
+ "quality": 0.9297026017780392
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (args variable (args variable))))))"
+ ],
+ "distribution": [
+ 31,
+ 0
+ ],
+ "quality": 0.9268053674110606
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"divide\") (args (args variable))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 31,
+ 0
+ ],
+ "quality": 0.9268053674110606
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (args variable)))) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 28,
+ 0
+ ],
+ "quality": 0.9164992286716568
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (list (h variable))))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 27,
+ 0
+ ],
+ "quality": 0.9140683253475687
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"divide\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 27,
+ 0
+ ],
+ "quality": 0.9140683253475687
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"divide\") (args (args variable))))"
+ ],
+ "distribution": [
+ 27,
+ 0
+ ],
+ "quality": 0.9140683253475687
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (args variable (args \"[]\"))))))"
+ ],
+ "distribution": [
+ 40,
+ 1
+ ],
+ "quality": 0.9101759348576428
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=\") (compound (functor \"divide\") (args variable)))"
+ ],
+ "distribution": [
+ 24,
+ 0
+ ],
+ "quality": 0.8983105052699809
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=\") (compound (functor \"divide\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 23,
+ 0
+ ],
+ "quality": 0.8933309419052631
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"divide\") (args (args variable))))"
+ ],
+ "distribution": [
+ 23,
+ 0
+ ],
+ "quality": 0.8933309419052631
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (t (list (t variable))))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 22,
+ 0
+ ],
+ "quality": 0.8868685351234835
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 22,
+ 0
+ ],
+ "quality": 0.8868685351234835
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (h variable))))))) (compound (functor \"conc\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 22,
+ 0
+ ],
+ "quality": 0.8868685351234835
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable)) (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (h variable)) (args \"[]\"))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (t variable))))))) (compound (functor \"divide\") (args variable)))",
+ "(clause (head (compound (functor \"divide\") (args (args (args (list (t variable))))))) (compound (functor \"divide\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 10,
+ 114
+ ],
+ "quality": 0.8852394420802692
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (t variable))))))))"
+ ],
+ "distribution": [
+ 20,
+ 0
+ ],
+ "quality": 0.871192237374898
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (list (h variable)) (args \"[]\")))))"
+ ],
+ "distribution": [
+ 19,
+ 0
+ ],
+ "quality": 0.8637639695477869
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (list (h variable))))) (compound (functor \"divide\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 19,
+ 0
+ ],
+ "quality": 0.8637639695477869
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (args variable)))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 19,
+ 0
+ ],
+ "quality": 0.8637639695477869
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.8531485099731269
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable)) (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (h variable)) (args \"[]\"))))))",
+ "(clause (head (compound (functor \"divide\") (args (args (args (list (t variable))))))) (compound (functor \"divide\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 19,
+ 119
+ ],
+ "quality": 0.8320520793830597
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (h variable)) (args \"[]\"))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (t variable))))))) (compound (functor \"divide\") (args variable)))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (h variable)))) (args (args (list (h variable))))))))"
+ ],
+ "distribution": [
+ 23,
+ 119
+ ],
+ "quality": 0.8078706275007033
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (t variable))))))) (compound (functor \"divide\") (args variable)))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (h variable)) (args \"[]\"))))))",
+ "(clause (head (compound (functor \"divide\") (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))"
+ ],
+ "distribution": [
+ 4,
+ 28
+ ],
+ "quality": 0.7271076007261638
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"divide\") (args (list (t (list (t variable))))))) (compound (functor \"divide\") (args variable)))",
+ "(clause (head (compound (functor \"divide\") (args (args (list (h variable) (t \"[]\")))))))"
+ ],
+ "distribution": [
+ 0,
+ 5
+ ],
+ "quality": 0.39100325275123204
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/lists/dup_2/bugs.json b/prolog/problems/lists/dup_2/bugs.json
new file mode 100644
index 0000000..c62360a
--- /dev/null
+++ b/prolog/problems/lists/dup_2/bugs.json
@@ -0,0 +1,537 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args variable)))",
+ "(clause (head (compound (functor \"dup\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"dup\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"dup\") (args (args (list (h variable) (t (list (h variable)))))))))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable)) (args (list (t (list (h variable)))))))))",
+ "(clause (head (compound (functor \"dup\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"dup\") (args (args \"[]\")))))",
+ "(clause (binop \"=\" (list (h variable) (t (list (h variable))))))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"dup\") (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"dup\") (args (args (list (t (list (t variable)))))))) (compound (functor \"dup\") (args (args variable))))",
+ "(clause (compound (functor \"dup\") (args (args variable))) (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"dup\") (args variable)))",
+ "(clause (binop variable \"=\"))",
+ "(clause (head (compound (functor \"dup\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"dup\") (args (args variable)))) (compound (functor \"dup\") (args (args variable))))",
+ "(clause (head (compound (functor \"dup\") (args (args variable)))))",
+ "(clause (compound (functor \"dup\") (args (args variable))) (binop \"=\" (list (t variable))))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))))",
+ "(clause (binop variable \"=\") (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"dup\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"dup\") (args (list (t \"[]\"))))))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable) (t \"[]\"))))))",
+ "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (binop variable \"=\"))",
+ "(clause (compound (functor \"dup\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t (list (t variable))))) (compound (functor \"dup\") (args (args variable))))",
+ "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (compound (functor \"dup\") (args (args variable))))",
+ "(clause (head (compound (functor \"dup\") (args (list (t \"[]\")) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"dup\") (args (args (list (h variable) (t variable)))))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (binop variable \"=\") (compound (functor \"dup\") (args (args variable))))",
+ "(clause (head (compound (functor \"dup\") (args (list (t variable)) (args (list (t (list (t variable)))))))))",
+ "(clause (binop variable \"=\") (binop variable \"=\"))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable)) (args (list (t variable)))))))",
+ "(clause (binop variable \"=\") (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"dup\") (args (list (t \"[]\")) (args (list (t (list (h variable)))))))))",
+ "(clause (compound (functor \"conc\") (args variable (args variable))))",
+ "(clause (head (compound (functor \"dup\") (args variable (args (list (h variable)))))))",
+ "(clause (binop \"=\" (list (t (list (t variable))))) (compound (functor \"dup\") (args variable)))",
+ "(clause (head (compound (functor \"dup\") (args (list (t variable))))))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"dup\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"dup\") (args (args (list (h variable) (t (list (h variable))))))))",
+ "(clause (compound (functor \"conc\") (args (list (h variable) (t (list (h variable)))))))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"conc\") (args (list (t (list (h variable)))))))",
+ "(clause (head (compound (functor \"dup\") (args variable (args (list (t (list (h variable)))))))))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (head (compound (functor \"dup\") (args (args (list (t variable)))))) (compound (functor \"dup\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable) (t variable))))",
+ "(clause (binop \"=\" variable))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"dup\") (args variable)))",
+ "(clause (compound (functor \"dup\") (args (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"dup\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"dup\") (args (args (list (t (list (t variable)))))))))",
+ "(clause (binop \"=\" (list (t variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"dup\") (args (args variable))))",
+ "(clause (head (compound (functor \"dup\") (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable)) (args (list (t (list (t \"[]\")))))))))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (binop \"is\" (list (h variable))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"dup\") (args (args variable))))",
+ "(clause (head (compound (functor \"dup\") (args (args (list (h variable) (t (list (t \"[]\")))))))))",
+ "(clause (head (compound (functor \"dup\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"dup\") (args (args (list (t (list (h variable))))))))",
+ "(clause (binop variable \"=\") (compound (functor \"dup\") (args variable)))",
+ "(clause (head (compound (functor \"dup\") (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"dup\") (args (args (list (t (list (h variable) (t \"[]\")))))))))",
+ "(clause (head (compound (functor \"dup\") (args (args (list (t (list (t variable)))))))) (compound (functor \"dup\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (list (h variable)) (args (list (h variable))))))",
+ "(clause (head (compound (functor \"dup\") (args (args (list (t (list (t \"[]\")))))))))",
+ "(clause (head (compound (functor \"dup\") (args (list (t \"[]\")) (args variable)))))",
+ "(clause (head (compound (functor \"dup\") (args (args (list (h variable)))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"dup\") (args variable))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"dup\") (args (list (t \"[]\")) (args (list (t (list (t \"[]\")))))))))",
+ "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"dup\") (args (args (list (t variable)))))))",
+ "(clause (binop variable \"=\") (binop \"=\" variable))",
+ "(clause (head (compound (functor \"dup\") (args (args (list (t variable)))))) (binop variable \"=\"))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"dup\") (args variable))) (compound (functor \"dup\") (args variable)))",
+ "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args (list (h variable)))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"dup\") (args (args variable)))) (compound (functor \"dup\") (args variable)))",
+ "(clause (head (compound (functor \"dup\") (args (args variable)))) (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (binop \"is\" (list (t variable))))",
+ "(clause (head (compound (functor \"dup\") (args (list (t \"[]\")) (args (list (t variable)))))))",
+ "(clause (compound (functor \"dup\") (args variable (args variable))))",
+ "(clause (head (compound (functor \"dup\") (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (list (h variable)))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (compound (functor \"dup\") (args variable)) (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (head (compound (functor \"dup\") (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"dup\") (args (args variable)))) (compound (functor \"concat\") (args (args (args variable)))))",
+ "(clause (binop \"is\" (list (h variable) (t variable))))",
+ "(clause (compound (functor \"dup\") (args (args variable))) (binop variable \"=\"))",
+ "(clause (binop variable \"=\" (list (t (list (t variable))))))",
+ "(clause (head (compound (functor \"dup\") (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"insert\") (args variable)))",
+ "(clause (head (compound (functor \"dup\") (args (args (list (h variable)))))) (compound (functor \"dup\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"dup\") (args (args (binop \"|\" variable))))) (binop variable \"==\"))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"dup\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"dup\") (args variable)))",
+ "(clause (head (compound (functor \"dup\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args (args variable))))",
+ "(clause (binop variable \"=\") (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (compound (functor \"dup\") (args (args variable))) (binop \"=\" (list (t (list (t (list (h variable))))))))",
+ "(clause (head (compound (functor \"dup\") (args (args variable)))) (compound (functor \"dup\") (args (args (list (t (list (t variable))))))))",
+ "(clause (head (compound (functor \"dup\") (args (args variable)))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"dup1\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"dup\") (args variable))) (compound (functor \"dup1\") (args variable)))",
+ "(clause (binop variable \"is\") (binop \"is\" (list (h variable))))",
+ "(clause (compound (functor \"dup\") (args (list (h variable) (t (list (h variable)))))))",
+ "(clause (compound (functor \"dup1\") (args variable (args \"[]\"))))",
+ "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dum\") (args variable)))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"dup\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"dup1\") (args (list (t variable))))) (compound (functor \"dup1\") (args variable)))",
+ "(clause (head (compound (functor \"dup1\") (args (args variable (args variable))))))",
+ "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"dup\") (args (args (list (t (list (t variable)))))))) (compound (functor \"dup\") (args (args (list (h variable))))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"dup\") (args variable)))",
+ "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (binop \"is\" (list (t variable))))",
+ "(clause (compound (functor \"dup1\") (args (args \"[]\"))))",
+ "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args (args (list (t (list (t variable))))))))",
+ "(clause (head (compound (functor \"dup1\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"insert\") (args variable)))",
+ "(clause (compound (functor \"dup\") (args variable)) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"dup\") (args (args (list (t (list (h variable)))))))) (compound (functor \"dup\") (args (args (list (h variable))))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args (args variable)))) (compound (functor \"dup\") (args (args variable))))"
+ ],
+ "distribution": [
+ 83,
+ 0
+ ],
+ "quality": 0.9793745051956579
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 69,
+ 0
+ ],
+ "quality": 0.9745611611669687
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 52,
+ 0
+ ],
+ "quality": 0.965011287140588
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args variable)))",
+ "(clause (head (compound (functor \"dup\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"dup\") (args (args (list (t (list (t variable)))))))) (compound (functor \"dup\") (args (args variable))))"
+ ],
+ "distribution": [
+ 2,
+ 104
+ ],
+ "quality": 0.9512545556592722
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (binop \"=\" (list (t (list (t variable))))))"
+ ],
+ "distribution": [
+ 31,
+ 0
+ ],
+ "quality": 0.9365430966407702
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"dup\") (args (args variable))))"
+ ],
+ "distribution": [
+ 30,
+ 0
+ ],
+ "quality": 0.9342281690211035
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args (args (list (h variable) (t variable)))))))"
+ ],
+ "distribution": [
+ 25,
+ 0
+ ],
+ "quality": 0.9187546835926848
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args \"[]\" (args \"[]\")))))",
+ "(clause (compound (functor \"dup\") (args (args variable))) (binop \"=\" (list (t (list (t variable))))))"
+ ],
+ "distribution": [
+ 2,
+ 53
+ ],
+ "quality": 0.9074868141619565
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args (list (t variable)) (args (list (t (list (t variable)))))))))"
+ ],
+ "distribution": [
+ 22,
+ 0
+ ],
+ "quality": 0.9049826183187104
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args variable (args (list (h variable)))))))"
+ ],
+ "distribution": [
+ 20,
+ 0
+ ],
+ "quality": 0.8957228443022562
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (t (list (t variable))))) (compound (functor \"dup\") (args variable)))"
+ ],
+ "distribution": [
+ 20,
+ 0
+ ],
+ "quality": 0.8957228443022562
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=\") (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 20,
+ 0
+ ],
+ "quality": 0.8957228443022562
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"dup\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.880106470153706
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=\") (compound (functor \"dup\") (args (args variable))))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.880106470153706
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args variable (args variable))))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8712586113449907
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args (list (t variable))))))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8712586113449907
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=\") (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 16,
+ 0
+ ],
+ "quality": 0.8628302434186279
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 16,
+ 0
+ ],
+ "quality": 0.8628302434186279
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args \"[]\"))))",
+ "(clause (compound (functor \"dup\") (args (args variable))) (binop \"=\" (list (t (list (t variable))))))"
+ ],
+ "distribution": [
+ 6,
+ 60
+ ],
+ "quality": 0.8581378927996048
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" (list (t (list (t variable))))))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.851718483494776
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args variable)))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable)) (args (list (t (list (h variable)))))))))",
+ "(clause (head (compound (functor \"dup\") (args \"[]\" (args \"[]\")))))"
+ ],
+ "distribution": [
+ 16,
+ 116
+ ],
+ "quality": 0.8504056912099205
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args (args (list (t variable)))))) (compound (functor \"dup\") (args (args variable))))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.8385349971208302
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args variable)))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"dup\") (args \"[]\" (args \"[]\")))))"
+ ],
+ "distribution": [
+ 20,
+ 117
+ ],
+ "quality": 0.8258965557064576
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (compound (functor \"dup\") (args variable)))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.8255156458958964
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args (args (list (t (list (t variable)))))))))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.8255156458958964
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (h variable) (t variable))))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.8080943376484535
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args (list (t \"[]\")) (args variable)))))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.7870660531987647
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=\") (compound (functor \"dup\") (args variable)))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.7870660531987647
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args variable))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.7764400337069141
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args variable)))",
+ "(clause (head (compound (functor \"dup\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"dup\") (args (args variable)))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 13,
+ 53
+ ],
+ "quality": 0.7345604560948691
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args variable)))",
+ "(clause (head (compound (functor \"dup\") (args \"[]\" (args \"[]\")))))",
+ "(clause (binop \"=\" (list (h variable) (t (list (h variable))))))"
+ ],
+ "distribution": [
+ 12,
+ 50
+ ],
+ "quality": 0.7336334876105481
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args (list (t variable))))) (compound (functor \"dup\") (args variable)))",
+ "(clause (head (compound (functor \"dup\") (args \"[]\" (args \"[]\")))))"
+ ],
+ "distribution": [
+ 65,
+ 175
+ ],
+ "quality": 0.7157343899492171
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args \"[]\" (args \"[]\")))))",
+ "(clause (binop \"=\" (list (h variable) (t (list (h variable))))))"
+ ],
+ "distribution": [
+ 25,
+ 74
+ ],
+ "quality": 0.7065553916027705
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"dup\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"dup\") (args (list (h variable))))) (binop \"=\" (list (t (list (h variable))))))"
+ ],
+ "distribution": [
+ 28,
+ 56
+ ],
+ "quality": 0.6107009286023725
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/lists/insert_3/bugs.json b/prolog/problems/lists/insert_3/bugs.json
new file mode 100644
index 0000000..b863ff5
--- /dev/null
+++ b/prolog/problems/lists/insert_3/bugs.json
@@ -0,0 +1,669 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"insert\") (args variable))) (compound (functor \"insert\") (args variable)))",
+ "(clause (head (compound (functor \"insert\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"insert\") (args variable (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t variable)))))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args variable (args (list (t variable))))))))",
+ "(clause (head (compound (functor \"insert\") (args variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable)) (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (t variable))))))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"insert\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"insert\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"insert\") (args variable (args \"[]\")))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args variable))))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"insert\") (args (args \"[]\" (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"insert\") (args variable))) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"insert\") (args (args variable)))) (compound (functor \"del\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args variable))))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable)))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args variable))))))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (binop variable \"=\"))",
+ "(clause (head (compound (functor \"insert\") (args variable))))",
+ "(clause (head (compound (functor \"insert\") (args variable (args (args (list (t (list (h variable))))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args variable)))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t (list (h variable)))) (args (list (t (list (t (list (h variable))))))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args variable))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"insert\") (args (args variable)))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args \"[]\" (args variable))))))",
+ "(clause (head (compound (functor \"insert\") (args variable))) (compound (functor \"insert\") (args (args (args (list (h variable)))))))",
+ "(clause (compound (functor \"insert\") (args variable (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable)) (args (list (t (list (h variable))))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t (list (t variable)))) (args (list (t (list (t (list (t variable))))))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t (list (t \"[]\")))) (args (list (h variable))))))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t (list (t \"[]\")))))))))",
+ "(clause (head (compound (functor \"insert\") (args variable (args (list (t (list (t \"[]\")))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable) (t (list (t \"[]\")))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t (list (h variable) (t \"[]\")))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (h variable))))))) (compound (functor \"insert\") (args variable)))",
+ "(clause (binop variable \"=\") (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t \"[]\")))))))",
+ "(clause (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable) (t \"[]\")))))))",
+ "(clause (binop variable \"=\") (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"insert\") (args variable (args (list (t \"[]\")))))))",
+ "(clause (head (compound (functor \"insert\") (args variable))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t (list (t \"[]\")))) (args (list (t (list (t (list (h variable))))))))))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t \"[]\")) (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"insert\") (args variable))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t (list (t \"[]\")))) (args (list (t (list (h variable))))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (h variable) (t (list (t (list (t \"[]\"))))))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (t (list (t (list (t \"[]\"))))))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (t \"[]\"))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (t variable))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t variable)) (args (list (t (list (t variable))))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t (list (t \"[]\")))) (args (list (t (list (t (list (t \"[]\"))))))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (t (list (t (list (h variable) (t \"[]\"))))))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable)) (args (list (t (list (t (list (t \"[]\"))))))))))))",
+ "(clause (head (compound (functor \"insert\") (args variable))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (h variable) (t \"[]\"))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (t (list (h variable) (t (list (t \"[]\"))))))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t (list (h variable)))) (args (list (t (list (t (list (t \"[]\"))))))))))))",
+ "(clause (head (compound (functor \"insert\") (args variable (args (args (list (t (list (t (list (t \"[]\"))))))))))))",
+ "(clause (head (compound (functor \"insert\") (args variable (args (args (list (t \"[]\"))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"insert\") (args (args variable (args variable))))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"insert\") (args variable)))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"insert\") (args (args \"[]\" (args (list (t \"[]\"))))))))",
+ "(clause (head (compound (functor \"insertF\") (args variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"insert\") (args variable (args (args (list (t variable))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t variable)))))) (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (head (compound (functor \"insert\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"insertL\") (args variable (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"insertL\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"insert\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"insert\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"insertL\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"insertL\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"insert\") (args (args (args variable))))) (compound (functor \"insert\") (args (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"insert\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"insertL\") (args (args \"[]\" (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"insertL\") (args variable))) (compound (functor \"insertL\") (args variable)))",
+ "(clause (head (compound (functor \"insertL\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"insert\") (args variable))) (binop \"=\" variable))",
+ "(clause (compound (functor \"insertL\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"insert\") (args (args variable (args (list (t variable)))))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"insertL\") (args (args variable))))",
+ "(clause (binop variable \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable)))))) (compound (functor \"insert\") (args (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"insert\") (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable)) (args (list (t (list (t \"[]\"))))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t \"[]\")) (args (list (t (list (h variable))))))))))",
+ "(clause (head (compound (functor \"insert\") (args variable (args (args (list (t (list (t \"[]\"))))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (h variable) (t (list (t \"[]\"))))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (t (list (t \"[]\"))))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (t (list (h variable) (t \"[]\"))))))))))",
+ "(clause (head (compound (functor \"insertF\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (h variable) (t \"[]\"))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (t variable))))))) (compound (functor \"insert\") (args (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t variable)))))) (compound (functor \"insert\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (h variable))))))) (compound (functor \"insert\") (args (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t variable)))))) (binop \"=\" (list (t variable))))",
+ "(clause (binop variable \"=\" (list (t \"[]\"))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t \"[]\")) (args (list (t (list (t \"[]\"))))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args variable)))) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (t \"[]\"))))",
+ "(clause (head (compound (functor \"insert\") (args variable (args (args (list (t (list (t (list (h variable))))))))))))",
+ "(clause (binop variable \"=\") (binop variable \"=\"))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (args variable)))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t (list (h variable)))) (args (list (t (list (h variable))))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args variable)))) (compound (functor \"insert\") (args (args (args (list (t variable)))))))",
+ "(clause (compound (functor \"insert\") (args variable)) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args variable)))) (compound (functor \"delete\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"insert\") (args variable))) (binop \"=\" (list (t variable))))",
+ "(clause (binop \"=\" (list (t variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"insert\") (args (args (args variable))))) (compound (functor \"delete\") (args (args variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable)))))) (compound (functor \"insert\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"insert\") (args (args variable (args (list (t (list (h variable))))))))))",
+ "(clause (head (compound (functor \"insert\") (args variable))) (compound (functor \"delete\") (args variable)))",
+ "(clause (compound (functor \"insert\") (args variable)))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t (list (h variable)))))))))",
+ "(clause (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop variable \"=\") (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t (list (h variable)))))))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args variable)))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t variable)))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable)))))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"insertF\") (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable)) (args (list (t variable))))))))",
+ "(clause (head (compound (functor \"insert\") (args variable (args (list (h variable)))))))",
+ "(clause (binop \"=\" (list (t (list (t variable))))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (h variable))))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"insert\") (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t (list (t \"[]\")))) (args (list (t variable))))))))",
+ "(clause (compound (functor \"insert\") (args (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (args variable)))))) (compound (functor \"insert\") (args (args (args (args variable))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t \"[]\")) (args (list (t variable))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t variable)))))) (compound (functor \"conc\") (args (args (list (t variable))))))",
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (compound (functor \"insert\") (args (args \"[]\" (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"insert\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"insert\") (args (args \"[]\"))))",
+ "(clause (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"insert\") (args variable (args \"[]\"))))",
+ "(clause (head (compound (functor \"insert\") (args (args variable)))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (compound (functor \"insertF\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t variable)))))) (compound (functor \"insert\") (args (args (args (list (t variable)))))))",
+ "(clause (compound (functor \"insert\") (args (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args variable))))) (compound (functor \"insert\") (args (args (args (args variable))))))",
+ "(clause (head (compound (functor \"insert\") (args variable (args (args variable))))))",
+ "(clause (compound (functor \"append\") (args (args variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (t variable))))))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (t (list (h variable))))))))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (t (list (t variable))))))))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"insert\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"insert\") (args (args variable)))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"insertF\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args variable))))) (compound (functor \"append\") (args (args (args variable)))))",
+ "(clause (compound (functor \"insertF\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"conc\") (args (args (list (t variable))))))",
+ "(clause (compound (functor \"insertF\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"insertF\") (args (args (args variable))))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"insert\") (args (args (list (h variable))))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args (args variable))))) (compound (functor \"insert\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 96,
+ 0
+ ],
+ "quality": 0.9809983489905899
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable)))))))"
+ ],
+ "distribution": [
+ 84,
+ 0
+ ],
+ "quality": 0.9779557461869847
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args (args variable))))))"
+ ],
+ "distribution": [
+ 64,
+ 0
+ ],
+ "quality": 0.9701372216334027
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args variable))))"
+ ],
+ "distribution": [
+ 52,
+ 0
+ ],
+ "quality": 0.9623158836715362
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args (args variable))))) (compound (functor \"del\") (args (args variable))))"
+ ],
+ "distribution": [
+ 1,
+ 78
+ ],
+ "quality": 0.9585068382186356
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 44,
+ 0
+ ],
+ "quality": 0.9546866918174765
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args (list (t variable)))))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"insert\") (args variable (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args variable (args (list (t variable))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable)) (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (t variable))))))) (compound (functor \"insert\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 2,
+ 108
+ ],
+ "quality": 0.9489425014747489
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args variable)))) (compound (functor \"del\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 2,
+ 79
+ ],
+ "quality": 0.9462265906785803
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args variable)))) (compound (functor \"insert\") (args (args variable))))"
+ ],
+ "distribution": [
+ 33,
+ 0
+ ],
+ "quality": 0.9373562145752073
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args variable))) (compound (functor \"insert\") (args (args (args (list (h variable)))))))"
+ ],
+ "distribution": [
+ 31,
+ 0
+ ],
+ "quality": 0.9334733640178655
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args (list (t (list (h variable)))) (args (list (t (list (t (list (h variable))))))))))))"
+ ],
+ "distribution": [
+ 27,
+ 0
+ ],
+ "quality": 0.9210026715389256
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (h variable))))))) (compound (functor \"insert\") (args variable)))"
+ ],
+ "distribution": [
+ 25,
+ 0
+ ],
+ "quality": 0.914160398310297
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args variable (args (args (list (t (list (h variable))))))))))"
+ ],
+ "distribution": [
+ 38,
+ 1
+ ],
+ "quality": 0.9137268661238094
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=\") (compound (functor \"insert\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 23,
+ 0
+ ],
+ "quality": 0.9057307439251511
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args variable))) (compound (functor \"conc\") (args (list (h variable)))))"
+ ],
+ "distribution": [
+ 21,
+ 0
+ ],
+ "quality": 0.8952422262460376
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args variable))) (binop \"=\" (list (t (list (h variable))))))"
+ ],
+ "distribution": [
+ 20,
+ 0
+ ],
+ "quality": 0.8883865000593553
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (t \"[]\"))))))))"
+ ],
+ "distribution": [
+ 19,
+ 0
+ ],
+ "quality": 0.8838682912904711
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"insert\") (args variable)))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.8761554549819403
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (t variable))))))))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8673982968475626
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args (list (t variable)))))))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8673982968475626
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args (list (t variable)))))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"insert\") (args variable (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (t variable))))))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable)) (args (list (h variable))))))))"
+ ],
+ "distribution": [
+ 13,
+ 111
+ ],
+ "quality": 0.8622038337735494
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args (args variable))))) (compound (functor \"insert\") (args (args (args (list (t variable)))))))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.8444915571428488
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.8444915571428488
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args variable (args (list (t variable))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (t variable))))))) (compound (functor \"insert\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 17,
+ 110
+ ],
+ "quality": 0.8396242375702132
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args variable (args (args (list (t variable))))))))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.8324450355202406
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable)))))) (compound (functor \"insert\") (args (args (args (list (h variable)))))))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.8169111707967117
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.8169111707967117
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args variable))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.8169111707967117
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args (list (t variable)))))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (h variable)) (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (t variable))))))) (compound (functor \"insert\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 23,
+ 118
+ ],
+ "quality": 0.8084559536708993
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args variable)))) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.7782285881315864
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args variable (args (list (t variable))))))))",
+ "(clause (compound (functor \"insert\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args variable))))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 2,
+ 23
+ ],
+ "quality": 0.7672724265740091
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args (args variable))))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.7530227654833378
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args variable)))) (compound (functor \"delete\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.7530227654833378
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args variable))) (compound (functor \"insert\") (args variable)))",
+ "(clause (head (compound (functor \"insert\") (args variable (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args (list (t variable))))))) (compound (functor \"insert\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 34,
+ 114
+ ],
+ "quality": 0.740004128093178
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args variable))) (compound (functor \"insert\") (args variable)))",
+ "(clause (head (compound (functor \"insert\") (args (args (list (t variable)))))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"insert\") (args (args variable (args (list (t variable))))))))"
+ ],
+ "distribution": [
+ 40,
+ 126
+ ],
+ "quality": 0.7320278311098433
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args variable (args (list (t (list (h variable))))))))))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7148255487494682
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (t variable))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7148255487494682
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=\") (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7148255487494682
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"insert\") (args variable)) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7148255487494682
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args (args (list (t (list (h variable)))))))) (compound (functor \"insert\") (args (args variable))))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7148255487494682
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"insert\") (args variable))) (compound (functor \"insert\") (args variable)))",
+ "(clause (head (compound (functor \"insert\") (args (args variable (args (list (t variable))))))))",
+ "(clause (head (compound (functor \"insert\") (args (args (args variable))))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 7,
+ 29
+ ],
+ "quality": 0.6741379300408554
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"conc\") (args (args (list (t variable))))))"
+ ],
+ "distribution": [
+ 0,
+ 5
+ ],
+ "quality": 0.5886120313182593
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/lists/memb_2/bugs.json b/prolog/problems/lists/memb_2/bugs.json
new file mode 100644
index 0000000..213f330
--- /dev/null
+++ b/prolog/problems/lists/memb_2/bugs.json
@@ -0,0 +1,419 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"memb\") (args variable))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"memb\") (args variable (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (t variable)))))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"memb\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"memb\") (args variable))) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"memb\") (args variable))))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (h variable)))))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"memb\") (args variable))) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" variable))",
+ "(clause (binop variable \"=\"))",
+ "(clause (head (compound (functor \"memb\") (args (args variable)))) (binop \"=\" variable))",
+ "(clause (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (head (compound (functor \"memb\") (args variable))) (binop variable \"==\"))",
+ "(clause (head (compound (functor \"memb\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"memb\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (t (list (h variable)))))))))",
+ "(clause (head (compound (functor \"member\") (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (h variable)))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"memb\") (args variable))) (compound (functor \"member\") (args variable)))",
+ "(clause (head (compound (functor \"memb\") (args variable))) (binop variable \"is\"))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (t (list (h variable)))))))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"member\") (args variable))) (compound (functor \"member\") (args variable)))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (t variable)))))) (compound (functor \"memb\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"memb\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"member\") (args variable (args (list (h variable)))))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"memb\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"memb\") (args variable))) (binop \"=\" variable))",
+ "(clause (binop (list (t variable)) \"=\"))",
+ "(clause (head (compound (functor \"member\") (args (args (list (t variable)))))) (compound (functor \"member\") (args (args variable))))",
+ "(clause (head (compound (functor \"member\") (args (args (list (t variable)))))))",
+ "(clause (binop (list (t variable)) \"=\") (compound (functor \"memb\") (args (args variable))))",
+ "(clause (compound (functor \"memb\") (args variable (args (list (h variable))))))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (h variable)))))) (binop \"==\" variable))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (t variable)))))) (compound (functor \"member\") (args (args variable))))",
+ "(clause (binop (list (h variable)) \"=\"))",
+ "(clause (head (compound (functor \"memb\") (args variable))) (binop \"==\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"==\" variable))",
+ "(clause (head (compound (functor \"memb\") (args variable))) (compound (functor \"memb\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"memb\") (args (args variable))))",
+ "(clause (binop variable \"\\==\" \"[]\"))",
+ "(clause (binop variable \"=\") (binop variable \"=\"))",
+ "(clause (binop \"\\==\" \"[]\"))",
+ "(clause (binop variable \"=\") (compound (functor \"memb\") (args variable)))",
+ "(clause (binop (list (h variable)) \"=\") (binop \"is\" variable))",
+ "(clause (binop variable \"\\==\") (compound (functor \"memb\") (args (args variable))))",
+ "(clause (binop variable \"is\") (compound (functor \"memb\") (args variable)))",
+ "(clause (binop \"=\" (list (t variable))) (binop variable \"\\==\"))",
+ "(clause (head (compound (functor \"memb\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "rules": [
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"memb\") (args variable (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (t variable)))))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (t variable)))))))"
+ ],
+ "distribution": [
+ 5,
+ 204
+ ],
+ "quality": 0.9643056285818753
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args variable))))"
+ ],
+ "distribution": [
+ 57,
+ 1
+ ],
+ "quality": 0.9460329767668465
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args variable))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"memb\") (args variable (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (t variable)))))))"
+ ],
+ "distribution": [
+ 14,
+ 211
+ ],
+ "quality": 0.9263098442287214
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"memb\") (args variable)))"
+ ],
+ "distribution": [
+ 23,
+ 0
+ ],
+ "quality": 0.9128941758478384
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (t variable)))))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (t variable)))))))"
+ ],
+ "distribution": [
+ 20,
+ 217
+ ],
+ "quality": 0.9042815604997515
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args variable))) (binop variable \"==\"))"
+ ],
+ "distribution": [
+ 20,
+ 0
+ ],
+ "quality": 0.899542908369537
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 19,
+ 0
+ ],
+ "quality": 0.8941585189962913
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"memb\") (args variable (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (t variable)))))))"
+ ],
+ "distribution": [
+ 24,
+ 209
+ ],
+ "quality": 0.8848214260437154
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args (args (list (t (list (h variable)))))))))"
+ ],
+ "distribution": [
+ 16,
+ 0
+ ],
+ "quality": 0.8737724594285132
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args variable))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (t variable)))))))"
+ ],
+ "distribution": [
+ 34,
+ 225
+ ],
+ "quality": 0.8585277155014358
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args variable))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"memb\") (args variable (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (t variable)))))) (compound (functor \"memb\") (args (args variable))))"
+ ],
+ "distribution": [
+ 31,
+ 205
+ ],
+ "quality": 0.8557817146312238
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"member\") (args (args (list (h variable)))))))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.8456914738034811
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args (args (list (h variable)))))) (compound (functor \"memb\") (args variable)))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.8456914738034811
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args (args (list (t variable)))))) (compound (functor \"memb\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.8334613960489493
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"memb\") (args (args (list (t variable))))))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.8334613960489493
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args (args (list (t (list (h variable)))))))) (compound (functor \"memb\") (args (args variable))))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.8334613960489493
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"member\") (args variable (args (list (h variable)))))))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.8334613960489493
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"member\") (args variable))) (compound (functor \"member\") (args variable)))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.8334613960489493
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"memb\") (args variable)))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.8153596937336334
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args variable))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (t variable)))))) (compound (functor \"memb\") (args (args variable))))"
+ ],
+ "distribution": [
+ 47,
+ 220
+ ],
+ "quality": 0.8119686948654249
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args variable))) (binop variable \"is\"))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7783041821302139
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args (args (list (t variable)))))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 0,
+ 11
+ ],
+ "quality": 0.7725109062352901
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args variable))) (compound (functor \"memb\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 6,
+ 31
+ ],
+ "quality": 0.7322928410118167
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args variable))) (binop \"==\" variable))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.7146224416391088
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args variable))) (compound (functor \"memb\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.7146224416391088
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args variable))) (compound (functor \"memb\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 20,
+ 60
+ ],
+ "quality": 0.6840202801136779
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"memb\") (args (args variable))))"
+ ],
+ "distribution": [
+ 6,
+ 0
+ ],
+ "quality": 0.6752881577616756
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=\") (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 6,
+ 0
+ ],
+ "quality": 0.6752881577616756
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=\") (compound (functor \"memb\") (args variable)))"
+ ],
+ "distribution": [
+ 6,
+ 0
+ ],
+ "quality": 0.6752881577616756
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"memb\") (args variable))) (compound (functor \"memb\") (args variable)))"
+ ],
+ "distribution": [
+ 144,
+ 298
+ ],
+ "quality": 0.6700881903331514
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 13,
+ 32
+ ],
+ "quality": 0.6122982869191883
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/lists/permute_2/bugs.json b/prolog/problems/lists/permute_2/bugs.json
new file mode 100644
index 0000000..9c2778c
--- /dev/null
+++ b/prolog/problems/lists/permute_2/bugs.json
@@ -0,0 +1,452 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"permute\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"permute\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"permute\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable))))) (compound (functor \"insert\") (args variable)))",
+ "(clause (head (compound (functor \"permute\") (args (args variable)))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t variable))))) (compound (functor \"permute\") (args variable)))",
+ "(clause (compound (functor \"permute\") (args (args variable))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t variable))))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"permute\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"permute\") (args (args variable)))) (compound (functor \"permute\") (args (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args (args variable)))))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (t variable)))))) (compound (functor \"permute\") (args (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args variable))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"permute\") (args variable (args variable)))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (compound (functor \"permute\") (args variable)))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"permute\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"insert\") (args variable)))",
+ "(clause (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable))))))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (h variable)))))) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"permute\") (args (list (t \"[]\"))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable) (t \"[]\"))))))",
+ "(clause (head (compound (functor \"permute\") (args (args variable)))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t variable))))))",
+ "(clause (compound (functor \"permute\") (args (args variable))))",
+ "(clause (compound (functor \"permute\") (args (args variable))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"insert\") (args (args (args variable)))) (compound (functor \"permute\") (args (args variable))))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (compound (functor \"memb\") (args variable)) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"permute\") (args variable))))",
+ "(clause (compound (functor \"insert\") (args (args variable))) (compound (functor \"permute\") (args (args variable))))",
+ "(clause (compound (functor \"del\") (args variable)) (compound (functor \"insert\") (args variable)))",
+ "(clause (compound (functor \"permute\") (args variable)) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (compound (functor \"insert\") (args (args variable))) (compound (functor \"permute\") (args variable)))",
+ "(clause (compound (functor \"insert\") (args variable)))",
+ "(clause (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable)) (args variable)))))",
+ "(clause (head (compound (functor \"permute\") (args variable))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (compound (functor \"permute\") (args (args variable))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t \"[]\")) (args variable)))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable)) (args (list (t (list (h variable)))))))))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t (list (h variable)))) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (h variable)))))) (compound (functor \"insert\") (args variable)))",
+ "(clause (head (compound (functor \"permute\") (args \"[]\" (args variable)))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (compound (functor \"insert\") (args (args (args variable)))) (compound (functor \"permute\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"permute\") (args (args variable)))) (compound (functor \"permute\") (args variable)))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (binop variable \"=\"))",
+ "(clause (compound (functor \"delete\") (args (args (args variable)))) (compound (functor \"permute\") (args variable)))",
+ "(clause (head (compound (functor \"permute\") (args variable))) (compound (functor \"delete\") (args (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (h variable)))))) (compound (functor \"delete\") (args variable)))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable) (t (list (t \"[]\"))))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t (list (t \"[]\"))))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t (list (h variable) (t \"[]\"))))))))",
+ "(clause (compound (functor \"del\") (args variable)) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable))))) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"permute\") (args (list (t \"[]\")) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t (list (t \"[]\")))) (args (list (t (list (h variable)))))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t (list (t \"[]\")))) (args (list (h variable)))))))",
+ "(clause (compound (functor \"memb\") (args variable)) (compound (functor \"insert\") (args variable)))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (t variable)))))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable))))) (compound (functor \"permute\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (t variable)))))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args (args variable)))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args variable))) (compound (functor \"permute\") (args variable)))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable))))) (compound (functor \"insert\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (binop variable \"=\") (compound (functor \"permute\") (args (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable))))) (compound (functor \"permute\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t (list (h variable))))))) (compound (functor \"insert\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t variable))))) (binop variable \"=\"))",
+ "(clause (binop variable \"=\") (binop \"=\" variable))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable)) (args (compound (functor \"insert\") (args variable)))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t variable)) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"permute\") (args (args variable)))) (compound (functor \"permute\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t (list (h variable))))))) (compound (functor \"insert\") (args variable)))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"permute\") (args (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t (list (t variable))))))) (compound (functor \"insert\") (args (args (list (t variable))))))",
+ "(clause (compound (functor \"permute\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"memb\") (args variable)) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"insert\") (args (args variable (args variable)))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t variable))))) (compound (functor \"permute\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"permute\") (args (args variable)))) (compound (functor \"del\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t variable))))) (compound (functor \"del\") (args (args (list (t variable))))))",
+ "(clause (compound (functor \"permute\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable))))) (compound (functor \"del\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable))))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (binop \"=\" (list (t variable))) (binop variable \"=\"))",
+ "(clause (compound (functor \"insert\") (args (args (args variable)))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (binop (list (t variable)) \"=\") (compound (functor \"permute\") (args variable)))",
+ "(clause (binop (list (h variable)) \"=\") (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (t variable)))))) (compound (functor \"permute\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable))))) (compound (functor \"ins\") (args variable)))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable)) (args (list (t variable)))))))",
+ "(clause (compound (functor \"permute\") (args (args variable))) (compound (functor \"del\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (t variable)))))) (compound (functor \"insert\") (args (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"permute\") (args (args variable)))) (compound (functor \"ins\") (args (args (args variable)))))",
+ "(clause (compound (functor \"permute\") (args (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"del\") (args (args variable))) (compound (functor \"permute\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"permute\") (args (list (h variable)))))",
+ "(clause (compound (functor \"insert\") (args (args (list (t variable))))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (compound (functor \"permute\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"insert1\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (binop \"\\=\" variable) (compound (functor \"seperateFirst2\") (args variable)))",
+ "(clause (head (compound (functor \"insert\") (args variable))) (compound (functor \"insert\") (args variable)))",
+ "(clause (head (compound (functor \"permute\") (args (list (t variable))))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t variable))))) (compound (functor \"insert\") (args (args (list (t variable))))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t variable))))) (compound (functor \"permute\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t variable)) (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (h variable)))))) (compound (functor \"permute\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"permute\") (args (list (t (list (h variable)))))))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (t (list (h variable)))))))) (compound (functor \"permute\") (args (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable)) (args (list (t (list (t \"[]\")))))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t (list (h variable))))))) (compound (functor \"permute\") (args variable)))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (h variable) (t (list (t \"[]\")))))))))",
+ "(clause (head (compound (functor \"permute\") (args (args variable)))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable))))) (compound (functor \"permute\") (args variable)))",
+ "(clause (compound (functor \"insert\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"permute2\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"permute\") (args variable))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"insert\") (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable))))) (compound (functor \"insert\") (args (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (h variable)))))) (compound (functor \"insert\") (args (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t (list (h variable))))))) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"permute\") (args variable)))",
+ "(clause (head (compound (functor \"permute\") (args (list (t variable))))) (compound (functor \"permute\") (args (list (h variable)))))",
+ "(clause (head (binop variable \"=\")))",
+ "(clause (head (compound (functor \"permute2\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t (list (t \"[]\")))) (args (list (t (list (t \"[]\")))))))))",
+ "(clause (compound (functor \"insert\") (args variable (args (list (h variable))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (t (list (t \"[]\")))))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (h variable))))) (compound (functor \"permute\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t variable)) (args variable)))))",
+ "(clause (head (compound (functor \"permute2\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t (list (h variable)))) (args (list (t (list (t \"[]\")))))))))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (t (list (h variable) (t \"[]\")))))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t (list (t variable))))))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (compound (functor \"insert\") (args (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"permute\") (args (args (compound (functor \"insert\") (args (args (args variable)))))))))",
+ "(clause (compound (functor \"insert\") (args (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t variable))))) (compound (functor \"permute\") (args (list (t variable)))))",
+ "(clause (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"permute\") (args (list (t variable))))) (compound (functor \"memb\") (args (args variable))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"permute\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 95,
+ 0
+ ],
+ "quality": 0.9817038429772349
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"permute\") (args (list (t variable))))) (compound (functor \"insert\") (args (args variable))))"
+ ],
+ "distribution": [
+ 190,
+ 2
+ ],
+ "quality": 0.9794084745917714
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"permute\") (args (args variable)))) (compound (functor \"permute\") (args (args variable))))"
+ ],
+ "distribution": [
+ 104,
+ 1
+ ],
+ "quality": 0.9714418818841668
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"insert\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 48,
+ 0
+ ],
+ "quality": 0.9588757057531605
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"permute\") (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 47,
+ 0
+ ],
+ "quality": 0.9578821829207189
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"permute\") (args (list (t variable))))))"
+ ],
+ "distribution": [
+ 39,
+ 0
+ ],
+ "quality": 0.947298305452628
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"permute\") (args (args variable))))"
+ ],
+ "distribution": [
+ 38,
+ 0
+ ],
+ "quality": 0.9455670056323863
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"permute\") (args (args variable)))) (compound (functor \"insert\") (args (args variable))))"
+ ],
+ "distribution": [
+ 37,
+ 0
+ ],
+ "quality": 0.9437215576522013
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"insert\") (args (args (args variable)))) (compound (functor \"permute\") (args (args variable))))"
+ ],
+ "distribution": [
+ 35,
+ 0
+ ],
+ "quality": 0.9396299620514391
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"permute\") (args variable))))"
+ ],
+ "distribution": [
+ 33,
+ 0
+ ],
+ "quality": 0.9350104617264203
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"insert\") (args (args variable))) (compound (functor \"permute\") (args (args variable))))"
+ ],
+ "distribution": [
+ 33,
+ 0
+ ],
+ "quality": 0.9350104617264203
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"permute\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"permute\") (args (args variable)))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (compound (functor \"permute\") (args (args variable))) (compound (functor \"insert\") (args (args variable))))"
+ ],
+ "distribution": [
+ 8,
+ 133
+ ],
+ "quality": 0.9332657919230357
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"permute\") (args (list (h variable)) (args variable)))))"
+ ],
+ "distribution": [
+ 29,
+ 0
+ ],
+ "quality": 0.9232913557196254
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"insert\") (args variable)))"
+ ],
+ "distribution": [
+ 28,
+ 0
+ ],
+ "quality": 0.9213023067023905
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"permute\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"permute\") (args (args variable)))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (compound (functor \"permute\") (args (args variable))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args (list (t variable))))) (compound (functor \"permute\") (args variable)))"
+ ],
+ "distribution": [
+ 7,
+ 123
+ ],
+ "quality": 0.9187239800583585
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"permute\") (args (list (t \"[]\")) (args variable)))))"
+ ],
+ "distribution": [
+ 27,
+ 0
+ ],
+ "quality": 0.9173202964615395
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"permute\") (args (args (list (h variable)))))) (compound (functor \"insert\") (args variable)))"
+ ],
+ "distribution": [
+ 26,
+ 0
+ ],
+ "quality": 0.911839211889241
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"permute\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"permute\") (args (args variable)))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (compound (functor \"permute\") (args (args variable))) (compound (functor \"insert\") (args (args variable))))"
+ ],
+ "distribution": [
+ 12,
+ 139
+ ],
+ "quality": 0.9114837140195694
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"permute\") (args (args variable)))) (compound (functor \"permute\") (args variable)))"
+ ],
+ "distribution": [
+ 24,
+ 0
+ ],
+ "quality": 0.9035625911236866
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"delete\") (args (args (args variable)))) (compound (functor \"permute\") (args variable)))"
+ ],
+ "distribution": [
+ 22,
+ 0
+ ],
+ "quality": 0.8914631047764715
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"permute\") (args \"[]\"))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (compound (functor \"permute\") (args variable)))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (t variable)))))) (compound (functor \"permute\") (args (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (h variable)))))) (compound (functor \"del\") (args variable)))"
+ ],
+ "distribution": [
+ 2,
+ 27
+ ],
+ "quality": 0.7900995111489282
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"permute\") (args variable))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (t variable)))))) (compound (functor \"permute\") (args (args variable))))",
+ "(clause (head (compound (functor \"permute\") (args (args (list (h variable)))))) (compound (functor \"del\") (args variable)))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (compound (functor \"permute\") (args variable)))"
+ ],
+ "distribution": [
+ 3,
+ 31
+ ],
+ "quality": 0.7888513731459508
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"permute\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"permute\") (args (args variable)))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"insert\") (args variable)))"
+ ],
+ "distribution": [
+ 8,
+ 17
+ ],
+ "quality": 0.4809085141607073
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"permute\") (args (list (t variable))))) (compound (functor \"permute\") (args variable)))",
+ "(clause (compound (functor \"permute\") (args (args variable))) (compound (functor \"del\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 0,
+ 5
+ ],
+ "quality": 0.4468970492731071
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/lists_advanced/len_2/bugs.json b/prolog/problems/lists_advanced/len_2/bugs.json
new file mode 100644
index 0000000..3a537ff
--- /dev/null
+++ b/prolog/problems/lists_advanced/len_2/bugs.json
@@ -0,0 +1,371 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"len\") (args (list (h variable))))))",
+ "(clause (head (compound (functor \"len\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"len\") (args (list (t variable))))) (compound (functor \"len\") (args variable)))",
+ "(clause (head (compound (functor \"len\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (binop \"is\" (binop \"+\" \"1\")))",
+ "(clause (binop variable \"is\" (binop \"+\" \"1\")))",
+ "(clause (binop \"is\" (binop variable \"+\" \"1\")))",
+ "(clause (head (compound (functor \"len\") (args (args \"0\")))))",
+ "(clause (head (compound (functor \"len\") (args \"[]\" (args \"0\")))))",
+ "(clause (compound (functor \"len\") (args (args variable))) (binop \"is\" (binop variable \"+\")))",
+ "(clause (head (compound (functor \"len\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"len\") (args (args variable)))) (binop \"is\" (binop variable \"+\")))",
+ "(clause (head (compound (functor \"len\") (args variable))) (binop variable \"=\"))",
+ "(clause (binop variable \"is\") (compound (functor \"len\") (args (args variable))))",
+ "(clause (head (compound (functor \"len\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"len\") (args (args variable)))))",
+ "(clause (head (compound (functor \"len\") (args (args \"1\")))))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"len\") (args (list (h variable)) (args \"1\")))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"len\") (args variable)))",
+ "(clause (head (compound (functor \"len\") (args (args variable)))) (compound (functor \"len\") (args (args variable))))",
+ "(clause (binop \"is\" (binop \"1\" \"+\")))",
+ "(clause (binop variable \"is\" (binop \"1\" \"+\")))",
+ "(clause (binop \"is\" \"0\"))",
+ "(clause (binop variable \"is\" \"0\"))",
+ "(clause (binop \"=\" \"0\"))",
+ "(clause (binop variable \"=\" \"0\"))",
+ "(clause (compound (functor \"len\") (args (args variable))) (binop \"is\" (binop \"+\" variable)))",
+ "(clause (binop \"is\" (binop \"1\" \"+\" variable)))",
+ "(clause (binop \"is\" (binop variable \"+\")) (compound (functor \"len\") (args (args variable))))",
+ "(clause (compound (functor \"len\") (args (args variable))))",
+ "(clause (binop variable \"is\" (binop variable \"+\")))",
+ "(clause (binop variable \"is\"))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (head (compound (functor \"len\") (args (args (binop \"+\" \"1\"))))))",
+ "(clause (head (compound (functor \"len\") (args (list (h variable)) (args (binop \"+\" \"1\"))))))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (head (compound (functor \"len\") (args (list (t variable)) (args (binop \"+\" \"1\"))))))",
+ "(clause (binop \"=\" (binop variable \"+\" \"1\")))",
+ "(clause (binop variable \"=\" (binop \"+\" \"1\")))",
+ "(clause (binop \"=\" (binop \"+\" \"1\")))",
+ "(clause (compound (functor \"len\") (args (args variable))) (binop variable \"is\"))",
+ "(clause (binop variable \"=\"))",
+ "(clause (head (compound (functor \"len\") (args (args (binop variable \"+\" \"1\"))))))",
+ "(clause (binop variable \"is\" \"1\"))",
+ "(clause (head (compound (functor \"len\") (args (args (binop variable \"+\"))))) (compound (functor \"len\") (args (args variable))))",
+ "(clause (binop \"is\" \"1\"))",
+ "(clause (head (compound (functor \"len\") (args (list (h variable) (t \"[]\"))))))",
+ "(clause (binop \"is\" (binop variable \"+\")))",
+ "(clause (head (compound (functor \"len\") (args variable))) (compound (functor \"len\") (args variable)))",
+ "(clause (head (compound (functor \"len\") (args (list (t \"[]\"))))))",
+ "(clause (compound (functor \"len\") (args (args variable))) (binop \"=\" (binop variable \"+\")))",
+ "(clause (head (compound (functor \"len\") (args (args variable (args variable))))))",
+ "(clause (head (compound (functor \"len\") (args \"[]\" (args (args variable))))))",
+ "(clause (compound (functor \"len\") (args (args (args (binop variable \"+\" \"1\"))))))",
+ "(clause (compound (functor \"len\") (args variable)))",
+ "(clause (head (compound (functor \"len\") (args variable))))",
+ "(clause (compound (functor \"len\") (args (args variable (args (binop \"+\" \"1\"))))))",
+ "(clause (compound (functor \"len\") (args (args (args (binop \"+\" \"1\"))))))",
+ "(clause (compound (functor \"len\") (args variable (args (args (binop \"+\" \"1\"))))))",
+ "(clause (head (compound (functor \"len\") (args (args (args variable))))) (compound (functor \"len\") (args (args (args (binop variable \"+\"))))))",
+ "(clause (head (compound (functor \"len\") (args \"[]\" (args \"1\")))))",
+ "(clause (head (binop variable \"is\")))",
+ "(clause (binop \"is\" (binop variable \"-\" \"1\")))",
+ "(clause (binop \"is\" (binop \"-\" \"1\")))",
+ "(clause (binop variable \"is\" (binop \"-\" \"1\")))",
+ "(clause (head (compound (functor \"len\") (args (list (t \"[]\")) (args variable)))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"len\") (args (args variable)))) (binop \"is\" (binop variable \"+\")))"
+ ],
+ "distribution": [
+ 68,
+ 0
+ ],
+ "quality": 0.9727078428864591
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"is\") (compound (functor \"len\") (args (args variable))))"
+ ],
+ "distribution": [
+ 49,
+ 0
+ ],
+ "quality": 0.9614398238300143
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"len\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 44,
+ 0
+ ],
+ "quality": 0.956836113223887
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"len\") (args (list (t variable))))) (compound (functor \"len\") (args variable)))",
+ "(clause (binop \"is\" (binop \"+\" \"1\")))",
+ "(clause (compound (functor \"len\") (args (args variable))) (binop \"is\" (binop variable \"+\")))",
+ "(clause (head (compound (functor \"len\") (args (args \"0\")))))",
+ "(clause (head (compound (functor \"len\") (args (args variable)))) (binop variable \"is\"))"
+ ],
+ "distribution": [
+ 6,
+ 167
+ ],
+ "quality": 0.9503656316623829
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"len\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"len\") (args (list (t variable))))) (compound (functor \"len\") (args variable)))",
+ "(clause (head (compound (functor \"len\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (compound (functor \"len\") (args (args variable))) (binop \"is\" (binop variable \"+\")))"
+ ],
+ "distribution": [
+ 10,
+ 179
+ ],
+ "quality": 0.9339224337811853
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"len\") (args (args \"0\")))))",
+ "(clause (compound (functor \"len\") (args (args variable))) (binop \"is\" (binop variable \"+\")))",
+ "(clause (head (compound (functor \"len\") (args (args variable)))) (binop variable \"is\"))"
+ ],
+ "distribution": [
+ 10,
+ 172
+ ],
+ "quality": 0.9319373101392443
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"is\" (binop variable \"+\")) (compound (functor \"len\") (args (args variable))))"
+ ],
+ "distribution": [
+ 24,
+ 0
+ ],
+ "quality": 0.9209156299301058
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"len\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"len\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (compound (functor \"len\") (args (args variable))) (binop \"is\" (binop variable \"+\")))"
+ ],
+ "distribution": [
+ 15,
+ 186
+ ],
+ "quality": 0.9137691073602562
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"len\") (args (args variable))))"
+ ],
+ "distribution": [
+ 22,
+ 0
+ ],
+ "quality": 0.9134783484069616
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"len\") (args (list (t variable))))) (compound (functor \"len\") (args variable)))",
+ "(clause (head (compound (functor \"len\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (compound (functor \"len\") (args (args variable))) (binop \"is\" (binop variable \"+\")))"
+ ],
+ "distribution": [
+ 20,
+ 181
+ ],
+ "quality": 0.8882648872521293
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"len\") (args (args (binop \"+\" \"1\"))))))"
+ ],
+ "distribution": [
+ 16,
+ 0
+ ],
+ "quality": 0.880196072529589
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (binop variable \"+\" \"1\")))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.8723981081411187
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"len\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (compound (functor \"len\") (args (args variable))) (binop \"is\" (binop variable \"+\")))"
+ ],
+ "distribution": [
+ 27,
+ 192
+ ],
+ "quality": 0.866747278996158
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"len\") (args (args variable))) (binop variable \"is\"))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.8635813115896738
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"len\") (args (args variable))) (binop \"is\" (binop variable \"+\")))"
+ ],
+ "distribution": [
+ 35,
+ 193
+ ],
+ "quality": 0.8378438890688092
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"len\") (args (list (t variable))))) (compound (functor \"len\") (args variable)))",
+ "(clause (head (compound (functor \"len\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (head (compound (functor \"len\") (args (args \"0\")))))"
+ ],
+ "distribution": [
+ 34,
+ 182
+ ],
+ "quality": 0.8304984753873256
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"is\" (binop variable \"+\")))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.8090841003084915
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"len\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (head (compound (functor \"len\") (args (args \"0\")))))"
+ ],
+ "distribution": [
+ 42,
+ 190
+ ],
+ "quality": 0.8090037407616595
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"is\"))",
+ "(clause (head (compound (functor \"len\") (args \"[]\"))))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.8044129053953029
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"len\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"len\") (args (list (t variable))))) (compound (functor \"len\") (args variable)))",
+ "(clause (head (compound (functor \"len\") (args (args variable)))) (binop variable \"is\"))"
+ ],
+ "distribution": [
+ 56,
+ 197
+ ],
+ "quality": 0.7688780423248074
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"len\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"len\") (args (args \"0\")))))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7315031617727911
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"len\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"len\") (args (list (t variable))))) (compound (functor \"len\") (args variable)))",
+ "(clause (binop variable \"is\" (binop \"+\" \"1\")))"
+ ],
+ "distribution": [
+ 73,
+ 180
+ ],
+ "quality": 0.6988970183782519
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"len\") (args variable)))"
+ ],
+ "distribution": [
+ 6,
+ 0
+ ],
+ "quality": 0.6895831407852365
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"len\") (args variable))))"
+ ],
+ "distribution": [
+ 6,
+ 0
+ ],
+ "quality": 0.6895831407852365
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"len\") (args \"[]\" (args \"1\")))))"
+ ],
+ "distribution": [
+ 5,
+ 0
+ ],
+ "quality": 0.6429023884024729
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/lists_advanced/max_2/bugs.json b/prolog/problems/lists_advanced/max_2/bugs.json
new file mode 100644
index 0000000..2fadeb9
--- /dev/null
+++ b/prolog/problems/lists_advanced/max_2/bugs.json
@@ -0,0 +1,467 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"max\") (args (list (t variable))))) (compound (functor \"max\") (args variable)))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable)) (args variable)))))",
+ "(clause (head (compound (functor \"max\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (head (compound (functor \"max\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (binop \">\" variable))",
+ "(clause (binop variable \"=\"))",
+ "(clause (binop variable \"is\"))",
+ "(clause (head (compound (functor \"max\") (args (args variable)))) (compound (functor \"max\") (args (args variable))))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable))))) (binop \"=\" variable))",
+ "(clause (binop variable \">\"))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable))))) (binop variable \">\"))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable))))) (binop \"is\" variable))",
+ "(clause (binop \">=\" variable))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \"is\" variable))",
+ "(clause (binop \"is\" variable))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (binop \"=\" variable))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable))))) (binop variable \">=\"))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \">=\" variable))",
+ "(clause (head (compound (functor \"max\") (args variable))) (binop variable \"=\"))",
+ "(clause (binop variable \"<\"))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable))))) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable))))) (binop \">\" variable))",
+ "(clause (binop variable \">\") (binop \"=\" variable))",
+ "(clause (binop variable \">=\"))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \"=<\" variable))",
+ "(clause (binop variable \">\") (binop \"is\" variable))",
+ "(clause (compound (functor \"max\") (args (args variable))))",
+ "(clause (binop variable \">=\") (binop \"=\" variable))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop variable \">\"))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable))))) (binop \">=\" variable))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop variable \"<\"))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \"<\" variable))",
+ "(clause (binop variable \">=\") (binop \"is\" variable))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable))))) (binop variable \"<\"))",
+ "(clause (binop \"<\" variable) (binop \"is\" variable))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable))))) (binop \"<\" variable))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop variable \">=\"))",
+ "(clause (binop \"=<\" variable) (binop \"=\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"is\" variable))",
+ "(clause (head (compound (functor \"max\") (args (list (t (list (t variable))))))) (compound (functor \"max\") (args (list (t variable)))))",
+ "(clause (binop \"=<\" variable) (binop \"is\" variable))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"max\") (args variable)))",
+ "(clause (binop \"<\" variable))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable) (t \"[]\"))))))",
+ "(clause (head (compound (functor \"max\") (args (list (t \"[]\")) (args variable)))))",
+ "(clause (head (compound (functor \"max\") (args (list (t \"[]\"))))))",
+ "(clause (binop \"<\" variable) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"max\") (args (args variable)))) (binop variable \">\"))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable))))))",
+ "(clause (head (compound (functor \"max\") (args (args variable)))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"max\") (args (args variable)))) (binop variable \">=\"))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable))))) (binop \"=<\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" variable))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (head (compound (functor \"max\") (args (list (t (list (h variable))))))) (compound (functor \"max\") (args (list (h variable)))))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"max\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"max\") (args (list (t (list (h variable))))))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"max\") (args (list (t variable))))) (compound (functor \"min\") (args variable)))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable))))) (compound (functor \"max\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"max\") (args (args variable)))))",
+ "(clause (binop variable \">\") (compound (functor \"max\") (args (list (h variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"max\") (args (args variable)))) (binop \">\" variable))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop variable \"is\"))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (t variable))) (binop variable \"=\"))",
+ "(clause (binop variable \"=<\"))",
+ "(clause (compound (functor \"max\") (args variable)))",
+ "(clause (head (compound (functor \"max\") (args (args variable)))) (binop \"=<\" variable))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"max\") (args (args variable)))) (binop \">=\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \"<\"))",
+ "(clause (head (compound (functor \"max\") (args (args variable)))) (compound (functor \"min\") (args (args variable))))",
+ "(clause (binop \"=<\" variable))",
+ "(clause (compound (functor \"max\") (args (list (h variable)))))",
+ "(clause (compound (functor \"max\") (args (list (t variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \">=\"))",
+ "(clause (head (compound (functor \"max\") (args (list (t (list (h variable))))))) (binop \"=<\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \">\"))",
+ "(clause (head (compound (functor \"max\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"max\") (args (list (t variable))))) (binop variable \"=\"))",
+ "(clause (binop variable \">=\") (compound (functor \"max\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable))))) (compound (functor \"max\") (args (args variable))))",
+ "(clause (binop variable \">\") (compound (functor \"max\") (args (args variable))))",
+ "(clause (binop \">\" variable) (binop variable \"is\"))",
+ "(clause (binop \"\\==\" \"[]\"))",
+ "(clause (binop \"=<\" variable) (compound (functor \"max\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"max\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"max\") (args (list (t variable))))))",
+ "(clause (head (compound (functor \"max\") (args (args variable)))) (compound (functor \"max\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \">=\" variable))",
+ "(clause (head (compound (functor \"max\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"max\") (args (list (t variable))))) (binop \"=\" variable))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop variable \"=\"))",
+ "(clause (binop \">=\" variable) (binop variable \"is\"))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable))))) (compound (functor \"max\") (args variable)))",
+ "(clause (head (compound (functor \"max2\") (args (args (args variable))))) (binop variable \">=\"))",
+ "(clause (compound (functor \"max\") (args variable)) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"max\") (args (list (t (list (h variable))))))) (binop variable \">=\"))",
+ "(clause (binop \">\" variable) (binop \"is\" variable))",
+ "(clause (head (compound (functor \"max\") (args (args \"0\")))))",
+ "(clause (head (compound (functor \"max\") (args (list (t (list (t variable))))))) (compound (functor \"min\") (args (list (t variable)))))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"max\") (args (list (t (list (h variable))))))) (binop variable \">\"))",
+ "(clause (binop \">=\" variable) (binop \"is\" variable))",
+ "(clause (binop variable \"\\==\" \"[]\"))",
+ "(clause (head (compound (functor \"max\") (args (list (t (list (h variable))))))) (binop \">=\" variable))",
+ "(clause (head (compound (functor \"max\") (args (args variable)))) (compound (functor \"max2\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"max\") (args (args (args variable))))) (compound (functor \"max\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"max\") (args (args variable (args variable))))))",
+ "(clause (head (compound (functor \"max\") (args (list (t (list (h variable))))))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"max\") (args \"[]\" (args \"0\")))))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable))))) (compound (functor \"min\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"max\") (args variable))))",
+ "(clause (head (compound (functor \"max\") (args (args variable)))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"max2\") (args variable))) (binop variable \">=\"))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (binop \">=\" variable) (binop variable \"=\"))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"max\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 20,
+ 0
+ ],
+ "quality": 0.8900656084454792
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"max\") (args (list (h variable)) (args variable)))))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable))))) (binop variable \"=<\"))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \">\" variable))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \"=<\" variable))"
+ ],
+ "distribution": [
+ 2,
+ 48
+ ],
+ "quality": 0.8841350678520971
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"max\") (args (list (h variable))))) (binop variable \"=<\"))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \">\" variable))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \"=<\" variable))"
+ ],
+ "distribution": [
+ 3,
+ 50
+ ],
+ "quality": 0.875784451606412
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \"=<\" variable))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \">\" variable))"
+ ],
+ "distribution": [
+ 4,
+ 52
+ ],
+ "quality": 0.8705795807504655
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"max\") (args (args variable))) (binop variable \"is\"))"
+ ],
+ "distribution": [
+ 16,
+ 0
+ ],
+ "quality": 0.8585357519581691
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"max\") (args (list (t variable))))) (compound (functor \"min\") (args variable)))"
+ ],
+ "distribution": [
+ 16,
+ 0
+ ],
+ "quality": 0.8585357519581691
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (binop \"is\" variable))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \"=<\" variable))",
+ "(clause (binop \"=<\" variable) (binop \"is\" variable))"
+ ],
+ "distribution": [
+ 1,
+ 26
+ ],
+ "quality": 0.8274606789340101
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (binop variable \">\"))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable))))) (binop variable \"=<\"))",
+ "(clause (binop \">\" variable))"
+ ],
+ "distribution": [
+ 6,
+ 51
+ ],
+ "quality": 0.8227208017431313
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"max\") (args (args variable))) (binop variable \">=\"))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop variable \"<\"))"
+ ],
+ "distribution": [
+ 2,
+ 28
+ ],
+ "quality": 0.8201708647010837
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \"=<\" variable))"
+ ],
+ "distribution": [
+ 10,
+ 61
+ ],
+ "quality": 0.8188104054390486
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \"is\" variable))",
+ "(clause (binop \"is\" variable))",
+ "(clause (binop \"=<\" variable) (binop \"is\" variable))"
+ ],
+ "distribution": [
+ 2,
+ 30
+ ],
+ "quality": 0.8157774041483552
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"max\") (args (list (h variable)) (args variable)))))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \">=\" variable))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \"<\" variable))"
+ ],
+ "distribution": [
+ 2,
+ 27
+ ],
+ "quality": 0.7912746669823468
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \"is\" variable))",
+ "(clause (binop \"=<\" variable) (binop \"is\" variable))",
+ "(clause (binop variable \">\") (binop \"is\" variable))"
+ ],
+ "distribution": [
+ 3,
+ 31
+ ],
+ "quality": 0.788453996743897
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"max\") (args (list (t variable))))) (compound (functor \"max\") (args variable)))",
+ "(clause (binop \"=<\" variable) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable))))) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 4,
+ 34
+ ],
+ "quality": 0.780182415861194
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \"is\" variable))",
+ "(clause (binop \"=<\" variable) (binop \"is\" variable))"
+ ],
+ "distribution": [
+ 5,
+ 35
+ ],
+ "quality": 0.7789205356676925
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (binop variable \">=\") (binop \"is\" variable))",
+ "(clause (binop \"<\" variable) (binop \"is\" variable))",
+ "(clause (head (compound (functor \"max\") (args (args variable)))) (binop variable \"is\"))"
+ ],
+ "distribution": [
+ 3,
+ 29
+ ],
+ "quality": 0.7718149911228794
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"max\") (args (list (h variable) (t \"[]\"))))))"
+ ],
+ "distribution": [
+ 0,
+ 13
+ ],
+ "quality": 0.764687469566378
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \"is\" variable))",
+ "(clause (binop \"is\" variable))",
+ "(clause (binop variable \">=\") (binop \"is\" variable))"
+ ],
+ "distribution": [
+ 4,
+ 32
+ ],
+ "quality": 0.7646593128299235
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \"is\" variable))",
+ "(clause (binop variable \">=\") (binop \"is\" variable))",
+ "(clause (head (compound (functor \"max\") (args (args variable)))) (binop variable \"is\"))"
+ ],
+ "distribution": [
+ 6,
+ 38
+ ],
+ "quality": 0.7569319577338168
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (binop variable \">=\") (compound (functor \"max\") (args (list (h variable)))))"
+ ],
+ "distribution": [
+ 0,
+ 9
+ ],
+ "quality": 0.7506097250336605
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \">\" variable) (binop variable \"is\"))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.734002499222176
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"max\") (args (args variable)))) (compound (functor \"min\") (args (args variable))))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.734002499222176
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"max\") (args (args variable))) (binop variable \">=\"))",
+ "(clause (head (compound (functor \"max\") (args (args variable)))) (binop variable \"is\"))"
+ ],
+ "distribution": [
+ 3,
+ 22
+ ],
+ "quality": 0.7185373527540856
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"max\") (args (list (h variable)) (args variable)))))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (binop variable \">=\"))"
+ ],
+ "distribution": [
+ 1,
+ 17
+ ],
+ "quality": 0.7069536551156186
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"max\") (args (list (t variable))))) (compound (functor \"max\") (args variable)))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop variable \"=<\"))"
+ ],
+ "distribution": [
+ 2,
+ 16
+ ],
+ "quality": 0.6580039730544098
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"max\") (args (list (t variable))))) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.6541003807133517
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \">\") (compound (functor \"max\") (args (args variable))))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.6541003807133517
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \">=\" variable) (binop variable \"is\"))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.6541003807133517
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/lists_advanced/min_2/bugs.json b/prolog/problems/lists_advanced/min_2/bugs.json
new file mode 100644
index 0000000..e7c88e7
--- /dev/null
+++ b/prolog/problems/lists_advanced/min_2/bugs.json
@@ -0,0 +1,704 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"min\") (args (list (t variable))))) (compound (functor \"min\") (args variable)))",
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable)) (args variable)))))",
+ "(clause (binop \"<\" variable))",
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop variable \"<\"))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop \"=\" variable))",
+ "(clause (binop variable \"=\"))",
+ "(clause (binop variable \"is\"))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (compound (functor \"min\") (args (args variable))))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop \"is\" variable))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (compound (functor \"min\") (args (args variable))))",
+ "(clause (binop \"=\" variable))",
+ "(clause (binop variable \"<\") (binop \"=\" variable))",
+ "(clause (binop \"is\" variable))",
+ "(clause (binop variable \"<\"))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"is\" variable))",
+ "(clause (binop variable \"<\") (binop \"is\" variable))",
+ "(clause (head (compound (functor \"min\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop variable \">=\"))",
+ "(clause (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop variable \">\"))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \">=\" variable))",
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"min\") (args variable))) (binop variable \"=\"))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"min\") (args (list (t \"[]\")) (args variable)))))",
+ "(clause (head (compound (functor \"min\") (args (list (t \"[]\"))))))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable) (t \"[]\"))))))",
+ "(clause (binop variable \"==\"))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"min\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (compound (functor \"min\") (args (args variable))))",
+ "(clause (head (compound (functor \"min\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"min\") (args (args variable)))))",
+ "(clause (binop variable \">\"))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop \"=<\" variable))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop variable \"<\"))",
+ "(clause (compound (functor \"min\") (args variable)))",
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))))",
+ "(clause (binop \">\" variable) (binop \"=\" variable))",
+ "(clause (binop variable \"=<\"))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"min\") (args variable)))",
+ "(clause (binop \">=\" variable) (binop \"=\" variable))",
+ "(clause (binop variable \"=<\") (binop \"=\" variable))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop \"<\" variable))",
+ "(clause (binop \">=\" variable) (binop \"is\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"min\") (args (list (t (list (t variable))))))) (compound (functor \"min\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"min\") (args \"[]\" (args variable)))))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop variable \"==\"))",
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (binop \">=\" variable))",
+ "(clause (binop \"==\" \"[]\"))",
+ "(clause (binop \">\" variable))",
+ "(clause (binop variable \"==\" \"[]\"))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop \">\" variable))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (binop variable \"<\") (compound (functor \"min\") (args (args variable))))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (compound (functor \"min\") (args (list (h variable)))))",
+ "(clause (binop variable \"=<\") (binop \"is\" variable))",
+ "(clause (binop \">\" variable) (compound (functor \"min\") (args (args variable))))",
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (binop variable \"<\"))",
+ "(clause (binop \"<\" variable) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop \">=\" variable))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop variable \">\"))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (binop \"<\" variable) (compound (functor \"min\") (args (args variable))))",
+ "(clause (binop \">\" variable) (binop \"is\" variable))",
+ "(clause (binop variable \">=\"))",
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (binop \"=<\" variable))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop variable \"=\"))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop variable \">=\"))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop variable \"is\"))",
+ "(clause (binop \">=\" variable) (compound (functor \"min\") (args (args variable))))",
+ "(clause (head (compound (functor \"min\") (args (list (t (list (h variable))))))) (compound (functor \"min\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (binop variable \">\"))",
+ "(clause (head (compound (functor \"min\") (args (list (t variable))))))",
+ "(clause (binop variable \"=<\") (compound (functor \"min\") (args (args variable))))",
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (binop \"=\" variable))",
+ "(clause (binop \"=\" (list (t variable))) (binop variable \"=\"))",
+ "(clause (binop variable \"<\") (compound (functor \"min\") (args (list (h variable)))))",
+ "(clause (binop \">=\" variable))",
+ "(clause (binop \"<\" variable) (binop \"=\" variable))",
+ "(clause (binop variable \"=<\") (compound (functor \"min\") (args (list (h variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \"<\"))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"is\" variable))",
+ "(clause (binop \"<\" variable) (binop variable \"is\"))",
+ "(clause (head (binop \"is\" variable)))",
+ "(clause (head (compound (functor \"min\") (args (list (t variable))))) (binop variable \"=\"))",
+ "(clause (compound (functor \"min\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop variable \"=\"))",
+ "(clause (binop variable \"=\") (binop variable \"=\"))",
+ "(clause (binop variable \">\") (binop variable \"=\"))",
+ "(clause (head (compound (functor \"min\") (args (list (t (list (h variable))))))) (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"min\") (args (list (t (list (h variable))))))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"min\") (args \"[]\" (args \"0\")))))",
+ "(clause (binop variable \"<\") (binop variable \"=\"))",
+ "(clause (head (compound (functor \"min\") (args (args \"0\")))))",
+ "(clause (head (compound (functor \"min\") (args (args (args variable))))) (compound (functor \"min\") (args (args (args variable)))))",
+ "(clause (binop variable \"is\") (compound (functor \"min\") (args (args variable))))",
+ "(clause (binop variable \"=\") (compound (functor \"min\") (args (args variable))))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (compound (functor \"min\") (args (args (args variable)))))",
+ "(clause (head (binop variable \"is\")))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"<\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop \">\" variable))",
+ "(clause (binop variable \"is\" variable))",
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (binop \"is\" variable))",
+ "(clause (binop \"=<\" variable) (compound (functor \"min\") (args (args variable))))",
+ "(clause (head (compound (functor \"min\") (args variable))))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"min\") (args (list (t (list (h variable))))))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (compound (functor \"var\") (args variable)))",
+ "(clause (head (compound (functor \"min\") (args (list (t (list (h variable))))))) (binop variable \"=<\"))",
+ "(clause (binop \"=<\" variable) (binop \"=\" variable))",
+ "(clause (compound (functor \"min\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop \"is\" (compound (functor \"min\") (args variable))))",
+ "(clause (head (compound (functor \"min\") (args (list (t variable))))) (compound (functor \"min\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop variable \"is\"))",
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (binop variable \"==\"))",
+ "(clause (binop variable \">\") (binop \"=\" variable))",
+ "(clause (binop \"<\" variable) (binop \"is\" variable))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop \"==\" variable))",
+ "(clause (head (compound (functor \"min\") (args (args (args variable))))))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \">\"))",
+ "(clause (compound (functor \"min\") (args (list (h variable)) (args (args variable)))))",
+ "(clause (binop variable \">=\") (binop \"=\" variable))",
+ "(clause (head (binop variable \"=\" variable)))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"minimum\") (args (args (args variable))))) (binop \">\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \">=\"))",
+ "(clause (binop \">\" variable) (compound (functor \"min\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"min\") (args \"[]\" (args (args variable))))))",
+ "(clause (binop variable \"=\") (binop \"=\" variable))",
+ "(clause (head (compound (functor \"min\") (args (args (args variable))))) (binop \"=\" variable))",
+ "(clause (compound (functor \"var\") (args variable)) (binop variable \"is\"))",
+ "(clause (binop \"=\" variable) (compound (functor \"min\") (args (args variable))))",
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (binop variable \">=\"))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (compound (functor \"min\") (args variable)))",
+ "(clause (head (compound (functor \"min\") (args (list (t variable))))) (compound (functor \"min\") (args (args variable))))",
+ "(clause (binop \"=<\" variable) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"min\") (args (list (t (list (h variable)))) (args variable)))))",
+ "(clause (head (compound (functor \"min\") (args (args (args variable))))) (binop \"<\" variable))",
+ "(clause (binop variable \"=\") (binop \"<\" variable))",
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (binop \"is\" (compound (functor \"min\") (args (args variable)))))",
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (compound (functor \"min\") (args (args (args variable)))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))))",
+ "(clause (binop variable \"<\") (binop variable \"is\"))",
+ "(clause (compound (functor \"min\") (args (args variable))) (compound (functor \"min\") (args (list (t (list (h variable)))))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=<\" variable))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"is\" (compound (functor \"min\") (args (args variable)))))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop variable \"@>=\"))",
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (compound (functor \"minimum\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"min\") (args (list (t (list (h variable))))))) (binop variable \"<\"))",
+ "(clause (binop variable \"is\") (binop variable \"is\"))",
+ "(clause (head (compound (functor \"minimum\") (args (args variable (args variable))))))",
+ "(clause (binop variable \"=\" variable))",
+ "(clause (binop \"=<\" variable) (binop variable \"is\"))",
+ "(clause (compound (functor \"min\") (args (args variable))) (compound (functor \"min\") (args (args variable))))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop \"@>=\" variable))",
+ "(clause (head (compound (functor \"min\") (args variable (args (args variable))))))",
+ "(clause (compound (functor \"del\") (args variable)) (binop variable \"=\"))",
+ "(clause (head (binop \"<\" variable)))",
+ "(clause (binop variable \">\") (binop \"is\" variable))",
+ "(clause (binop variable \"=\") (binop variable \"=<\"))",
+ "(clause (head (binop \"=\" variable)))",
+ "(clause (compound (functor \"min\") (args variable)) (compound (functor \"min\") (args variable)))",
+ "(clause (binop variable \"=\") (compound (functor \"min\") (args variable)))",
+ "(clause (binop variable \"=<\") (binop variable \"=\"))",
+ "(clause (head (compound (functor \"min\") (args (args \"[]\" (args variable))))))",
+ "(clause (binop \"is\" variable) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"min\") (args variable (args variable)))))",
+ "(clause (compound (functor \"del\") (args variable)) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"min\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"minimum\") (args (args variable)))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"minimum\") (args variable))) (binop variable \">\"))",
+ "(clause (compound (functor \"min\") (args (args (args variable)))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"minimum\") (args variable (args (args variable))))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (binop \"<\" variable))"
+ ],
+ "distribution": [
+ 133,
+ 0
+ ],
+ "quality": 0.9873329502501947
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (compound (functor \"min\") (args (args variable))))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (compound (functor \"min\") (args (args variable))))"
+ ],
+ "distribution": [
+ 68,
+ 0
+ ],
+ "quality": 0.9615499748176484
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"<\") (compound (functor \"min\") (args (args variable))))"
+ ],
+ "distribution": [
+ 49,
+ 0
+ ],
+ "quality": 0.9588373697728235
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \">\" variable) (compound (functor \"min\") (args (args variable))))"
+ ],
+ "distribution": [
+ 45,
+ 0
+ ],
+ "quality": 0.9546582081971609
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"<\" variable) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 42,
+ 0
+ ],
+ "quality": 0.9506997402775986
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 87,
+ 2
+ ],
+ "quality": 0.9505321265580633
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (compound (functor \"min\") (args (args variable))))"
+ ],
+ "distribution": [
+ 84,
+ 2
+ ],
+ "quality": 0.9485259007878576
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"<\" variable) (compound (functor \"min\") (args (args variable))))"
+ ],
+ "distribution": [
+ 37,
+ 0
+ ],
+ "quality": 0.942300706923254
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (binop \"=<\" variable))"
+ ],
+ "distribution": [
+ 36,
+ 0
+ ],
+ "quality": 0.9402767441675692
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"min\") (args (args variable))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 31,
+ 0
+ ],
+ "quality": 0.9278212669405331
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \">=\" variable) (compound (functor \"min\") (args (args variable))))"
+ ],
+ "distribution": [
+ 31,
+ 0
+ ],
+ "quality": 0.9278212669405331
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (compound (functor \"min\") (args (args variable))))",
+ "(clause (head (compound (functor \"min\") (args \"[]\"))))"
+ ],
+ "distribution": [
+ 56,
+ 1
+ ],
+ "quality": 0.9217042304910151
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (binop variable \">\"))"
+ ],
+ "distribution": [
+ 28,
+ 0
+ ],
+ "quality": 0.9192082960259287
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"min\") (args (args variable))) (binop variable \"is\"))"
+ ],
+ "distribution": [
+ 28,
+ 0
+ ],
+ "quality": 0.9192082960259287
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (compound (functor \"min\") (args (args variable))))",
+ "(clause (compound (functor \"min\") (args variable)))"
+ ],
+ "distribution": [
+ 50,
+ 1
+ ],
+ "quality": 0.9084973004782427
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"min\") (args (args variable))))",
+ "(clause (head (compound (functor \"min\") (args (list (t variable))))) (compound (functor \"min\") (args variable)))"
+ ],
+ "distribution": [
+ 128,
+ 8
+ ],
+ "quality": 0.9082150350140412
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=<\") (compound (functor \"min\") (args (args variable))))"
+ ],
+ "distribution": [
+ 25,
+ 0
+ ],
+ "quality": 0.9063619829185183
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 24,
+ 0
+ ],
+ "quality": 0.9008464777679259
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (list (t variable))))))"
+ ],
+ "distribution": [
+ 23,
+ 0
+ ],
+ "quality": 0.894769852257665
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"<\" variable) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 22,
+ 0
+ ],
+ "quality": 0.8883555304556446
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (compound (functor \"min\") (args (args variable))))",
+ "(clause (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 28,
+ 0
+ ],
+ "quality": 0.8677377764570867
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (binop \"is\" variable)))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.8556683824377487
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (list (h variable)) (args variable)))))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"<\" variable))",
+ "(clause (binop \">=\" variable) (binop \"is\" variable))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop \"is\" variable))"
+ ],
+ "distribution": [
+ 2,
+ 37
+ ],
+ "quality": 0.8496456395358111
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (list (h variable)) (args variable)))))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop variable \">=\"))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \">=\" variable))",
+ "(clause (binop \">=\" variable) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 1,
+ 29
+ ],
+ "quality": 0.8304302143257842
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (list (h variable)) (args variable)))))",
+ "(clause (binop \"is\" variable))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"is\" variable))",
+ "(clause (binop \">=\" variable) (binop \"is\" variable))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop \"is\" variable))"
+ ],
+ "distribution": [
+ 3,
+ 38
+ ],
+ "quality": 0.8214183376358836
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args \"[]\" (args \"0\")))))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.8195003264218347
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=\") (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.8195003264218347
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (args variable)))) (compound (functor \"min\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"min\") (args variable)))"
+ ],
+ "distribution": [
+ 23,
+ 0
+ ],
+ "quality": 0.8170633938277345
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (list (h variable)) (args variable)))))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop variable \">=\"))",
+ "(clause (binop \">=\" variable) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 2,
+ 30
+ ],
+ "quality": 0.8134952659081054
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (list (h variable)) (args variable)))))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"<\" variable))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \">=\" variable))",
+ "(clause (binop \">=\" variable) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 2,
+ 30
+ ],
+ "quality": 0.8134952659081054
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop \"is\" variable))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \">=\" variable))",
+ "(clause (binop \">=\" variable) (binop \"is\" variable))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable)) (args variable)))))"
+ ],
+ "distribution": [
+ 4,
+ 39
+ ],
+ "quality": 0.8113558176908959
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (list (h variable)) (args variable)))))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (binop \">=\" variable) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 5,
+ 40
+ ],
+ "quality": 0.8034112515511181
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (list (h variable)) (args variable)))))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop variable \">=\"))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \">=\" variable))",
+ "(clause (binop variable \"<\") (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 2,
+ 29
+ ],
+ "quality": 0.7960421693661188
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (binop variable \"=<\"))",
+ "(clause (binop variable \"=<\") (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 2,
+ 23
+ ],
+ "quality": 0.7702731707769063
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (list (h variable)) (args variable)))))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (binop \"=\" variable))",
+ "(clause (binop variable \"=<\") (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 2,
+ 20
+ ],
+ "quality": 0.7177858994582342
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (list (h variable)) (args variable)))))",
+ "(clause (binop variable \"<\"))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"is\" variable))",
+ "(clause (binop variable \"<\") (binop \"is\" variable))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop \"is\" variable))"
+ ],
+ "distribution": [
+ 7,
+ 35
+ ],
+ "quality": 0.7150650770015805
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop \"is\" variable))",
+ "(clause (binop \"is\" variable))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"is\" variable))",
+ "(clause (binop \"=<\" variable))"
+ ],
+ "distribution": [
+ 0,
+ 9
+ ],
+ "quality": 0.5558402480227483
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"=<\" variable))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop variable \"<\"))"
+ ],
+ "distribution": [
+ 0,
+ 6
+ ],
+ "quality": 0.5186825792811938
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (binop \"=<\" variable))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop variable \">\"))"
+ ],
+ "distribution": [
+ 0,
+ 6
+ ],
+ "quality": 0.5186825792811938
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (binop \"is\" variable))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"is\" variable))",
+ "(clause (binop \"=<\" variable))"
+ ],
+ "distribution": [
+ 3,
+ 12
+ ],
+ "quality": 0.4976823920347866
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"min\") (args (list (h variable)) (args variable)))))",
+ "(clause (head (compound (functor \"min\") (args (list (h variable))))) (binop \"=<\" variable))",
+ "(clause (binop \">\" variable) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 0,
+ 7
+ ],
+ "quality": 0.48071866766983756
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \">=\"))"
+ ],
+ "distribution": [
+ 0,
+ 5
+ ],
+ "quality": 0.4179829043252297
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/lists_advanced/palindrome_1/bugs.json b/prolog/problems/lists_advanced/palindrome_1/bugs.json
new file mode 100644
index 0000000..7b59512
--- /dev/null
+++ b/prolog/problems/lists_advanced/palindrome_1/bugs.json
@@ -0,0 +1,403 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (compound (functor \"rev\") (args variable)))",
+ "(clause (head (compound (functor \"palindrome\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (h variable))))))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (binop variable \"=\"))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"palindrome\") (args variable)))",
+ "(clause (compound (functor \"rev\") (args variable (args variable))))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (compound (functor \"rev\") (args (args variable))))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (t variable))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"rev\") (args variable)) (binop variable \"=\"))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (binop \"=\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \"=\"))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"palindrome\") (args variable)))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (h variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (compound (functor \"conc\") (args (list (t variable)))) (compound (functor \"palindrome\") (args variable)))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (h variable))))) (binop variable \"==\"))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (binop variable \"==\"))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (t variable))))) (compound (functor \"rev\") (args variable)))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (compound (functor \"palindrome\") (args variable)))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (h variable) (t (list (h variable))))))))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (t variable))))) (compound (functor \"palindrome\") (args variable)))",
+ "(clause (binop variable \"=\") (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"rev\") (args variable)) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (t variable))))) (compound (functor \"last_elem\") (args variable)))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (binop \"==\" variable))",
+ "(clause (compound (functor \"rev\") (args variable)) (binop variable \"==\"))",
+ "(clause (compound (functor \"last_elem\") (args (args variable))) (compound (functor \"del\") (args variable)))",
+ "(clause (compound (functor \"last_elem\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (binop \"=\" (compound (functor \"rev\") (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (binop \"=:=\" variable))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (h variable))))) (binop variable \"=:=\"))",
+ "(clause (binop \"=\" variable))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (binop \"==\" variable))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (binop \"==\" variable))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (t variable))))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args variable)) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"rev\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"palindrome\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (list (h variable)) (args (list (h variable))))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"rev\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (h variable))))) (binop \"=\" variable))",
+ "(clause (compound (functor \"rev\") (args (args (list (t variable))))) (compound (functor \"palindrome\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (list (h variable)))) (binop variable \"=\"))",
+ "(clause (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"palindrome\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"palindrome\") (args \"[]\" (args \"[]\")))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (compound (functor \"reverse\") (args variable)))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (compound (functor \"reverse\") (args (args variable))))",
+ "(clause (binop \"=\" variable) (compound (functor \"del\") (args variable)))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (binop variable \"==\"))",
+ "(clause (compound (functor \"rev\") (args variable)) (binop \"==\" variable))",
+ "(clause (compound (functor \"reverse\") (args variable (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (binop variable \"=\"))",
+ "(clause (binop variable \"=\") (binop variable \"=\"))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (t (list (h variable))))))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (compound (functor \"shiftright\") (args variable)))",
+ "(clause (compound (functor \"last_elem\") (args variable)) (compound (functor \"del\") (args (args variable))))",
+ "(clause (binop variable \"=\") (binop \"=\" variable))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (h variable))))) (compound (functor \"rev\") (args (args (list (h variable))))))",
+ "(clause (binop \"=\" (list (t \"[]\"))))",
+ "(clause (binop variable \"=\" (list (t \"[]\"))))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"del_last\") (args (args \"[]\")))))",
+ "(clause (binop \"=\" (list (h variable) (t \"[]\"))))",
+ "(clause (compound (functor \"shiftright\") (args (args variable))) (binop variable \"=\"))",
+ "(clause (compound (functor \"rev\") (args (args (list (h variable))))) (binop \"==\" variable))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (compound (functor \"last_elem\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (binop variable \"==\"))",
+ "(clause (compound (functor \"conc\") (args (list (h variable)))) (binop variable \"==\"))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (t \"[]\"))))))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (t variable))))) (compound (functor \"last_elem\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (h variable))))) (compound (functor \"del\") (args variable)))",
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" variable))",
+ "(clause (compound (functor \"last_elem\") (args variable)) (compound (functor \"palindrome\") (args variable)))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (h variable) (t \"[]\"))))))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (h variable))))) (compound (functor \"last_elem\") (args (list (h variable)))))",
+ "(clause (compound (functor \"last_elem\") (args (args variable))) (binop \"==\" variable))",
+ "(clause (compound (functor \"conc\") (args (args (list (t variable))))) (compound (functor \"rev\") (args (args variable))))",
+ "(clause (binop (list (t variable)) \"=\") (compound (functor \"palindrome\") (args variable)))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (t variable))))))",
+ "(clause (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (h variable))))) (binop \"==\" variable))",
+ "(clause (binop \"=\" variable) (compound (functor \"rev\") (args variable)))",
+ "(clause (binop (compound (functor \"rev\") (args variable)) \"=\" variable))",
+ "(clause (binop \"=\" (list (t variable))) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (h variable))) (binop (binop \"+\" (list (h variable))) \"=\"))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (binop (compound (functor \"rev\") (args variable)) \"=\"))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"cut\") (args variable)))",
+ "(clause (binop (list (h variable)) \"=\") (binop variable \"=\"))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (t variable))))) (compound (functor \"shiftright\") (args variable)))",
+ "(clause (head (compound (functor \"del_last\") (args (list (h variable)) (args \"[]\")))))",
+ "(clause (compound (functor \"shiftright\") (args (args (list (t (list (t variable))))))) (compound (functor \"palindrome\") (args variable)))",
+ "(clause (head (compound (functor \"del_last\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"cut\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"del_last\") (args (args (list (t variable)))))) (compound (functor \"del_last\") (args (args variable))))",
+ "(clause (head (compound (functor \"last\") (args variable))) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (h variable))) (binop (list (h variable)) \"=\"))",
+ "(clause (head (compound (functor \"del_last\") (args (list (t variable))))) (compound (functor \"del_last\") (args variable)))",
+ "(clause (binop variable \"=\" (compound (functor \"rev\") (args variable))))",
+ "(clause (head (compound (functor \"last\") (args (args variable)))) (compound (functor \"last\") (args (args variable))))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (list (h variable)))",
+ "(clause (head (compound (functor \"cut\") (args variable))) (binop variable \"=\"))",
+ "(clause (compound (functor \"last_elem\") (args (list (t variable)))) (compound (functor \"del_last\") (args variable)))",
+ "(clause (head (compound (functor \"del_last\") (args (list (h variable))))))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"palindrome\") (args variable)))",
+ "(clause (binop variable \"=\") (compound (functor \"last_elem\") (args variable)))",
+ "(clause (compound (functor \"last_elem\") (args (list (h variable)) (args variable))))",
+ "(clause (compound (functor \"concat\") (args (args (list (h variable))))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (compound (functor \"concat\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (t (list (h variable))))))))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (t variable))))) (binop \"==\" variable))",
+ "(clause (head (compound (functor \"palindrome\") (args (list (h variable) (t (list (t (list (h variable))))))))))",
+ "(clause (binop variable \"=\" variable))",
+ "(clause (compound (functor \"del_last\") (args (args variable))) (compound (functor \"palindrome\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"rev\") (args (args variable))))",
+ "(clause (list (t variable)) (compound (functor \"palindrome\") (args variable)))",
+ "(clause (binop (compound (functor \"rev\") (args variable)) \"==\" variable))",
+ "(clause (list (h variable)))",
+ "(clause (compound (functor \"rev\") (args (args (list (t variable))))))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \"==\"))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (compound (functor \"palindrome\") (args variable)))",
+ "(clause (compound (functor \"rev\") (args (args (list (t variable))))) (compound (functor \"rev\") (args variable)))",
+ "(clause (compound (functor \"rev\") (args (args (list (h variable))))) (binop \"=\" variable))",
+ "(clause (binop (binop variable \"+\") \"=\") (binop variable \"=\"))",
+ "(clause (binop variable \"==\" (compound (functor \"rev\") (args variable))))",
+ "(clause (compound (functor \"concat\") (args variable)) (compound (functor \"concat\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (compound (functor \"palindrome\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (compound (functor \"eq\") (args variable)))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (binop \"==\" (compound (functor \"rev\") (args variable))))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (compound (functor \"eq\") (args (args variable))))",
+ "(clause (binop variable \"=\") (binop \"=\" (compound (functor \"rev\") (args variable))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"rev\") (args variable)) (compound (functor \"eq\") (args variable)))",
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (binop (compound (functor \"rev\") (args variable)) \"==\"))",
+ "(clause (binop variable \"=\") (compound (functor \"concat\") (args (args (args variable)))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"palindrome\") (args (list (h variable))))) (binop variable \"==\"))"
+ ],
+ "distribution": [
+ 26,
+ 0
+ ],
+ "quality": 0.9220175081691375
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (compound (functor \"rev\") (args (args variable))))"
+ ],
+ "distribution": [
+ 6,
+ 102
+ ],
+ "quality": 0.9214174451872571
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (binop variable \"==\"))"
+ ],
+ "distribution": [
+ 24,
+ 0
+ ],
+ "quality": 0.9131653327473639
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"rev\") (args variable)) (binop variable \"=\"))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 1,
+ 43
+ ],
+ "quality": 0.9088225383162426
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (compound (functor \"palindrome\") (args variable)))"
+ ],
+ "distribution": [
+ 21,
+ 0
+ ],
+ "quality": 0.9000021394574145
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"palindrome\") (args variable))))"
+ ],
+ "distribution": [
+ 20,
+ 0
+ ],
+ "quality": 0.8945588313618569
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"rev\") (args (args variable))) (binop \"==\" variable))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.8826872961114901
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"palindrome\") (args (list (t variable))))) (compound (functor \"last_elem\") (args variable)))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.8826872961114901
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (binop \"=\" (compound (functor \"rev\") (args variable))))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8748253717871608
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"last_elem\") (args (args variable))) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8748253717871608
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"last_elem\") (args (args variable))) (compound (functor \"del\") (args variable)))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8748253717871608
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (binop \"=:=\" variable))"
+ ],
+ "distribution": [
+ 16,
+ 0
+ ],
+ "quality": 0.8658128364243738
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"palindrome\") (args variable))) (binop \"==\" variable))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.8554591270460289
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (binop \"==\" variable))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.8417180723930746
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"palindrome\") (args variable)))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.8277213071011541
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.8129311580263633
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=\") (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.7932597029690587
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"rev\") (args (args variable))) (binop variable \"==\"))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.7932597029690587
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=\") (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.7725068668211278
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"rev\") (args (args (list (h variable))))) (binop \"==\" variable))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7431958534489994
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (binop variable \"==\"))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7431958534489994
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"palindrome\") (args (list (t (list (h variable))))))) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7431958534489994
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/lists_advanced/rev_2/bugs.json b/prolog/problems/lists_advanced/rev_2/bugs.json
new file mode 100644
index 0000000..c728b44
--- /dev/null
+++ b/prolog/problems/lists_advanced/rev_2/bugs.json
@@ -0,0 +1,610 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"rev\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"rev\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"rev\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"rev\") (args (list (t variable))))) (compound (functor \"rev\") (args variable)))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"rev\") (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"rev\") (args variable)))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"rev\") (args (args variable))))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))))",
+ "(clause (head (compound (functor \"rev\") (args (args (list (h variable)))))) (compound (functor \"rev\") (args (args variable))))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable)) (args (list (t variable)))))))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"rev\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable)) (args (list (t (list (h variable)))))))))",
+ "(clause (head (compound (functor \"rev\") (args (list (t \"[]\"))))))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable) (t \"[]\"))))))",
+ "(clause (compound (functor \"rev\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t variable))) (binop variable \"=\"))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"rev\") (args variable)))",
+ "(clause (head (compound (functor \"rev\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"rev\") (args (args variable))))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"rev\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"rev\") (args variable (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"rev\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"rev\") (args (list (t \"[]\")) (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))) (compound (functor \"rev\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"rev\") (args (list (t (list (h variable)))) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable)) (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop variable \"=\"))",
+ "(clause (compound (functor \"rev\") (args variable)) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"rev\") (args (args (list (t variable)))))) (compound (functor \"rev\") (args (args variable))))",
+ "(clause (head (compound (functor \"conc\") (args variable))))",
+ "(clause (head (compound (functor \"rev\") (args (list (t \"[]\")) (args (list (h variable)))))))",
+ "(clause (binop variable \"=\") (binop \"=\" variable))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"rev\") (args (args variable))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"rev\") (args (list (t variable))))))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"rev\") (args (list (t (list (h variable))))))) (compound (functor \"rev\") (args variable)))",
+ "(clause (head (compound (functor \"rev\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"rev\") (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"rev\") (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"conc\") (args (args variable (args variable)))))",
+ "(clause (head (compound (functor \"rev\") (args variable))) (compound (functor \"rev\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"rev\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"rev\") (args (args variable (args variable))))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"rev\") (args (args variable))))",
+ "(clause (head (compound (functor \"rev\") (args (args (args variable))))) (compound (functor \"rev\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))) (binop \"=\" variable))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (binop variable \"=\" (list (t variable))))",
+ "(clause (compound (functor \"conc\") (args variable (args (args variable)))))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (compound (functor \"conc\") (args \"[]\" (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args \"[]\")))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"shiftleft\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"rev\") (args (args variable))))",
+ "(clause (head (compound (functor \"rev\") (args (list (t (list (h variable))))))) (compound (functor \"rev\") (args (list (h variable)))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"rev\") (args variable))))",
+ "(clause (compound (functor \"conc\") (args \"[]\" (args (list (h variable))))))",
+ "(clause (compound (functor \"rev\") (args variable)) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop variable \"=\") (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"rev\") (args (list (t (list (t variable))))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop variable \"=\") (compound (functor \"rev\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"rev\") (args variable)))",
+ "(clause (head (compound (functor \"rev\") (args (list (t variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"conc\") (args (list (h variable)) (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))) (compound (functor \"insert\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (binop \"=\" variable))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (compound (functor \"rev\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"rev\") (args (list (t variable)) (args (list (h variable)))))))",
+ "(clause (binop variable \"=\") (compound (functor \"rev\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args (args (args (list (t variable))))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"conc\") (args (args (list (h variable)))))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"rev\") (args (args variable))))",
+ "(clause (head (compound (functor \"rev\") (args (list (t (list (t \"[]\"))))))))",
+ "(clause (head (compound (functor \"rev\") (args (list (t (list (t \"[]\")))) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"rev\") (args (list (t (list (t \"[]\")))) (args (list (t (list (h variable)))))))))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (binop variable \"=\") (compound (functor \"shiftleft\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable) (t (list (t \"[]\"))))))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"rev\") (args (args (list (h variable)))))) (compound (functor \"rev\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"reverse\") (args (list (t variable))))) (compound (functor \"reverse\") (args variable)))",
+ "(clause (head (compound (functor \"reverse\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"rev\") (args (list (t (list (h variable) (t \"[]\"))))))))",
+ "(clause (compound (functor \"rev\") (args variable (args \"[]\"))))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable)) (args (list (t \"[]\")))))))",
+ "(clause (compound (functor \"rev\") (args (args \"[]\"))))",
+ "(clause (head (compound (functor \"rev\") (args (list (t \"[]\")) (args (list (t \"[]\")))))))",
+ "(clause (head (compound (functor \"rev\") (args (args (list (h variable) (t \"[]\")))))))",
+ "(clause (compound (functor \"rev\") (args (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"append\") (args (args (args variable)))))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (compound (functor \"append\") (args variable)))",
+ "(clause (head (compound (functor \"rev\") (args (args (list (t \"[]\")))))))",
+ "(clause (head (compound (functor \"accRev\") (args (args variable (args variable))))))",
+ "(clause (head (compound (functor \"rev\") (args (args (list (t (list (h variable) (t \"[]\")))))))))",
+ "(clause (head (compound (functor \"accRev\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))) (compound (functor \"append\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"rev\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"accRev\") (args (args variable)))) (compound (functor \"accRev\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"accRev\") (args (args (args variable))))) (compound (functor \"accRev\") (args (args (args variable)))))",
+ "(clause (compound (functor \"accRev\") (args (args \"[]\"))))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"accRev\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"accRev\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"rev\") (args (args (list (h variable) (t (list (t \"[]\")))))))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"accRev\") (args (list (t variable))))) (compound (functor \"accRev\") (args variable)))",
+ "(clause (head (compound (functor \"rev\") (args (args (list (t (list (t \"[]\")))))))))",
+ "(clause (head (compound (functor \"accRev\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"rev\") (args (list (t variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable)) (args (list (t (list (t \"[]\")))))))))",
+ "(clause (head (compound (functor \"rev\") (args variable))) (compound (functor \"accRev\") (args variable)))",
+ "(clause (head (compound (functor \"accRev\") (args (list (h variable))))) (compound (functor \"accRev\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))) (binop \"=\" (compound (functor \"conc\") (args (args variable)))))",
+ "(clause (compound (functor \"rev\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (args (list (t (list (h variable))))))))",
+ "(clause (compound (functor \"conc\") (args \"[]\" (args (list (t (list (h variable))))))))",
+ "(clause (compound (functor \"accRev\") (args variable (args \"[]\"))))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (compound (functor \"insert\") (args variable)))",
+ "(clause (compound (functor \"accRev\") (args (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"rev\") (args (args variable))))"
+ ],
+ "distribution": [
+ 121,
+ 0
+ ],
+ "quality": 0.986556593510503
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 97,
+ 0
+ ],
+ "quality": 0.9826434045656284
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 77,
+ 0
+ ],
+ "quality": 0.9773800451764163
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (args (list (h variable)))))) (compound (functor \"rev\") (args (args variable))))"
+ ],
+ "distribution": [
+ 65,
+ 0
+ ],
+ "quality": 0.9725452093629203
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 62,
+ 0
+ ],
+ "quality": 0.9710153654076905
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (list (h variable)) (args (list (t variable)))))))"
+ ],
+ "distribution": [
+ 58,
+ 0
+ ],
+ "quality": 0.968705070624353
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"rev\") (args (args variable))) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 57,
+ 0
+ ],
+ "quality": 0.9680718894186054
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"rev\") (args (args variable))))"
+ ],
+ "distribution": [
+ 42,
+ 0
+ ],
+ "quality": 0.9539159922513188
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"rev\") (args (args variable))))"
+ ],
+ "distribution": [
+ 39,
+ 0
+ ],
+ "quality": 0.9498796288138498
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"rev\") (args (args variable))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 38,
+ 0
+ ],
+ "quality": 0.9482884419024931
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 37,
+ 0
+ ],
+ "quality": 0.9465964556697102
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (t (list (h variable))))))"
+ ],
+ "distribution": [
+ 31,
+ 0
+ ],
+ "quality": 0.9335831017115431
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 30,
+ 0
+ ],
+ "quality": 0.9308550600732364
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (list (h variable)) (args variable)))))"
+ ],
+ "distribution": [
+ 28,
+ 0
+ ],
+ "quality": 0.9246600103422892
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 26,
+ 0
+ ],
+ "quality": 0.9172907001508989
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"rev\") (args variable)) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 25,
+ 0
+ ],
+ "quality": 0.9148346932895947
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 24,
+ 0
+ ],
+ "quality": 0.9100998125124599
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"rev\") (args (list (t variable))))) (compound (functor \"rev\") (args variable)))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 15,
+ 163
+ ],
+ "quality": 0.9082355033795803
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args variable (args variable)))))"
+ ],
+ "distribution": [
+ 36,
+ 1
+ ],
+ "quality": 0.9043979683819339
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"rev\") (args (list (t variable))))) (compound (functor \"rev\") (args variable)))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 16,
+ 165
+ ],
+ "quality": 0.9042753585154341
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 22,
+ 0
+ ],
+ "quality": 0.8982912661352064
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"conc\") (args variable))))"
+ ],
+ "distribution": [
+ 19,
+ 0
+ ],
+ "quality": 0.8785845199323865
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"rev\") (args (list (t variable))))) (compound (functor \"rev\") (args variable)))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 23,
+ 166
+ ],
+ "quality": 0.8716355529231646
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8613551527158146
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (list (t variable))))))"
+ ],
+ "distribution": [
+ 16,
+ 0
+ ],
+ "quality": 0.8508714504566388
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 16,
+ 0
+ ],
+ "quality": 0.8508714504566388
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.8382228419619023
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (list (t (list (h variable))))))) (compound (functor \"rev\") (args variable)))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.8382228419619023
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"rev\") (args (list (t variable))))) (compound (functor \"rev\") (args variable)))",
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 35,
+ 171
+ ],
+ "quality": 0.824434570232329
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (list (h variable))))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.8237200730367206
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"rev\") (args (args variable))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.8237200730367206
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (args (list (h variable)))))))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.819408982442943
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"rev\") (args (args variable))))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.819408982442943
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 0,
+ 11
+ ],
+ "quality": 0.6906520725171637
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 1,
+ 14
+ ],
+ "quality": 0.6849688185649977
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"rev\") (args (list (t variable))))) (compound (functor \"rev\") (args variable)))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 76,
+ 166
+ ],
+ "quality": 0.6683723967959012
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 93,
+ 174
+ ],
+ "quality": 0.6376377180918508
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"rev\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"rev\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 164,
+ 186
+ ],
+ "quality": 0.5221807820252026
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/lists_advanced/shiftleft_2/bugs.json b/prolog/problems/lists_advanced/shiftleft_2/bugs.json
new file mode 100644
index 0000000..04609fd
--- /dev/null
+++ b/prolog/problems/lists_advanced/shiftleft_2/bugs.json
@@ -0,0 +1,349 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"shiftleft\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"shiftleft\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"shiftleft\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"shiftleft\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"shiftleft\") (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable)) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable))))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (args variable)))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable)) (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable))))) (compound (functor \"shiftleft\") (args variable)))",
+ "(clause (head (compound (functor \"shiftleft\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable)) (args (list (t (list (h variable)))))))))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"shiftleft\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable)) (args variable)))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (binop variable \"=\"))",
+ "(clause (head (compound (functor \"shiftleft\") (args (args variable)))) (compound (functor \"shiftleft\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable))))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t \"[]\"))))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable) (t \"[]\"))))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"shiftleft\") (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"conc\") (args (list (h variable)) (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args (list (t variable))))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable))))) (binop \"=\" (compound (functor \"conc\") (args variable))))",
+ "(clause (head (compound (functor \"shiftleft\") (args variable))))",
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t \"[]\")) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"left\") (args (list (t (list (h variable)))) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"left\") (args (list (t (list (t variable))))))) (compound (functor \"left\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (args (compound (functor \"conc\") (args (args (args variable)))))))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable (args variable))))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable))))) (compound (functor \"shiftleft\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (args variable)))) (compound (functor \"concat\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable))))) (compound (functor \"append\") (args variable)))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable))))) (compound (functor \"append\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args variable)) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable)) (args (compound (functor \"conc\") (args variable)))))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable))))) (compound (functor \"left\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"left\") (args (list (h variable))))) (compound (functor \"left\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable))))) (compound (functor \"left\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (args variable)))) (compound (functor \"append\") (args (args (args variable)))))",
+ "(clause (compound (functor \"shiftleft\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable))))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t (list (h variable))))))) (binop variable \"=\"))",
+ "(clause (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"left\") (args (args (list (t variable)))))) (compound (functor \"left\") (args (args variable))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable)) (args variable)))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"conc\") (args variable))))",
+ "(clause (head (compound (functor \"shiftleft\") (args \"[]\" (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable)) (args (compound (functor \"conc\") (args (args (list (h variable))))))))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable))))) (compound (functor \"concat\") (args variable)))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t (list (h variable)))) (args (list (h variable)))))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (args (list (h variable)))))) (compound (functor \"left\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (args (list (t variable)))))) (compound (functor \"left\") (args (args (list (t variable))))))",
+ "(clause (compound (functor \"shiftleft\") (args (args variable))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (compound (functor \"shiftleft\") (args (list (t (list (h variable)))))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable))))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 69,
+ 0
+ ],
+ "quality": 0.9735063586852684
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"shiftleft\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 4,
+ 186
+ ],
+ "quality": 0.9729895641497852
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable)) (args (list (h variable)))))))"
+ ],
+ "distribution": [
+ 41,
+ 0
+ ],
+ "quality": 0.9545110973173283
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 31,
+ 0
+ ],
+ "quality": 0.9383064708954235
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable)) (args (list (t variable)))))))"
+ ],
+ "distribution": [
+ 29,
+ 0
+ ],
+ "quality": 0.9337500809431362
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 13,
+ 187
+ ],
+ "quality": 0.9297722589938553
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftleft\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 27,
+ 0
+ ],
+ "quality": 0.928131935844377
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable))))) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 20,
+ 0
+ ],
+ "quality": 0.8999602495440122
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 19,
+ 0
+ ],
+ "quality": 0.8945160184994223
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable)) (args (list (t (list (h variable)))))))))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.8885033852926123
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 16,
+ 0
+ ],
+ "quality": 0.8735634581359323
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable)) (args variable)))))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.8658360225106579
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftleft\") (args (args variable)))) (compound (functor \"shiftleft\") (args (args variable))))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.8274301222040094
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable))))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.7906938494946442
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable))))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.7906938494946442
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"shiftleft\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 1,
+ 18
+ ],
+ "quality": 0.7836264816857417
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftleft\") (args (args (list (h variable)))))))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7651868458596011
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable))))) (binop \"=\" (compound (functor \"conc\") (args variable))))"
+ ],
+ "distribution": [
+ 8,
+ 0
+ ],
+ "quality": 0.7376026176672326
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 8,
+ 0
+ ],
+ "quality": 0.7376026176672326
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 8,
+ 0
+ ],
+ "quality": 0.7376026176672326
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftleft\") (args variable))))"
+ ],
+ "distribution": [
+ 8,
+ 0
+ ],
+ "quality": 0.7376026176672326
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.6946627662225194
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"shiftleft\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 113,
+ 208
+ ],
+ "quality": 0.6418259859921002
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/lists_advanced/shiftright_2/bugs.json b/prolog/problems/lists_advanced/shiftright_2/bugs.json
new file mode 100644
index 0000000..cab63bf
--- /dev/null
+++ b/prolog/problems/lists_advanced/shiftright_2/bugs.json
@@ -0,0 +1,464 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"shiftright\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args (list (t variable)))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"shiftright\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (t variable))))) (compound (functor \"shiftright\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))) (compound (functor \"shiftleft\") (args variable)))",
+ "(clause (head (compound (functor \"shiftright\") (args \"[]\"))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args variable))) (compound (functor \"shiftleft\") (args (args variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"shiftright\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (h variable))))))",
+ "(clause (head (compound (functor \"shiftright\") (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"shiftright\") (args variable))) (compound (functor \"rev\") (args variable)))",
+ "(clause (head (compound (functor \"shiftright\") (args variable))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"conc\") (args (args variable (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))) (compound (functor \"shiftright\") (args (args variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (h variable)) (args (list (t (list (h variable)))))))))",
+ "(clause (compound (functor \"rev\") (args (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (compound (functor \"del\") (args variable)) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"shiftright\") (args variable))) (compound (functor \"last_elem\") (args variable)))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (t variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop variable \"=\"))",
+ "(clause (compound (functor \"conc\") (args variable)) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (h variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"rev\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (h variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"last_elem\") (args variable)) (compound (functor \"del\") (args (args variable))))",
+ "(clause (compound (functor \"last_elem\") (args (args variable))) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"shiftright\") (args (args variable))))",
+ "(clause (compound (functor \"last_elem\") (args (args variable))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))) (compound (functor \"rev\") (args (args variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (t variable))))) (compound (functor \"conc\") (args (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (t variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (h variable) (t \"[]\"))))))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (t \"[]\"))))))",
+ "(clause (head (compound (functor \"t_elem\") (args variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (args (list (h variable)))))))",
+ "(clause (compound (functor \"rev\") (args (args (list (t variable))))) (compound (functor \"rev\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"t_elem\") (args (args variable)))))",
+ "(clause (compound (functor \"del\") (args variable)) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"rev\") (args variable)) (compound (functor \"del\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"shiftright\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"shiftright\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (binop \"=\" variable))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (t \"[]\")) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (t (list (h variable)))) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"del\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"shiftright\") (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (h variable)) (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (t variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"rev\") (args (args (list (h variable))))) (compound (functor \"del\") (args variable)))",
+ "(clause (compound (functor \"shiftleft\") (args (args variable))) (compound (functor \"rev\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (t variable))))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args (list (h variable)))))) (compound (functor \"shiftright\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (t variable))))) (compound (functor \"rev\") (args variable)))",
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))) (compound (functor \"del\") (args (args (args variable)))))",
+ "(clause (compound (functor \"shiftright\") (args (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (compound (functor \"shiftright\") (args (args (list (t variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args (list (h variable)))))) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"conc\") (args variable (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"del_last\") (args (args \"[]\" (args variable))))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args (list (t (list (t variable)))))))) (compound (functor \"shiftright\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"del_last\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\"))))",
+ "(clause (compound (functor \"shiftright\") (args (args variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))) (compound (functor \"append\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))) (compound (functor \"shiftright\") (args (args (compound (functor \"conc\") (args (args (args variable))))))))",
+ "(clause (compound (functor \"rev\") (args (args variable))) (compound (functor \"shiftleft\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args (list (h variable)) (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args (list (t variable))))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"last_elem\") (args (args variable)))) (compound (functor \"last_elem\") (args (args variable))))",
+ "(clause (compound (functor \"last_elem\") (args (args variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"del\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (compound (functor \"del\") (args variable)))",
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (t variable))))) (compound (functor \"del_last\") (args variable)))",
+ "(clause (head (compound (functor \"del_last\") (args (list (t \"[]\")) (args (args variable))))))",
+ "(clause (head (compound (functor \"del_last\") (args (list (t \"[]\"))))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args (list (h variable)))))) (compound (functor \"del_last\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"del_last\") (args (list (t variable))))) (compound (functor \"del_last\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"del_last\") (args (list (h variable)) (args \"[]\")))))",
+ "(clause (head (compound (functor \"conc\") (args (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"del_last\") (args (list (h variable)) (args (args variable))))))",
+ "(clause (binop variable \"=\") (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"del\") (args variable)) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (h variable))))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"del_last\") (args (list (t \"[]\")) (args \"[]\")))))",
+ "(clause (head (compound (functor \"del_last\") (args (list (h variable) (t \"[]\"))))))",
+ "(clause (head (compound (functor \"del_last\") (args (args (args variable))))) (compound (functor \"del_last\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"shiftright\") (args \"[]\" (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"shiftright\") (args (args variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args variable))) (compound (functor \"last\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"shiftright\") (args (list (h variable))))) (compound (functor \"findlast\") (args (list (h variable)))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 43,
+ 0
+ ],
+ "quality": 0.9544875092982839
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 42,
+ 1
+ ],
+ "quality": 0.9256141411419427
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 27,
+ 0
+ ],
+ "quality": 0.9241448036677106
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"shiftright\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args (list (t variable)))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"shiftright\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 2,
+ 66
+ ],
+ "quality": 0.9230760007308819
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 26,
+ 0
+ ],
+ "quality": 0.920998930735984
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftright\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 33,
+ 1
+ ],
+ "quality": 0.9036493742845172
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))) (compound (functor \"shiftright\") (args (args variable))))"
+ ],
+ "distribution": [
+ 21,
+ 0
+ ],
+ "quality": 0.8994670201920275
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"shiftright\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 1,
+ 40
+ ],
+ "quality": 0.894174740526763
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"shiftright\") (args variable))) (compound (functor \"shiftleft\") (args (args variable))))"
+ ],
+ "distribution": [
+ 3,
+ 47
+ ],
+ "quality": 0.8879015719689589
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 2,
+ 45
+ ],
+ "quality": 0.8828800380948056
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftright\") (args (list (h variable))))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8746032887862484
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8746032887862484
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8746032887862484
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftright\") (args (list (h variable))))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.8574419492958788
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftright\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.8574419492958788
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"shiftright\") (args variable))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.823250673256642
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftright\") (args variable))))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.8175234160576993
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"t_elem\") (args variable))))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.7757149640806767
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.7757149640806767
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"shiftright\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7471668102545188
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args variable)) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 1,
+ 16
+ ],
+ "quality": 0.7359401462937517
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftright\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"shiftright\") (args variable))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.7247160718268745
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftright\") (args (args (list (t variable)))))))"
+ ],
+ "distribution": [
+ 8,
+ 0
+ ],
+ "quality": 0.7162895278146735
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftright\") (args (list (h variable)) (args variable)))))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.6715599948189581
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"shiftright\") (args variable))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.6715599948189581
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"rev\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 0,
+ 7
+ ],
+ "quality": 0.6625971589972083
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"last_elem\") (args (args variable))) (compound (functor \"conc\") (args (list (h variable)))))"
+ ],
+ "distribution": [
+ 2,
+ 11
+ ],
+ "quality": 0.609507882414573
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"del\") (args variable)) (compound (functor \"conc\") (args (list (h variable)))))"
+ ],
+ "distribution": [
+ 6,
+ 14
+ ],
+ "quality": 0.4752154241003168
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/lists_advanced/sublist_2/bugs.json b/prolog/problems/lists_advanced/sublist_2/bugs.json
new file mode 100644
index 0000000..acce3a7
--- /dev/null
+++ b/prolog/problems/lists_advanced/sublist_2/bugs.json
@@ -0,0 +1,527 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"sublist\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sublist\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"sublist\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"sublist\") (args \"[]\" (args \"[]\")))))",
+ "(clause (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"sublist\") (args (list (t variable))))) (compound (functor \"sublist\") (args variable)))",
+ "(clause (binop variable \"=\"))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (compound (functor \"sublist\") (args (args variable))))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sublist\") (args (list (h variable))))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"sublist\") (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"sublist\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"sublist\") (args variable)))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"sublist\") (args (args variable))))",
+ "(clause (head (compound (functor \"sublist\") (args (list (t variable))))) (compound (functor \"conc\") (args (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"sublist\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (args (list (h variable)))))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"sublist\") (args variable))))",
+ "(clause (head (compound (functor \"sublist\") (args (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))))",
+ "(clause (binop variable \"=\") (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"sublist\") (args variable)))",
+ "(clause (head (compound (functor \"sublist\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"sublist\") (args (args (list (t variable)))))) (compound (functor \"sublist\") (args (args variable))))",
+ "(clause (binop variable \"=\") (compound (functor \"sublist\") (args (args variable))))",
+ "(clause (compound (functor \"sublist\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"conc\") (args (args (args (list (t variable)))))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args variable)) (binop \"=\" variable))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (compound (functor \"sublist\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"sublist\") (args variable (args variable)))))",
+ "(clause (head (compound (functor \"sublist\") (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t variable))) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop \"=\" variable))",
+ "(clause (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"sublist\") (args variable)))",
+ "(clause (head (compound (functor \"sublist\") (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"sublist\") (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args (list (t variable))))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"sublist\") (args variable)))",
+ "(clause (head (compound (functor \"sublist\") (args (list (t variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"sublist\") (args (args variable))))",
+ "(clause (head (compound (functor \"sublist\") (args (list (t variable))))) (binop variable \"=\"))",
+ "(clause (compound (functor \"conc\") (args (args (args (list (t variable)))))) (compound (functor \"sublist\") (args variable)))",
+ "(clause (head (compound (functor \"sublist\") (args (list (t variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (binop variable \"=\") (compound (functor \"sublist\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"sublist\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args \"[]\"))))",
+ "(clause (compound (functor \"sublist\") (args (args variable))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"conc\") (args variable (args \"[]\"))))",
+ "(clause (head (compound (functor \"sublist\") (args (list (h variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args \"[]\" (args variable)))))",
+ "(clause (binop variable \"=\") (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"sublist\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"sublist\") (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"sublist\") (args (list (h variable))))) (compound (functor \"sublist\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"sublist\") (args (list (t variable))))))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (compound (functor \"conc\") (args (list (t variable)))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"sublist\") (args (args variable))))",
+ "(clause (binop variable \"=\") (binop \"=\" variable))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (binop variable \"\\=\"))",
+ "(clause (binop \"=\" (list (h variable) (t \"[]\"))))",
+ "(clause (compound (functor \"conc\") (args (args variable (args variable)))))",
+ "(clause (binop variable \"=\" (list (t \"[]\"))))",
+ "(clause (binop \"=\" (list (t \"[]\"))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"sublist\") (args \"[]\" (args variable)))))",
+ "(clause (binop variable \"\\=\" \"[]\"))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (unop \\+ (binop variable \"=\")))",
+ "(clause (binop \"\\=\" \"[]\"))",
+ "(clause (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (unop \\+ (binop \"=\" \"[]\")))",
+ "(clause (unop \\+ (binop variable \"=\" \"[]\")))",
+ "(clause (head (compound (functor \"sublist\") (args variable))) (compound (functor \"sublist\") (args (args variable))))",
+ "(clause (compound (functor \"sublist\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (binop variable \"=\")))",
+ "(clause (head (binop \"=\" variable)))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (compound (functor \"sublist\") (args variable)))",
+ "(clause (head (compound (functor \"sublist\") (args (list (h variable)) (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"sublist\") (args (list (t variable))))) (compound (functor \"sublist\") (args (list (h variable)))))",
+ "(clause (compound (functor \"sublist\") (args (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (binop \"=\" variable))",
+ "(clause (binop variable \"\\=\"))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"sublist\") (args (args variable))))",
+ "(clause (compound (functor \"sublist\") (args (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sublist\") (args (list (t variable)) (args variable)))))",
+ "(clause (binop \"=\" (list (t (list (t variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (compound (functor \"conc\") (args (list (t variable)))))",
+ "(clause (compound (functor \"sublist\") (args variable (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable) (t variable))))))",
+ "(clause (head (compound (functor \"sublist\") (args (list (t (list (t variable))))))) (compound (functor \"sublist\") (args variable)))",
+ "(clause (binop \"\\==\" \"[]\"))",
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"sublist\") (args (list (h variable)) (args \"[]\")))))",
+ "(clause (binop variable \"\\==\" \"[]\"))",
+ "(clause (head (compound (functor \"sublist\") (args variable))) (compound (functor \"append\") (args (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args variable (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args variable (args (list (t variable))))))",
+ "(clause (binop variable \"=\") (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"sublist\") (args (list (h variable))))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"fsub\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sublist\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"sublist\") (args (list (t variable)) (args (list (t variable)))))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (binop variable \"\\=\"))",
+ "(clause (compound (functor \"conc\") (args \"[]\" (args variable))))",
+ "(clause (compound (functor \"sublist\") (args (args variable))) (unop \\+ (binop variable \"=\")))",
+ "(clause (head (compound (functor \"sublist\") (args (list (h variable))))) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"sublist\") (args (list (t variable))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (compound (functor \"conc\") (args \"[]\" (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (list (h variable)) (args variable))))",
+ "(clause (head (compound (functor \"fsub\") (args (args (args variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (compound (functor \"conc\") (args (args (list (t variable))))))",
+ "(clause (compound (functor \"conc\") (args \"[]\")))",
+ "(clause (binop (list (h variable)) \"=\"))",
+ "(clause (head (compound (functor \"subl\") (args (args (list (t variable)))))) (compound (functor \"subl\") (args (args variable))))",
+ "(clause (head (compound (functor \"sublist\") (args variable))) (compound (functor \"subl\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (compound (functor \"subl\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"subl\") (args (args (args variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"sublist\") (args variable))) (compound (functor \"subl\") (args (args variable))))",
+ "(clause (head (compound (functor \"sublist\") (args (list (t \"[]\"))))))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (binop variable \"=<\") (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"sublist\") (args (args (list (t variable)))))) (compound (functor \"sublist\") (args variable)))",
+ "(clause (head (compound (functor \"sublist\") (args (list (h variable) (t \"[]\"))))))",
+ "(clause (head (compound (functor \"subl\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"sublist\") (args variable)) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"subl\") (args (args \"[]\" (args variable))))))",
+ "(clause (head (compound (functor \"subl\") (args variable (args \"[]\")))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"subl\") (args (args (args variable))))) (compound (functor \"subl\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sublist\") (args (list (h variable))))) (binop variable \"=<\"))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=<\" variable))",
+ "(clause (compound (functor \"conc\") (args (args (list (t variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"subl\") (args variable))) (compound (functor \"subl\") (args variable)))",
+ "(clause (compound (functor \"subl\") (args variable (args variable))))",
+ "(clause (head (compound (functor \"subl\") (args (args \"[]\")))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 96,
+ 0
+ ],
+ "quality": 0.9822117568233223
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 59,
+ 0
+ ],
+ "quality": 0.9678944049149696
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args (args (list (t variable)))))) (compound (functor \"sublist\") (args (args variable))))"
+ ],
+ "distribution": [
+ 45,
+ 0
+ ],
+ "quality": 0.95558425679854
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 45,
+ 0
+ ],
+ "quality": 0.95558425679854
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"sublist\") (args (list (t variable))))) (compound (functor \"sublist\") (args variable)))"
+ ],
+ "distribution": [
+ 77,
+ 1
+ ],
+ "quality": 0.9469515797981775
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args (list (h variable))))) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 58,
+ 1
+ ],
+ "quality": 0.9427119683066102
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args (list (h variable)) (args (list (h variable)))))))"
+ ],
+ "distribution": [
+ 105,
+ 4
+ ],
+ "quality": 0.9380206385193013
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args variable))) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 33,
+ 0
+ ],
+ "quality": 0.9338975659148043
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 122,
+ 5
+ ],
+ "quality": 0.9291150449571097
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"sublist\") (args (list (t variable))))) (compound (functor \"sublist\") (args variable)))"
+ ],
+ "distribution": [
+ 60,
+ 1
+ ],
+ "quality": 0.9260809884815985
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=\") (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 47,
+ 1
+ ],
+ "quality": 0.9259029131445955
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 2,
+ 73
+ ],
+ "quality": 0.9258076118083884
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args \"[]\" (args \"[]\")))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"sublist\") (args variable)))"
+ ],
+ "distribution": [
+ 73,
+ 2
+ ],
+ "quality": 0.9220920542429745
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 156,
+ 10
+ ],
+ "quality": 0.9195686065251332
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args variable))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 28,
+ 0
+ ],
+ "quality": 0.9180369800120464
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 6,
+ 104
+ ],
+ "quality": 0.9159805216406367
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"sublist\") (args variable)))"
+ ],
+ "distribution": [
+ 24,
+ 0
+ ],
+ "quality": 0.9003487095519815
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (list (h variable)))))"
+ ],
+ "distribution": [
+ 22,
+ 0
+ ],
+ "quality": 0.8891079363889672
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args variable))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 22,
+ 0
+ ],
+ "quality": 0.8891079363889672
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 21,
+ 0
+ ],
+ "quality": 0.8822628861424969
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"sublist\") (args (args variable))))"
+ ],
+ "distribution": [
+ 21,
+ 0
+ ],
+ "quality": 0.8822628861424969
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args (list (t variable))))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 21,
+ 0
+ ],
+ "quality": 0.8822628861424969
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (args (list (t variable)))))) (compound (functor \"sublist\") (args variable)))"
+ ],
+ "distribution": [
+ 20,
+ 0
+ ],
+ "quality": 0.8748108331097285
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args (list (t variable))))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 19,
+ 0
+ ],
+ "quality": 0.8663218629482545
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"sublist\") (args (args variable))))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.854134114032757
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.854134114032757
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 25,
+ 109
+ ],
+ "quality": 0.7903132859329443
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sublist\") (args (list (t variable))))) (compound (functor \"sublist\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 1,
+ 15
+ ],
+ "quality": 0.7218208238692915
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 4,
+ 22
+ ],
+ "quality": 0.7003614662287178
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop \"\\==\" \"[]\"))"
+ ],
+ "distribution": [
+ 0,
+ 5
+ ],
+ "quality": 0.47276259970016454
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"fsub\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 0,
+ 3
+ ],
+ "quality": 0.39632794402854515
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/lists_advanced/sum_2/bugs.json b/prolog/problems/lists_advanced/sum_2/bugs.json
new file mode 100644
index 0000000..8d43a45
--- /dev/null
+++ b/prolog/problems/lists_advanced/sum_2/bugs.json
@@ -0,0 +1,403 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"sum\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (head (compound (functor \"sum\") (args (list (t variable))))) (compound (functor \"sum\") (args variable)))",
+ "(clause (head (compound (functor \"sum\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"sum\") (args (args \"0\")))))",
+ "(clause (head (compound (functor \"sum\") (args \"[]\" (args \"0\")))))",
+ "(clause (head (compound (functor \"sum\") (args (list (h variable))))) (binop \"is\" (binop \"+\" variable)))",
+ "(clause (compound (functor \"sum\") (args (args variable))) (binop \"is\" (binop variable \"+\")))",
+ "(clause (head (compound (functor \"sum\") (args (list (h variable)) (args variable)))))",
+ "(clause (head (compound (functor \"sum\") (args (list (h variable))))) (binop \"is\" (binop variable \"+\")))",
+ "(clause (compound (functor \"sum\") (args (args variable))) (binop \"is\" (binop \"+\" variable)))",
+ "(clause (head (compound (functor \"sum\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"sum\") (args (args variable)))) (binop \"is\" (binop variable \"+\")))",
+ "(clause (head (compound (functor \"sum\") (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"sum\") (args (args variable)))) (compound (functor \"sum\") (args (args variable))))",
+ "(clause (binop variable \"is\" (binop variable \"+\")))",
+ "(clause (head (compound (functor \"sum\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"sum\") (args (list (h variable))))))",
+ "(clause (compound (functor \"sum\") (args (args variable))) (binop variable \"is\"))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"sum\") (args variable)))",
+ "(clause (binop \"is\" \"0\"))",
+ "(clause (binop variable \"is\" \"0\"))",
+ "(clause (binop variable \"=\" \"0\"))",
+ "(clause (binop \"=\" \"0\"))",
+ "(clause (binop variable \"=\"))",
+ "(clause (binop \"is\" (binop variable \"+\")) (compound (functor \"sum\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"is\" (binop \"+\" variable)))",
+ "(clause (head (compound (functor \"sum\") (args (list (h variable) (t \"[]\"))))))",
+ "(clause (head (compound (functor \"sum\") (args (list (t \"[]\")) (args variable)))))",
+ "(clause (head (compound (functor \"sum\") (args (list (t \"[]\"))))))",
+ "(clause (binop variable \"is\") (compound (functor \"sum\") (args (args variable))))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (compound (functor \"sum\") (args (args variable))) (binop \"=\" (binop variable \"+\")))",
+ "(clause (binop \"is\" (binop variable \"+\" \"1\")))",
+ "(clause (binop variable \"is\" (binop \"+\" \"1\")))",
+ "(clause (head (compound (functor \"sum\") (args (list (h variable))))) (binop \"is\" variable))",
+ "(clause (binop \"is\" (binop \"+\" \"1\")))",
+ "(clause (binop variable \"is\"))",
+ "(clause (head (compound (functor \"sum\") (args (args variable)))))",
+ "(clause (head (compound (functor \"sum\") (args (list (t (list (h variable))))))) (compound (functor \"sum\") (args variable)))",
+ "(clause (head (compound (functor \"sum\") (args (list (h variable))))) (binop \"=\" (binop \"+\" variable)))",
+ "(clause (head (compound (functor \"sum\") (args (list (h variable))))) (binop \"=\" variable))",
+ "(clause (compound (functor \"sum\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"sum\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"sum\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"sum\") (args (args (binop \"+\" variable))))) (compound (functor \"sum\") (args (args variable))))",
+ "(clause (head (compound (functor \"sum\") (args (list (h variable)) (args (binop variable \"+\"))))))",
+ "(clause (binop \"is\" (binop \"+\" variable)) (compound (functor \"sum\") (args (args variable))))",
+ "(clause (binop variable \"is\" (binop \"+\" variable)))",
+ "(clause (head (compound (functor \"sum\") (args (args (binop variable \"is\"))))))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"sum\") (args (list (h variable))))) (binop \"=\" (binop variable \"+\")))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (args variable)))) (binop \"is\" (binop variable \"+\")))"
+ ],
+ "distribution": [
+ 50,
+ 0
+ ],
+ "quality": 0.9632380563802319
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"is\" (binop variable \"+\")))"
+ ],
+ "distribution": [
+ 37,
+ 0
+ ],
+ "quality": 0.9496444143112104
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 35,
+ 0
+ ],
+ "quality": 0.9466471466478726
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"sum\") (args (args variable))) (binop variable \"is\"))"
+ ],
+ "distribution": [
+ 31,
+ 0
+ ],
+ "quality": 0.9409973039853357
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (head (compound (functor \"sum\") (args (args \"0\")))))",
+ "(clause (compound (functor \"sum\") (args (args variable))) (binop \"is\" (binop \"+\" variable)))",
+ "(clause (head (compound (functor \"sum\") (args (list (h variable))))) (binop \"is\" (binop variable \"+\")))"
+ ],
+ "distribution": [
+ 1,
+ 60
+ ],
+ "quality": 0.9404658615540767
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (list (t variable))))) (compound (functor \"sum\") (args variable)))",
+ "(clause (head (compound (functor \"sum\") (args (list (h variable))))) (binop \"is\" (binop \"+\" variable)))",
+ "(clause (head (compound (functor \"sum\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (compound (functor \"sum\") (args (args variable))) (binop \"is\" (binop variable \"+\")))",
+ "(clause (head (compound (functor \"sum\") (args (args \"0\")))))"
+ ],
+ "distribution": [
+ 6,
+ 120
+ ],
+ "quality": 0.9297290996795977
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (args variable)))) (compound (functor \"sum\") (args (args variable))))",
+ "(clause (head (compound (functor \"sum\") (args (list (t variable))))) (compound (functor \"sum\") (args variable)))"
+ ],
+ "distribution": [
+ 28,
+ 0
+ ],
+ "quality": 0.9237451844781032
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (args variable)))) (compound (functor \"sum\") (args (args variable))))"
+ ],
+ "distribution": [
+ 36,
+ 1
+ ],
+ "quality": 0.9180107826985625
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (head (compound (functor \"sum\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"sum\") (args (list (t variable))))) (compound (functor \"sum\") (args variable)))",
+ "(clause (compound (functor \"sum\") (args (args variable))) (binop \"is\" (binop variable \"+\")))",
+ "(clause (head (compound (functor \"sum\") (args (list (h variable))))) (binop \"is\" (binop \"+\" variable)))"
+ ],
+ "distribution": [
+ 10,
+ 130
+ ],
+ "quality": 0.9073820930208183
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"is\" (binop variable \"+\")) (compound (functor \"sum\") (args (args variable))))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.8963126299115304
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (head (compound (functor \"sum\") (args (args \"0\")))))",
+ "(clause (compound (functor \"sum\") (args (args variable))) (binop \"is\" (binop \"+\" variable)))"
+ ],
+ "distribution": [
+ 5,
+ 64
+ ],
+ "quality": 0.8839500532375172
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"sum\") (args (list (h variable))))) (binop \"is\" (binop variable \"+\")))",
+ "(clause (compound (functor \"sum\") (args (args variable))) (binop \"is\" (binop \"+\" variable)))",
+ "(clause (head (compound (functor \"sum\") (args (args variable)))) (binop variable \"is\"))"
+ ],
+ "distribution": [
+ 5,
+ 62
+ ],
+ "quality": 0.8774224263730913
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"sum\") (args (args variable))) (binop \"=\" (binop variable \"+\")))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.8544022016698913
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (head (compound (functor \"sum\") (args (args \"0\")))))",
+ "(clause (compound (functor \"sum\") (args (args variable))) (binop \"is\" (binop variable \"+\")))"
+ ],
+ "distribution": [
+ 18,
+ 125
+ ],
+ "quality": 0.8529414910677036
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (args \"0\")))))",
+ "(clause (head (compound (functor \"sum\") (args (list (h variable))))) (binop \"is\" (binop variable \"+\")))"
+ ],
+ "distribution": [
+ 8,
+ 61
+ ],
+ "quality": 0.8398456460259225
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.814606816591379
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (head (compound (functor \"sum\") (args \"[]\"))))",
+ "(clause (compound (functor \"sum\") (args (args variable))) (binop \"is\" (binop variable \"+\")))"
+ ],
+ "distribution": [
+ 28,
+ 136
+ ],
+ "quality": 0.8099451412928996
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (list (h variable))))) (binop \"=\" (binop \"+\" variable)))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7945743104893194
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (list (t (list (h variable))))))) (compound (functor \"sum\") (args variable)))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7945743104893194
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"sum\") (args (args \"0\")))))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7413419315141939
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (args (binop \"+\" variable))))) (compound (functor \"sum\") (args (args variable))))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.7392363690313698
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args \"[]\" (args \"[]\")))))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.7392363690313698
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"is\" (binop \"+\" variable)))"
+ ],
+ "distribution": [
+ 1,
+ 13
+ ],
+ "quality": 0.7149447263575659
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"is\" (binop \"+\" variable)) (compound (functor \"sum\") (args (args variable))))"
+ ],
+ "distribution": [
+ 6,
+ 0
+ ],
+ "quality": 0.6998879729141584
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"sum\") (args (args variable))))"
+ ],
+ "distribution": [
+ 5,
+ 0
+ ],
+ "quality": 0.6569507265887357
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (list (h variable))))) (binop \"=\" (binop variable \"+\")))"
+ ],
+ "distribution": [
+ 5,
+ 0
+ ],
+ "quality": 0.6569507265887357
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (args (binop variable \"is\"))))))"
+ ],
+ "distribution": [
+ 5,
+ 0
+ ],
+ "quality": 0.6569507265887357
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"is\" (binop \"+\" variable)))"
+ ],
+ "distribution": [
+ 5,
+ 0
+ ],
+ "quality": 0.6569507265887357
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sum\") (args (args variable)))) (binop variable \"is\"))",
+ "(clause (head (compound (functor \"sum\") (args variable))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 4,
+ 18
+ ],
+ "quality": 0.6399461602289443
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/sets/count_3/bugs.json b/prolog/problems/sets/count_3/bugs.json
new file mode 100644
index 0000000..7078972
--- /dev/null
+++ b/prolog/problems/sets/count_3/bugs.json
@@ -0,0 +1,509 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"count\") (args variable))) (compound (functor \"count\") (args variable)))",
+ "(clause (head (compound (functor \"count\") (args (args (list (t variable)))))) (compound (functor \"count\") (args (args variable))))",
+ "(clause (head (compound (functor \"count\") (args (args (args variable))))) (binop variable \"is\"))",
+ "(clause (head (compound (functor \"count\") (args variable))))",
+ "(clause (head (compound (functor \"count\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"count\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"count\") (args (args (args \"0\"))))))",
+ "(clause (head (compound (functor \"count\") (args (args \"[]\" (args \"0\"))))))",
+ "(clause (binop variable \"is\" (binop \"+\" \"1\")))",
+ "(clause (binop \"is\" (binop \"+\" \"1\")))",
+ "(clause (binop \"is\" (binop variable \"+\" \"1\")))",
+ "(clause (head (compound (functor \"count\") (args variable (args (args \"0\"))))))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop \"is\" (binop variable \"+\")))",
+ "(clause (head (compound (functor \"count\") (args variable (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"count\") (args (args (args variable))))) (compound (functor \"count\") (args (args (args variable)))))",
+ "(clause (binop variable \"is\"))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (compound (functor \"count\") (args variable)))",
+ "(clause (binop \"is\" (binop variable \"+\")))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop \"is\" variable))",
+ "(clause (head (compound (functor \"count\") (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (binop \"=\" variable))",
+ "(clause (compound (functor \"count\") (args variable)) (binop variable \"=\"))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"count\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"count\") (args variable))) (binop variable \"==\"))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (binop \"==\" variable))",
+ "(clause (compound (functor \"count\") (args variable)))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"count\") (args (args (args variable))))) (binop \"is\" (binop variable \"+\")))",
+ "(clause (head (compound (functor \"count\") (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"count\") (args variable))) (binop variable \"\\=\"))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (binop \"\\=\" variable))",
+ "(clause (binop variable \"=\"))",
+ "(clause (compound (functor \"count\") (args variable)) (binop variable \"==\"))",
+ "(clause (binop \"=\" variable))",
+ "(clause (binop variable \"is\" (binop variable \"+\")))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop \"=\" variable))",
+ "(clause (compound (functor \"count\") (args (args variable))))",
+ "(clause (head (compound (functor \"count\") (args (args (list (t variable)))))) (compound (functor \"count\") (args variable)))",
+ "(clause (binop variable \"==\"))",
+ "(clause (compound (functor \"count\") (args variable)) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"count\") (args (args (args \"1\"))))))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (binop variable \"\\==\"))",
+ "(clause (head (compound (functor \"count\") (args variable))) (binop variable \"=:=\"))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (binop \"=:=\" variable))",
+ "(clause (head (compound (functor \"count\") (args variable))) (binop \"\\==\" variable))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)) (args \"1\"))))))",
+ "(clause (head (compound (functor \"count\") (args variable))) (binop variable \"\\==\"))",
+ "(clause (head (compound (functor \"count\") (args variable (args (args \"1\"))))))",
+ "(clause (head (compound (functor \"count\") (args (args (args variable))))))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (binop \"\\==\" variable))",
+ "(clause (head (compound (functor \"count\") (args (args \"[]\" (args variable))))))",
+ "(clause (compound (functor \"count\") (args variable)) (binop variable \"=:=\"))",
+ "(clause (binop \"==\" variable))",
+ "(clause (binop variable \"=\") (compound (functor \"count\") (args variable)))",
+ "(clause (compound (functor \"count\") (args variable)) (binop variable \"\\=\"))",
+ "(clause (binop variable \"\\=\") (compound (functor \"count\") (args variable)))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (binop variable \"==\"))",
+ "(clause (head (compound (functor \"count\") (args variable))) (binop \"==\" variable))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop \"is\" (binop \"+\" variable)))",
+ "(clause (binop variable \"\\==\") (compound (functor \"count\") (args variable)))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop variable \"is\"))",
+ "(clause (binop variable \"is\" (binop \"1\" \"+\")))",
+ "(clause (binop \"is\" (binop \"1\" \"+\")))",
+ "(clause (binop \"is\" (binop \"1\" \"+\" variable)))",
+ "(clause (binop variable \"==\") (compound (functor \"count\") (args variable)))",
+ "(clause (head (compound (functor \"count\") (args variable))) (binop variable \"=\\=\"))",
+ "(clause (head (compound (functor \"count\") (args variable))) (binop \"\\=\" variable))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (binop variable \"\\=\"))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (binop \"=\\=\" variable))",
+ "(clause (compound (functor \"count\") (args variable)) (binop \"\\==\" variable))",
+ "(clause (binop \"=:=\" variable))",
+ "(clause (compound (functor \"count\") (args (args variable))) (binop \"is\" (binop variable \"+\")))",
+ "(clause (compound (functor \"count\") (args variable)) (binop \"==\" variable))",
+ "(clause (head (compound (functor \"count\") (args \"[]\"))))",
+ "(clause (binop variable \"=\" \"0\"))",
+ "(clause (binop \"=\" \"0\"))",
+ "(clause (binop variable \"is\" (binop \"+\" \"0\")))",
+ "(clause (binop \"is\" (binop \"+\" \"0\")))",
+ "(clause (binop \"is\" (binop variable \"+\" \"0\")))",
+ "(clause (compound (functor \"count\") (args variable)) (binop variable \"=\\=\"))",
+ "(clause (binop \"=\" variable) (compound (functor \"count\") (args variable)))",
+ "(clause (head (compound (functor \"count\") (args \"[]\" (args (args \"0\"))))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"count\") (args (args variable))))",
+ "(clause (head (compound (functor \"count\") (args (args (args variable))))) (compound (functor \"count\") (args (args variable))))",
+ "(clause (binop variable \"=:=\"))",
+ "(clause (binop \"=\" (binop \"+\" \"1\")))",
+ "(clause (binop \"=\" (binop variable \"+\" \"1\")))",
+ "(clause (binop variable \"=\" (binop \"+\" \"1\")))",
+ "(clause (binop \"is\" (binop \"+\" variable)))",
+ "(clause (head (compound (functor \"count\") (args (args variable)))))",
+ "(clause (head (compound (functor \"count\") (args variable))) (unop \\+ (binop variable \"=\")))",
+ "(clause (head (compound (functor \"count\") (args variable))) (binop \"=:=\" variable))",
+ "(clause (head (compound (functor \"count\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (binop \"is\" \"0\"))",
+ "(clause (head (compound (functor \"count\") (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"count\") (args (args (list (t (list (h variable)))))))) (compound (functor \"count\") (args (args variable))))",
+ "(clause (compound (functor \"count\") (args variable)) (binop variable \"\\==\"))",
+ "(clause (binop \"\\==\" variable))",
+ "(clause (binop \"is\" (binop variable \"+\")) (compound (functor \"count\") (args (args (args variable)))))",
+ "(clause (binop variable \"is\" \"0\"))",
+ "(clause (head (compound (functor \"count\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (unop \\+ (binop \"=\" variable)))",
+ "(clause (binop variable \"is\") (compound (functor \"count\") (args (args (args variable)))))",
+ "(clause (unop \\+ (binop variable \"=\")) (compound (functor \"count\") (args variable)))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop \"=\" (binop variable \"+\")))",
+ "(clause (head (compound (functor \"count\") (args (args variable)))) (compound (functor \"count\") (args (args variable))))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (binop variable \"=:=\"))",
+ "(clause (head (compound (functor \"count\") (args (list (t variable))))) (compound (functor \"count\") (args variable)))",
+ "(clause (head (compound (functor \"count\") (args (args (list (t \"[]\")))))))",
+ "(clause (head (compound (functor \"count\") (args variable (args (list (t \"[]\")))))))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable) (t \"[]\")))))))",
+ "(clause (binop \"is\" variable))",
+ "(clause (head (compound (functor \"count\") (args \"[]\" (args variable)))))",
+ "(clause (binop \"\\=\" variable) (compound (functor \"count\") (args variable)))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (compound (functor \"\\+\") (args (binop \"=\" variable))))",
+ "(clause (head (compound (functor \"count\") (args (args variable (args \"0\"))))))",
+ "(clause (head (compound (functor \"count\") (args (args (list (t \"[]\")) (args \"1\"))))))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (binop variable \"=\\=\"))",
+ "(clause (head (compound (functor \"count\") (args variable))) (compound (functor \"\\+\") (args (binop variable \"=\"))))",
+ "(clause (head (compound (functor \"count\") (args (args (args (binop \"+\" \"1\")))))))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)) (args (binop \"+\" \"1\")))))))",
+ "(clause (binop \"=\" (binop variable \"+\")))",
+ "(clause (head (compound (functor \"count\") (args (args (args (binop variable \"+\" \"1\")))))))",
+ "(clause (head (compound (functor \"count\") (args variable (args (args (binop \"+\" \"1\")))))))",
+ "(clause (head (compound (functor \"count\") (args variable (args (args variable))))))",
+ "(clause (head (compound (functor \"count\") (args variable))) (binop \"=\\=\" variable))",
+ "(clause (head (compound (functor \"count\") (args (args (list (t variable)) (args (binop \"+\" \"1\")))))))",
+ "(clause (binop \"\\==\" variable) (compound (functor \"count\") (args variable)))",
+ "(clause (head (compound (functor \"count\") (args (args (args variable))))) (binop \"is\" variable))",
+ "(clause (binop variable \"\\==\"))",
+ "(clause (binop variable \"is\" variable))",
+ "(clause (binop variable \"=\\=\"))",
+ "(clause (head (compound (functor \"count\") (args (args (args (binop variable \"+\")))))) (compound (functor \"count\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)) (args variable))))))",
+ "(clause (head (binop variable \"is\")))",
+ "(clause (compound (functor \"count\") (args variable)) (binop \"\\=\" variable))",
+ "(clause (head (binop \"is\" (binop variable \"+\"))))",
+ "(clause (head (compound (functor \"count\") (args (args (args variable))))) (binop \"=\" variable))",
+ "(clause (binop variable \"is\") (binop \"=\" variable))",
+ "(clause (binop \"=\\=\" variable))",
+ "(clause (head (compound (functor \"count\") (args variable))) (binop variable \"is\"))",
+ "(clause (head (compound (functor \"count\") (args variable))) (compound (functor \"isEqual\") (args (args variable))))",
+ "(clause (head (compound (functor \"count\") (args variable))) (compound (functor \"memb\") (args variable)))",
+ "(clause (compound (functor \"\\+\") (args (binop variable \"=\"))) (compound (functor \"count\") (args variable)))",
+ "(clause (compound (functor \"count\") (args variable)) (binop variable \"is\"))",
+ "(clause (binop variable \"=\" variable))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (compound (functor \"isEqual\") (args variable)))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)) (args \"0\"))))))",
+ "(clause (binop \"=:=\" variable) (compound (functor \"count\") (args variable)))",
+ "(clause (binop variable \"=\\=\") (compound (functor \"count\") (args variable)))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (binop \"is\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"count\") (args (args (list (t (list (h variable)))))))))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (compound (functor \"count\") (args (args (list (h variable))))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args (args (args variable))))) (binop \"is\" (binop variable \"+\")))"
+ ],
+ "distribution": [
+ 69,
+ 0
+ ],
+ "quality": 0.9728352042140178
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"is\" (binop variable \"+\")))"
+ ],
+ "distribution": [
+ 56,
+ 0
+ ],
+ "quality": 0.96538520453629
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args variable))) (binop variable \"=:=\"))"
+ ],
+ "distribution": [
+ 43,
+ 0
+ ],
+ "quality": 0.9522326624826108
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args (args (args variable))))))"
+ ],
+ "distribution": [
+ 40,
+ 0
+ ],
+ "quality": 0.948123462766655
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args (args (list (t variable)))))) (compound (functor \"count\") (args variable)))"
+ ],
+ "distribution": [
+ 28,
+ 0
+ ],
+ "quality": 0.9190687991731815
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args variable))) (binop variable \"=\\=\"))"
+ ],
+ "distribution": [
+ 26,
+ 0
+ ],
+ "quality": 0.9127090987711932
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop variable \"is\"))"
+ ],
+ "distribution": [
+ 24,
+ 0
+ ],
+ "quality": 0.9015964075625628
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=:=\" variable))"
+ ],
+ "distribution": [
+ 23,
+ 0
+ ],
+ "quality": 0.8979447555412412
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args \"[]\"))))"
+ ],
+ "distribution": [
+ 23,
+ 0
+ ],
+ "quality": 0.8979447555412412
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (binop \"+\" \"1\")))"
+ ],
+ "distribution": [
+ 16,
+ 0
+ ],
+ "quality": 0.8368123456364159
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args variable))) (binop \"=:=\" variable))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.820135337297635
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.820135337297635
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"count\") (args variable))) (binop variable \"\\=\"))",
+ "(clause (head (compound (functor \"count\") (args (args (args \"0\"))))))"
+ ],
+ "distribution": [
+ 0,
+ 18
+ ],
+ "quality": 0.8161615821890182
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args (args (list (t (list (h variable)))))))) (compound (functor \"count\") (args (args variable))))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.801882381889035
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args (args (list (t variable)))))))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.801882381889035
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args (args \"[]\")))))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop \"is\" (binop variable \"+\")))",
+ "(clause (head (compound (functor \"count\") (args (args (args variable))))) (compound (functor \"count\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (binop \"\\=\" variable))"
+ ],
+ "distribution": [
+ 0,
+ 17
+ ],
+ "quality": 0.7802239031619637
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args (args \"[]\")))))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop \"is\" (binop variable \"+\")))",
+ "(clause (binop variable \"\\=\") (compound (functor \"count\") (args variable)))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (binop \"\\=\" variable))"
+ ],
+ "distribution": [
+ 1,
+ 21
+ ],
+ "quality": 0.7737068914461994
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"count\") (args variable))) (binop variable \"\\=\"))",
+ "(clause (head (compound (functor \"count\") (args (args (args variable))))) (binop variable \"is\"))"
+ ],
+ "distribution": [
+ 1,
+ 19
+ ],
+ "quality": 0.7694989834231951
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args (args (args variable))))) (binop variable \"is\"))",
+ "(clause (head (compound (functor \"count\") (args variable (args \"[]\")))))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop \"is\" (binop variable \"+\")))",
+ "(clause (head (compound (functor \"count\") (args (args (args variable))))) (compound (functor \"count\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (binop \"\\==\" variable))"
+ ],
+ "distribution": [
+ 1,
+ 20
+ ],
+ "quality": 0.7464303340007633
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop \"is\" variable))",
+ "(clause (binop variable \"==\"))"
+ ],
+ "distribution": [
+ 1,
+ 14
+ ],
+ "quality": 0.7197344632270223
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args variable))) (compound (functor \"count\") (args variable)))",
+ "(clause (head (compound (functor \"count\") (args variable))) (binop \"\\=\" variable))",
+ "(clause (head (compound (functor \"count\") (args variable))))"
+ ],
+ "distribution": [
+ 1,
+ 14
+ ],
+ "quality": 0.6820439276723868
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (unop \\+ (binop \"=\" variable)))"
+ ],
+ "distribution": [
+ 0,
+ 9
+ ],
+ "quality": 0.6699209545124805
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args (args \"[]\")))))",
+ "(clause (binop \"=\" variable))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 1,
+ 11
+ ],
+ "quality": 0.5876909575878514
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args variable (args \"[]\")))))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop \"is\" variable))",
+ "(clause (binop variable \"=\"))",
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 1,
+ 12
+ ],
+ "quality": 0.578881574974713
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"\\+\") (args (binop variable \"=\"))) (compound (functor \"count\") (args variable)))"
+ ],
+ "distribution": [
+ 0,
+ 5
+ ],
+ "quality": 0.5748167731513768
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (binop \"\\==\" variable) (compound (functor \"count\") (args variable)))"
+ ],
+ "distribution": [
+ 1,
+ 7
+ ],
+ "quality": 0.5727130861637655
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args (args (list (h variable)))))) (compound (functor \"count\") (args variable)))",
+ "(clause (head (compound (functor \"count\") (args variable))) (binop \"\\==\" variable))"
+ ],
+ "distribution": [
+ 0,
+ 7
+ ],
+ "quality": 0.5690003226281385
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"count\") (args variable (args (args \"0\"))))))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop \"is\" (binop variable \"+\")))",
+ "(clause (binop \"==\" variable))",
+ "(clause (binop variable \"is\"))"
+ ],
+ "distribution": [
+ 5,
+ 18
+ ],
+ "quality": 0.5503110535995617
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop \"is\" variable))",
+ "(clause (binop variable \"=\") (compound (functor \"count\") (args variable)))"
+ ],
+ "distribution": [
+ 0,
+ 5
+ ],
+ "quality": 0.38635980460492575
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/sets/diff_3/bugs.json b/prolog/problems/sets/diff_3/bugs.json
new file mode 100644
index 0000000..af1c5fd
--- /dev/null
+++ b/prolog/problems/sets/diff_3/bugs.json
@@ -0,0 +1,320 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"diff\") (args (args variable)))) (compound (functor \"diff\") (args (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args (list (t variable))))) (compound (functor \"diff\") (args variable)))",
+ "(clause (head (compound (functor \"diff\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"diff\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"diff\") (args (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"diff\") (args \"[]\" (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"diff\") (args (args variable)))))",
+ "(clause (head (compound (functor \"diff\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"diff\") (args (args variable (args \"[]\"))))))",
+ "(clause (head (compound (functor \"diff\") (args (args (args variable))))) (compound (functor \"diff\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"diff\") (args (list (h variable))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"diff\") (args (args variable)))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"diff\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"diff\") (args (args variable)))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (head (compound (functor \"diff\") (args (list (h variable))))) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args (list (h variable)) (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"diff\") (args (args (args (list (t variable))))))) (compound (functor \"diff\") (args (args (args variable)))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"diff\") (args (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args (args \"[]\")))))",
+ "(clause (binop variable \"=\"))",
+ "(clause (head (compound (functor \"diff\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"diff\") (args (args \"[]\" (args variable))))))",
+ "(clause (compound (functor \"diff\") (args (args (args variable)))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"diff\") (args variable (args (args variable))))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (compound (functor \"diff\") (args (args variable))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args variable))) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"memb\") (args variable)))",
+ "(clause (compound (functor \"diff\") (args (args variable))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args (args (args (list (h variable))))))) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (compound (functor \"diff\") (args (args variable))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (compound (functor \"diff\") (args (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args (list (h variable))))))",
+ "(clause (head (compound (functor \"diff\") (args \"[]\" (args (args variable))))))",
+ "(clause (compound (functor \"diff\") (args variable)))",
+ "(clause (binop \"=\" variable))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"diff\") (args (args variable (args variable))))))",
+ "(clause (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args (args (list (t variable)))))) (compound (functor \"diff\") (args (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args variable))) (compound (functor \"diff\") (args variable)))",
+ "(clause (head (compound (functor \"diff\") (args (list (h variable))))) (compound (functor \"member\") (args variable)))",
+ "(clause (head (compound (functor \"diff\") (args (args variable)))) (compound (functor \"intersect\") (args (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args (list (h variable))))) (unop \\+ (compound (functor \"member\") (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args (args variable)))) (compound (functor \"member\") (args (args variable))))",
+ "(clause (compound (functor \"diff\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"diff\") (args (list (h variable))))) (compound (functor \"not\") (args (compound (functor \"memb\") (args variable)))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (head (compound (functor \"diff\") (args (args variable)))) (unop \\+ (compound (functor \"member\") (args (args variable)))))",
+ "(clause (compound (functor \"member\") (args (args variable))) (compound (functor \"diff\") (args (args variable))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args (args variable)))) (compound (functor \"not\") (args (compound (functor \"memb\") (args (args variable))))))",
+ "(clause (unop \\+ (compound (functor \"member\") (args (args variable)))) (compound (functor \"diff\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"diff\") (args (args (list (h variable)))))) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"diff\") (args (args (args (list (h variable))))))) (unop \\+ (compound (functor \"member\") (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args (args (list (h variable)))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"diff\") (args variable))) (compound (functor \"intersect\") (args variable)))",
+ "(clause (head (compound (functor \"diff\") (args (args variable)))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (compound (functor \"memb\") (args variable)) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"diff\") (args (args (args variable))))) (compound (functor \"del\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"diff\") (args variable))) (compound (functor \"union\") (args variable)))",
+ "(clause (head (compound (functor \"diff\") (args (args (args (list (h variable))))))) (compound (functor \"not\") (args (compound (functor \"memb\") (args variable)))))",
+ "(clause (head (compound (functor \"diff\") (args variable))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (compound (functor \"not\") (args (compound (functor \"memb\") (args variable)))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"diff\") (args variable))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (compound (functor \"not\") (args (compound (functor \"memb\") (args (args variable))))) (compound (functor \"diff\") (args (args variable))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args (args (list (h variable)))))) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (compound (functor \"diff\") (args variable)))",
+ "(clause (head (compound (functor \"diff\") (args variable))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args (args (args variable))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"diff\") (args variable)))",
+ "(clause (head (compound (functor \"diff\") (args (list (t variable))))) (compound (functor \"diff\") (args (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"diff\") (args (args \"[]\" (args \"[]\"))))))",
+ "(clause (head (compound (functor \"diff\") (args (args (args variable))))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"memb\") (args variable)))",
+ "(clause (compound (functor \"member\") (args variable)))",
+ "(clause (compound (functor \"diff\") (args (args (args variable)))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (compound (functor \"diff\") (args (args variable))) (compound (functor \"not\") (args (compound (functor \"memb\") (args (args variable))))))",
+ "(clause (compound (functor \"diff\") (args (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args (list (h variable))))) (compound (functor \"intersect\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"diff\") (args (list (t variable))))) (compound (functor \"intersect\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"diff\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"diff\") (args (list (t variable))))) (compound (functor \"intersect\") (args variable)))",
+ "(clause (compound (functor \"memb\") (args variable)) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"diff\") (args (args (args variable)))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args (args (list (h variable)))))))",
+ "(clause (compound (functor \"union\") (args variable)) (compound (functor \"intersect\") (args variable)))",
+ "(clause (compound (functor \"deff\") (args (args variable))))",
+ "(clause (compound (functor \"intersect\") (args (args variable))) (compound (functor \"diff\") (args (args variable))))",
+ "(clause (compound (functor \"union\") (args (args variable))) (compound (functor \"intersect\") (args (args variable))))",
+ "(clause (compound (functor \"member\") (args variable)) (unop \\+ (compound (functor \"member\") (args variable))))",
+ "(clause (compound (functor \"intersect\") (args (list (t variable)))) (compound (functor \"diff\") (args variable)))",
+ "(clause (compound (functor \"diff\") (args (args (args variable)))) (binop variable \"=\"))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))))",
+ "(clause (compound (functor \"diff\") (args (args variable))) (unop \\+ (compound (functor \"member\") (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"diff\") (args variable)) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (compound (functor \"diff\") (args (args (args variable)))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"diff\") (args (args (args variable))))) (compound (functor \"diff\") (args (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"diff\") (args (list (h variable))))) (compound (functor \"delete\") (args variable)))",
+ "(clause (head (compound (functor \"diff\") (args (list (h variable))))) (compound (functor \"diff\") (args (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"diff\") (args (list (h variable))))) (compound (functor \"count\") (args variable)))",
+ "(clause (head (compound (functor \"diff\") (args (args (args variable))))) (compound (functor \"intersect\") (args (args variable))))",
+ "(clause (compound (functor \"member\") (args (args variable))))",
+ "(clause (unop \\+ (compound (functor \"member\") (args variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"diff\") (args (args variable)))) (compound (functor \"count\") (args (args variable))))",
+ "(clause (head (compound (functor \"recdel\") (args (list (t variable))))) (compound (functor \"recdel\") (args variable)))",
+ "(clause (compound (functor \"intersect\") (args (list (h variable)))) (compound (functor \"not\") (args (compound (functor \"memb\") (args variable)))))",
+ "(clause (head (compound (functor \"diff\") (args variable))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (compound (functor \"del\") (args (args variable))) (compound (functor \"diff\") (args variable)))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))) (compound (functor \"recdel\") (args (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"diff\") (args (args (args variable))))) (compound (functor \"recdel\") (args (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"diff\") (args (args (list (t variable)))))))",
+ "(clause (compound (functor \"member\") (args (args variable))) (compound (functor \"delete\") (args (args variable))))",
+ "(clause (head (compound (functor \"recdel\") (args \"[]\" (args (args variable))))))",
+ "(clause (compound (functor \"member\") (args variable)) (compound (functor \"delete\") (args variable)))",
+ "(clause (head (compound (functor \"del\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"diff\") (args (args (args variable))))) (compound (functor \"intersect\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"diff\") (args (args (args (list (h variable))))))) (compound (functor \"intersect\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"recdel\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"recdel\") (args (list (h variable))))) (compound (functor \"del\") (args variable)))",
+ "(clause (compound (functor \"intersect\") (args (args (args variable)))) (compound (functor \"not\") (args (compound (functor \"memb\") (args (args variable))))))",
+ "(clause (head (compound (functor \"diff\") (args (args variable)))) (compound (functor \"\\+\") (args (compound (functor \"memb\") (args (args variable))))))",
+ "(clause (head (compound (functor \"recdel\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"diff\") (args (args (args variable))))) (unop \\+ (compound (functor \"member\") (args (args variable)))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"diff\") (args variable)))",
+ "(clause (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"recdel\") (args (args (args variable))))) (compound (functor \"recdel\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"diff\") (args (args (args (list (h variable))))))) (compound (functor \"diff\") (args (args (args variable)))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (compound (functor \"recdel\") (args (args variable))))",
+ "(clause (compound (functor \"intersect\") (args (args (args variable)))) (compound (functor \"union\") (args variable)))",
+ "(clause (compound (functor \"diff\") (args (args variable))) (compound (functor \"member\") (args (args variable))))",
+ "(clause (compound (functor \"intersect\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"diff2\") (args (args variable)))) (compound (functor \"diff2\") (args (args variable))))",
+ "(clause (compound (functor \"diff\") (args variable)) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args variable))))",
+ "(clause (compound (functor \"intersect\") (args variable)) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"recdel\") (args (args variable)))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (compound (functor \"\\+\") (args (compound (functor \"memb\") (args variable)))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"diff2\") (args (list (t variable))))) (compound (functor \"diff2\") (args variable)))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"diff\") (args (args variable (args variable))))))"
+ ],
+ "distribution": [
+ 43,
+ 0
+ ],
+ "quality": 0.9538283009756654
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"diff\") (args variable))) (compound (functor \"intersect\") (args variable)))"
+ ],
+ "distribution": [
+ 20,
+ 0
+ ],
+ "quality": 0.8921605663515302
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"diff\") (args (args variable)))))",
+ "(clause (compound (functor \"diff\") (args (args (args variable)))) (binop \"=\" variable))",
+ "(clause (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 2,
+ 29
+ ],
+ "quality": 0.8058998834564192
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"diff\") (args (args variable)))))",
+ "(clause (head (compound (functor \"diff\") (args (args variable)))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (compound (functor \"diff\") (args (args variable))) (compound (functor \"memb\") (args (args variable))))"
+ ],
+ "distribution": [
+ 0,
+ 18
+ ],
+ "quality": 0.8026373362364385
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"diff\") (args (list (t variable))))) (compound (functor \"diff\") (args (args variable))))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.7709101555703018
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"diff\") (args (args (args variable))))))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.7709101555703018
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"diff\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"diff\") (args (args variable)))) (compound (functor \"diff\") (args (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args (args (args (list (h variable))))))) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (head (compound (functor \"diff\") (args (args (args variable))))) (compound (functor \"diff\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 5,
+ 38
+ ],
+ "quality": 0.7687665812906903
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"diff\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"diff\") (args (args variable (args \"[]\"))))))",
+ "(clause (compound (functor \"diff\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"diff\") (args (args variable))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 3,
+ 28
+ ],
+ "quality": 0.7436503702080678
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"memb\") (args variable)) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7416353483923056
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"diff\") (args (args variable)))))",
+ "(clause (head (compound (functor \"diff\") (args (args variable)))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (compound (functor \"diff\") (args (args (args variable)))) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 4,
+ 29
+ ],
+ "quality": 0.7367136645174549
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"diff\") (args (args variable)))))",
+ "(clause (head (compound (functor \"diff\") (args (list (h variable))))) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (compound (functor \"diff\") (args (args variable))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 7,
+ 38
+ ],
+ "quality": 0.7349915900375226
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"diff\") (args (args (args variable))))) (compound (functor \"diff\") (args (args (args (list (t variable)))))))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.6641015019994071
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"diff\") (args (args (args variable)))) (binop \"=\" (list (t (list (h variable))))))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.6641015019994071
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"diff\") (args (list (h variable))))) (compound (functor \"count\") (args variable)))"
+ ],
+ "distribution": [
+ 0,
+ 5
+ ],
+ "quality": 0.5616708435793863
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/sets/intersect_3/bugs.json b/prolog/problems/sets/intersect_3/bugs.json
new file mode 100644
index 0000000..0ebb830
--- /dev/null
+++ b/prolog/problems/sets/intersect_3/bugs.json
@@ -0,0 +1,496 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (compound (functor \"intersect\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (t variable))))) (compound (functor \"intersect\") (args variable)))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"intersect\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"intersect\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args \"[]\" (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable (args \"[]\"))))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (compound (functor \"intersect\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable)) (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args (list (t variable))))))) (compound (functor \"intersect\") (args (args (args variable)))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"intersect\") (args (args variable))))",
+ "(clause (compound (functor \"memb\") (args variable)) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"intersect\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (binop variable \"=\"))",
+ "(clause (head (compound (functor \"intersect\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"intersect\") (args (args \"[]\" (args \"[]\"))))))",
+ "(clause (compound (functor \"intersect\") (args (args (args variable)))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args (list (h variable))))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable))))) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"intersect\") (args (args variable))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable))))))",
+ "(clause (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"intersect\") (args variable (args (args \"[]\"))))))",
+ "(clause (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (compound (functor \"member\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable))))) (compound (functor \"member\") (args variable)))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (compound (functor \"intersect\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args (list (h variable))))))) (compound (functor \"member\") (args variable)))",
+ "(clause (compound (functor \"intersect\") (args (args variable))))",
+ "(clause (compound (functor \"intersect\") (args variable)))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable (args variable))))))",
+ "(clause (compound (functor \"intersect\") (args (args variable))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args \"[]\" (args \"[]\")))))",
+ "(clause (compound (functor \"member\") (args (args variable))) (compound (functor \"intersect\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args variable))) (compound (functor \"intersect\") (args variable)))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (list (t variable)))))) (compound (functor \"intersect\") (args (args variable))))",
+ "(clause (compound (functor \"intersect\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable))))) (unop \\+ (compound (functor \"member\") (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args variable))) (binop variable \"=\"))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"intersect\") (args (args variable))) (compound (functor \"member\") (args (args variable))))",
+ "(clause (compound (functor \"intersect\") (args (args (args variable)))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (list (h variable)))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (compound (functor \"intersect\") (args (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop \"=\" variable))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"intersect\") (args variable)))",
+ "(clause (head (compound (functor \"intersect\") (args variable))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (compound (functor \"memb\") (args variable)) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable))))) (compound (functor \"count\") (args variable)))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))))",
+ "(clause (compound (functor \"memb\") (args variable)) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (unop \\+ (compound (functor \"member\") (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (compound (functor \"count\") (args (args variable))))",
+ "(clause (compound (functor \"intersect\") (args (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable))))) (compound (functor \"del\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (t variable))))))",
+ "(clause (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (binop variable \"is\"))",
+ "(clause (compound (functor \"memb\") (args variable)) (compound (functor \"memb\") (args variable)))",
+ "(clause (unop \\+ (compound (functor \"member\") (args (args variable)))) (compound (functor \"intersect\") (args (args variable))))",
+ "(clause (compound (functor \"intersect\") (args (args (args variable)))) (binop \"is\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"memb\") (args variable)))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (compound (functor \"intersect\") (args (args (args variable)))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (list (h variable)))))) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable))))) (compound (functor \"notmemb\") (args variable)))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (compound (functor \"intersection\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable))))) (compound (functor \"not\") (args (compound (functor \"memb\") (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (compound (functor \"not\") (args (compound (functor \"memb\") (args (args variable))))))",
+ "(clause (compound (functor \"intersect\") (args (args (args variable)))) (unop \\+ (compound (functor \"member\") (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (t variable))))) (compound (functor \"intersection\") (args variable)))",
+ "(clause (binop variable \"=\" (list (t variable))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"intersect\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (list (h variable)))))) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (compound (functor \"intersect\") (args (args variable))) (compound (functor \"count\") (args (args variable))))",
+ "(clause (compound (functor \"count\") (args variable)) (binop \"=\" (list (h variable))))",
+ "(clause (unop \\+ (compound (functor \"member\") (args variable))) (unop \\+ (compound (functor \"member\") (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (compound (functor \"del\") (args variable)) (compound (functor \"memb\") (args variable)))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"intersect\") (args variable)))",
+ "(clause (compound (functor \"intersect\") (args variable)) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (compound (functor \"not\") (args (compound (functor \"memb\") (args (args variable))))) (compound (functor \"intersect\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args (list (h variable))))))) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args (list (h variable))))))) (unop \\+ (compound (functor \"member\") (args variable))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"count\") (args (args variable))) (compound (functor \"intersect\") (args (args variable))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable))))) (compound (functor \"insert\") (args variable)))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (compound (functor \"intersect\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"pobrisi\") (args (list (t variable))))) (compound (functor \"pobrisi\") (args variable)))",
+ "(clause (head (compound (functor \"intersect\") (args variable))) (compound (functor \"union\") (args variable)))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (compound (functor \"intersect\") (args (args (args variable)))))",
+ "(clause (compound (functor \"intersect\") (args (args variable))) (compound (functor \"notmemb\") (args (args variable))))",
+ "(clause (compound (functor \"member\") (args variable)) (unop \\+ (compound (functor \"member\") (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args (list (t variable))))))) (unop \\+ (compound (functor \"member\") (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args variable))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (head (compound (functor \"pobrisi\") (args (args variable)))) (compound (functor \"pobrisi\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (list (h variable)) (args (list (h variable))))))))",
+ "(clause (compound (functor \"memb\") (args variable)) (compound (functor \"intersect\") (args (args (args (list (h variable)))))))",
+ "(clause (compound (functor \"memb\") (args variable)) (compound (functor \"insert\") (args variable)))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args (list (h variable))))))) (compound (functor \"del\") (args variable)))",
+ "(clause (compound (functor \"memb\") (args variable)) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable))))) (compound (functor \"intersect\") (args (args (args (list (h variable)))))))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (compound (functor \"intersect\") (args (args (args (list (t variable)))))))",
+ "(clause (compound (functor \"memb\") (args variable)) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args (list (t variable))))))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (compound (functor \"\\+\") (args (compound (functor \"memb\") (args (args variable))))))",
+ "(clause (head (compound (functor \"intersection\") (args (args variable (args \"[]\"))))))",
+ "(clause (head (compound (functor \"intersection\") (args (args variable)))))",
+ "(clause (head (compound (functor \"intersection\") (args \"[]\" (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"build\") (args (args (args (args variable)))))) (compound (functor \"build\") (args (args (args (args variable))))))",
+ "(clause (head (compound (functor \"build\") (args (args variable)))) (compound (functor \"build\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable))))) (compound (functor \"not\") (args (compound (functor \"member\") (args variable)))))",
+ "(clause (head (compound (functor \"intersection\") (args \"[]\"))))",
+ "(clause (binop variable \"=\" \"0\"))",
+ "(clause (binop variable \"=\") (binop \"=\" variable))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersection\") (args (list (t variable))))) (compound (functor \"intersection\") (args variable)))",
+ "(clause (head (compound (functor \"build\") (args (list (t variable))))) (compound (functor \"build\") (args variable)))",
+ "(clause (binop (list (h variable)) \"=\") (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"intersect\") (args (args (args variable)))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersection\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"intersection\") (args (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"intersection\") (args (args variable)))) (compound (functor \"intersection\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (compound (functor \"not\") (args (compound (functor \"member\") (args (args variable))))))",
+ "(clause (binop (list (h variable)) \"=\") (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"intersect\") (args (list (t variable))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (compound (functor \"intersect\") (args (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop \"=\" variable) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (compound (functor \"del\") (args variable)) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args (list (t variable))))))) (compound (functor \"intersection\") (args (args (args variable)))))",
+ "(clause (binop \"=\" \"0\"))",
+ "(clause (compound (functor \"\\+\") (args (compound (functor \"memb\") (args (args variable))))) (compound (functor \"intersect\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (list (h variable)) (args \"[]\"))))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (compound (functor \"build\") (args (args variable))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"build\") (args (args variable))))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (compound (functor \"build\") (args variable (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"conc\") (args (args \"[]\"))))",
+ "(clause (head (compound (functor \"build\") (args (args variable)))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"build\") (args \"[]\" (args (args (args variable)))))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args variable))) (compound (functor \"build\") (args variable)))",
+ "(clause (compound (functor \"build\") (args (args (args \"[]\" (args variable))))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (list (t variable)))))) (compound (functor \"memb\") (args (args (list (t variable))))))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop variable \">\"))",
+ "(clause (head (compound (functor \"pobrisi\") (args (list (t variable))))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (compound (functor \"intersec\") (args (args variable))))",
+ "(clause (head (compound (functor \"pobrisi\") (args (list (h variable))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (compound (functor \"notmemb\") (args (args variable))))",
+ "(clause (binop variable \">\" \"0\"))",
+ "(clause (compound (functor \"conc\") (args (args \"[]\" (args variable)))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"pobrisi\") (args variable)))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (compound (functor \"build\") (args (args (args (args variable))))))",
+ "(clause (compound (functor \"build\") (args (args (args \"[]\")))))",
+ "(clause (binop \">\" \"0\"))",
+ "(clause (compound (functor \"build\") (args (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (t variable))))) (compound (functor \"union\") (args variable)))",
+ "(clause (head (compound (functor \"build\") (args (list (h variable))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (compound (functor \"del\") (args variable)) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (head (compound (functor \"pobrisi\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (list (h variable)))))) (compound (functor \"memb\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"pobrisi\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"build\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"pobrisi\") (args \"[]\" (args \"[]\")))))",
+ "(clause (compound (functor \"member\") (args (args variable))) (compound (functor \"intersection\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (compound (functor \"pobrisi\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args variable (args (args variable))))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable)) (args (args \"[]\"))))))",
+ "(clause (compound (functor \"intersect\") (args (args variable))) (compound (functor \"del\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args (list (t variable))))))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (unop \\+ (compound (functor \"member\") (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (head (compound (functor \"build\") (args \"[]\" (args variable)))))",
+ "(clause (compound (functor \"intersect\") (args (args variable))) (unop \\+ (compound (functor \"member\") (args (args variable)))))",
+ "(clause (compound (functor \"insert\") (args (args variable))) (compound (functor \"intersect\") (args (args (args variable)))))",
+ "(clause (compound (functor \"intersect\") (args (args variable))) (compound (functor \"not\") (args (compound (functor \"member\") (args (args variable))))))",
+ "(clause (head (compound (functor \"intersect1\") (args (args variable)))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (binop \"=\" variable))",
+ "(clause (compound (functor \"member\") (args (args variable))))",
+ "(clause (head (compound (functor \"build\") (args (args variable)))))",
+ "(clause (head (compound (functor \"pobrisi\") (args (list (h variable))))) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (compound (functor \"del\") (args (args variable))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"build\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable))))) (compound (functor \"\\+\") (args (compound (functor \"memb\") (args variable)))))",
+ "(clause (head (compound (functor \"pobrisi\") (args (list (t variable))))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"build\") (args (list (h variable)) (args (args (list (h variable))))))))",
+ "(clause (compound (functor \"memb\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"build\") (args (args (args (list (t variable))))))) (compound (functor \"build\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (t variable))))) (compound (functor \"intersetct\") (args variable)))",
+ "(clause (head (compound (functor \"intersect1\") (args (args variable (args \"[]\"))))))",
+ "(clause (compound (functor \"memb\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args (list (h variable))))))) (compound (functor \"count\") (args variable)))",
+ "(clause (head (compound (functor \"intersect1\") (args (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"intersect\") (args \"[]\" (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (binop \"=\" variable))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"intersect\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect1\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"build\") (args (args (args (list (h variable))))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (binop variable \"=\") (compound (functor \"intersect\") (args (args (args variable)))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"intersection\") (args (args variable))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"intersect\") (args (args (list (h variable)) (args \"[]\"))))))",
+ "(clause (head (compound (functor \"intersect1\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (list (t variable)))))) (compound (functor \"notmemb\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (compound (functor \"intersetct\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (list (h variable)))))) (compound (functor \"notmemb\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"build\") (args (args (args variable (args variable)))))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"intersect\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"intersect1\") (args \"[]\" (args (args \"[]\"))))))",
+ "(clause (compound (functor \"memb\") (args variable)) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))) (compound (functor \"pobrisi\") (args variable)))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (compound (functor \"intersetct\") (args (args variable))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"intersect\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable (args variable))))))"
+ ],
+ "distribution": [
+ 54,
+ 0
+ ],
+ "quality": 0.9536493044976051
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"intersect\") (args (args variable (args variable))))))"
+ ],
+ "distribution": [
+ 56,
+ 1
+ ],
+ "quality": 0.94502632136353
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"intersect\") (args \"[]\" (args (args variable))))))"
+ ],
+ "distribution": [
+ 64,
+ 3
+ ],
+ "quality": 0.9188356133165689
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))))"
+ ],
+ "distribution": [
+ 23,
+ 0
+ ],
+ "quality": 0.9088628473642169
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"intersect\") (args (list (t variable))))))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.8805191235366469
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"memb\") (args (args variable))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8721772200374108
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"intersect\") (args (args (args variable)))) (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.8519584559528689
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (binop variable \"is\"))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.8519584559528689
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (compound (functor \"union\") (args (args variable))))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.8519584559528689
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable))))) (compound (functor \"notmemb\") (args variable)))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.8519584559528689
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"intersect\") (args (args variable (args \"[]\"))))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (compound (functor \"intersect\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args (list (t variable))))))) (compound (functor \"intersect\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (list (h variable))))) (unop \\+ (compound (functor \"memb\") (args variable))))"
+ ],
+ "distribution": [
+ 0,
+ 27
+ ],
+ "quality": 0.836481670090156
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (unop \\+ (compound (functor \"memb\") (args variable))))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.8240032900302532
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.8240032900302532
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"intersect\") (args (args (args (list (h variable))))))) (unop \\+ (compound (functor \"memb\") (args variable))))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.8062486732037915
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.8062486732037915
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.7630467985553794
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"intersect\") (args variable))) (compound (functor \"union\") (args variable)))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.7630467985553794
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"intersect\") (args (args (args (list (h variable))))))) (compound (functor \"del\") (args variable)))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7324659262473096
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"memb\") (args variable)) (compound (functor \"intersect\") (args (args (args (list (h variable)))))))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7324659262473096
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"intersect\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (compound (functor \"intersect\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args (list (h variable))))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 3,
+ 27
+ ],
+ "quality": 0.7025571711035932
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"intersect\") (args (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args variable))))) (compound (functor \"intersect\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (args (args (list (t variable))))))) (compound (functor \"intersect\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"intersect\") (args (args variable)))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 5,
+ 28
+ ],
+ "quality": 0.6709971126729953
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/sets/is_superset_2/bugs.json b/prolog/problems/sets/is_superset_2/bugs.json
new file mode 100644
index 0000000..25a6a80
--- /dev/null
+++ b/prolog/problems/sets/is_superset_2/bugs.json
@@ -0,0 +1,311 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"is_superset\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"is_superset\") (args variable))))",
+ "(clause (head (compound (functor \"is_superset\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"is_superset\") (args variable))) (compound (functor \"is_superset\") (args variable)))",
+ "(clause (head (compound (functor \"is_superset\") (args (args (list (t variable)))))) (compound (functor \"is_superset\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_superset\") (args variable))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_superset\") (args (args (list (h variable)))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"is_superset\") (args variable)))",
+ "(clause (head (compound (functor \"is_superset\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"is_superset\") (args (list (t variable))))) (compound (functor \"is_superset\") (args variable)))",
+ "(clause (head (compound (functor \"is_superset\") (args (args variable)))) (compound (functor \"is_superset\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_superset\") (args (args variable)))))",
+ "(clause (head (compound (functor \"is_superset\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"is_superset\") (args variable))) (compound (functor \"member\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_superset\") (args (args variable)))) (compound (functor \"intersect\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_superset\") (args variable))) (compound (functor \"intersect\") (args variable)))",
+ "(clause (head (compound (functor \"is_superset\") (args (args (list (h variable)))))) (compound (functor \"member\") (args variable)))",
+ "(clause (head (compound (functor \"is_superset\") (args \"[]\" (args \"[]\")))))",
+ "(clause (compound (functor \"member\") (args (args variable))) (compound (functor \"is_superset\") (args variable)))",
+ "(clause (head (compound (functor \"is_superset\") (args (list (h variable))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (compound (functor \"is_superset\") (args variable)) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_superset\") (args (args variable)))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_superset\") (args variable))) (compound (functor \"is_subset\") (args (args variable))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"is_superset\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_superset\") (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"is_superset\") (args (args variable)))) (compound (functor \"is_subset\") (args variable)))",
+ "(clause (head (compound (functor \"is_superset\") (args (args variable)))) (compound (functor \"intersect\") (args (args (args variable)))))",
+ "(clause (compound (functor \"intersect\") (args (args variable (args variable)))))",
+ "(clause (compound (functor \"is_superset\") (args (args variable))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_superset\") (args (args variable)))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_superset\") (args variable))) (compound (functor \"union\") (args variable)))",
+ "(clause (head (compound (functor \"is_superset\") (args (args (list (h variable)))))) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (head (compound (functor \"is_superset\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"is_superset\") (args variable))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"is_superset\") (args variable (args variable)))))",
+ "(clause (head (compound (functor \"is_superset\") (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"is_superset\") (args (list (h variable))))) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (head (compound (functor \"is_superset\") (args (args variable)))) (compound (functor \"member\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_superset\") (args (args variable)))) (compound (functor \"permute\") (args variable)))",
+ "(clause (head (compound (functor \"is_superset\") (args (args variable)))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (head (compound (functor \"is_superset\") (args (list (h variable))))) (compound (functor \"member\") (args variable)))",
+ "(clause (head (compound (functor \"is_superset\") (args variable))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"is_superset\") (args (list (t variable))))))",
+ "(clause (head (compound (functor \"is_superset\") (args (list (h variable))))) (compound (functor \"not\") (args (compound (functor \"memb\") (args variable)))))",
+ "(clause (compound (functor \"member\") (args (args variable))) (compound (functor \"is_superset\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_superset\") (args (list (h variable))))))",
+ "(clause (compound (functor \"is_superset\") (args variable)))",
+ "(clause (compound (functor \"memb\") (args (args variable))))",
+ "(clause (compound (functor \"is_superset\") (args (args variable))) (compound (functor \"not\") (args (compound (functor \"memb\") (args (args variable))))))",
+ "(clause (head (compound (functor \"is_superset\") (args (args variable)))) (compound (functor \"not\") (args (compound (functor \"memb\") (args (args variable))))))",
+ "(clause (unop \\+ (compound (functor \"del\") (args (args (args variable))))))",
+ "(clause (head (compound (functor \"is_superset\") (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_superset\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"is_superset\") (args variable)) (compound (functor \"member\") (args (args variable))))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop variable \">\"))",
+ "(clause (binop variable \">\" \"0\"))",
+ "(clause (head (compound (functor \"is_superset\") (args (args variable)))) (compound (functor \"permute\") (args (args variable))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (compound (functor \"is_superset\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_superset\") (args (list (h variable))))) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"is_superset\") (args (args variable)))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_supetset\") (args variable))) (compound (functor \"is_superset\") (args variable)))",
+ "(clause (head (compound (functor \"is_supetset\") (args (args (list (t variable)))))) (compound (functor \"is_superset\") (args (args variable))))",
+ "(clause (binop \">\" \"0\"))",
+ "(clause (compound (functor \"is_superset\") (args variable)) (compound (functor \"memb\") (args variable)))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"is_superset\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 44,
+ 0
+ ],
+ "quality": 0.9573148012450367
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"is_superset\") (args \"[]\" (args variable)))))"
+ ],
+ "distribution": [
+ 42,
+ 0
+ ],
+ "quality": 0.9551840608458025
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"is_superset\") (args \"[]\"))))"
+ ],
+ "distribution": [
+ 77,
+ 2
+ ],
+ "quality": 0.9489556270523528
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"is_superset\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"is_superset\") (args (args (list (t variable)))))) (compound (functor \"is_superset\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_superset\") (args variable))) (compound (functor \"memb\") (args (args variable))))"
+ ],
+ "distribution": [
+ 5,
+ 130
+ ],
+ "quality": 0.9441676011815278
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"is_superset\") (args (args \"[]\")))))",
+ "(clause (compound (functor \"member\") (args (args variable))) (compound (functor \"is_superset\") (args variable)))"
+ ],
+ "distribution": [
+ 0,
+ 28
+ ],
+ "quality": 0.920769681601247
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"is_superset\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"is_superset\") (args variable))) (compound (functor \"is_superset\") (args variable)))",
+ "(clause (head (compound (functor \"is_superset\") (args variable))) (compound (functor \"memb\") (args (args variable))))"
+ ],
+ "distribution": [
+ 9,
+ 132
+ ],
+ "quality": 0.9170297657688938
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"is_superset\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"is_superset\") (args variable))) (compound (functor \"memb\") (args (args variable))))"
+ ],
+ "distribution": [
+ 11,
+ 133
+ ],
+ "quality": 0.9065030379779777
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"is_superset\") (args variable))) (compound (functor \"is_subset\") (args (args variable))))"
+ ],
+ "distribution": [
+ 0,
+ 18
+ ],
+ "quality": 0.894789570952922
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"is_superset\") (args (args variable))))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.894467708395349
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"is_superset\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"is_superset\") (args variable))) (compound (functor \"is_superset\") (args variable)))",
+ "(clause (head (compound (functor \"is_superset\") (args (args (list (t variable)))))) (compound (functor \"is_superset\") (args (args variable))))"
+ ],
+ "distribution": [
+ 19,
+ 165
+ ],
+ "quality": 0.8824079410499159
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"intersect\") (args (args variable (args variable)))))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.8650267548667329
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"is_superset\") (args (args variable))) (compound (functor \"memb\") (args (args variable))))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.8650267548667329
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.7907865618907618
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"is_superset\") (args (args variable)))) (compound (functor \"intersect\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_superset\") (args (args \"[]\")))))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.7789503302060591
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"is_superset\") (args (list (t variable))))))"
+ ],
+ "distribution": [
+ 8,
+ 0
+ ],
+ "quality": 0.7664689004747853
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"is_superset\") (args (args variable)))) (compound (functor \"member\") (args (args variable))))"
+ ],
+ "distribution": [
+ 8,
+ 0
+ ],
+ "quality": 0.7664689004747853
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"is_superset\") (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.733244004247434
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"is_superset\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 6,
+ 0
+ ],
+ "quality": 0.6922614505910474
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (compound (functor \"is_superset\") (args (args variable))))"
+ ],
+ "distribution": [
+ 0,
+ 5
+ ],
+ "quality": 0.6497211701430571
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"is_superset\") (args variable)) (compound (functor \"memb\") (args variable)))"
+ ],
+ "distribution": [
+ 5,
+ 0
+ ],
+ "quality": 0.6482582581497028
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"is_supetset\") (args variable))) (compound (functor \"is_superset\") (args variable)))"
+ ],
+ "distribution": [
+ 5,
+ 0
+ ],
+ "quality": 0.6482582581497028
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/sets/powerset_2/bugs.json b/prolog/problems/sets/powerset_2/bugs.json
new file mode 100644
index 0000000..3b9a00b
--- /dev/null
+++ b/prolog/problems/sets/powerset_2/bugs.json
@@ -0,0 +1,219 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"powerset\") (args (args variable)))) (compound (functor \"findall\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"powerset\") (args variable))) (compound (functor \"findall\") (args (args (compound (functor \"subset\") (args variable))))))",
+ "(clause (compound (functor \"findall\") (args variable (args (compound (functor \"subset\") (args (args variable)))))))",
+ "(clause (head (compound (functor \"powerset\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"powerset\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"powerset\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"powerset\") (args (list (t variable))))) (compound (functor \"powerset\") (args variable)))",
+ "(clause (head (compound (functor \"powerset\") (args variable))) (compound (functor \"subset\") (args variable)))",
+ "(clause (head (compound (functor \"powerset\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"powerset\") (args (args variable)))))",
+ "(clause (head (compound (functor \"powerset\") (args (list (h variable))))))",
+ "(clause (head (compound (functor \"powerset\") (args (args (list (h \"[]\")))))))",
+ "(clause (head (compound (functor \"powerset\") (args \"[]\" (args (list (h \"[]\")))))))",
+ "(clause (head (compound (functor \"powerset\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"findall\") (args variable (args (compound (functor \"subset\") (args variable))))))",
+ "(clause (head (compound (functor \"powerset\") (args variable))))",
+ "(clause (head (compound (functor \"powerset\") (args variable))) (compound (functor \"findall\") (args (args (compound (functor \"subset\") (args (args variable)))))))",
+ "(clause (head (compound (functor \"powerset\") (args (args (list (t variable)))))) (compound (functor \"powerset\") (args (args variable))))",
+ "(clause (head (compound (functor \"powerset\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (compound (functor \"findall\") (args variable)))",
+ "(clause (compound (functor \"findall\") (args (args (compound (functor \"subset\") (args (args variable)))))))",
+ "(clause (head (compound (functor \"powerset\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"powerset\") (args (args variable)))) (compound (functor \"powerset\") (args (args variable))))",
+ "(clause (head (compound (functor \"powerset\") (args (args variable)))) (compound (functor \"subset\") (args (args variable))))",
+ "(clause (compound (functor \"findall\") (args variable (args (compound (functor \"parent\") (args (args variable)))))))",
+ "(clause (compound (functor \"subset\") (args (args variable))) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"powerset\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"powerset\") (args variable))) (compound (functor \"findall\") (args variable)))",
+ "(clause (head (compound (functor \"powerset\") (args (list (t variable))))) (compound (functor \"findall\") (args (args (compound (functor \"parent\") (args variable))))))",
+ "(clause (compound (functor \"findall\") (args (args (args variable)))) (compound (functor \"powerset\") (args (args variable))))",
+ "(clause (head (compound (functor \"powerset\") (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"powerset\") (args (args (list (h variable)))))) (compound (functor \"subset\") (args (args variable))))",
+ "(clause (compound (functor \"findall\") (args (args (args variable)))))",
+ "(clause (compound (functor \"subset\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"subset\") (args variable))))",
+ "(clause (head (compound (functor \"powerset\") (args variable))) (compound (functor \"subset\") (args (args variable))))",
+ "(clause (head (compound (functor \"powerset\") (args variable))) (compound (functor \"powerset\") (args variable)))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"findall\") (args variable (args (compound (functor \"is_subset\") (args variable))))))",
+ "(clause (head (compound (functor \"powerset\") (args (list (h variable))))) (compound (functor \"poverset\") (args variable)))",
+ "(clause (compound (functor \"findall\") (args (args (compound (functor \"subset\") (args (args variable))) (args variable)))))",
+ "(clause (head (compound (functor \"powerset\") (args (list (t variable))))) (compound (functor \"subset\") (args variable)))",
+ "(clause (head (compound (functor \"subset\") (args (args variable)))))",
+ "(clause (compound (functor \"findall\") (args (args (compound (functor \"parent\") (args variable))))) (compound (functor \"powerset\") (args variable)))",
+ "(clause (head (compound (functor \"powerset\") (args \"[]\" (args (binop \"=\" \"[]\"))))))",
+ "(clause (head (compound (functor \"powerset\") (args (args (binop variable \"=\" \"[]\"))))))",
+ "(clause (compound (functor \"powerset\") (args (args variable))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"powerset\") (args (args (binop \"=\" \"[]\"))))))",
+ "(clause (compound (functor \"subset\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"powerset\") (args (args variable)))) (compound (functor \"findall\") (args (args (compound (functor \"subset\") (args (args variable)))))))",
+ "(clause (head (compound (functor \"powerset\") (args (args (binop variable \"=\"))))))",
+ "(clause (compound (functor \"poverset\") (args (args variable))))",
+ "(clause (compound (functor \"findall\") (args (args (compound (functor \"subset\") (args variable))))))",
+ "(clause (head (compound (functor \"powerset\") (args \"[]\" (args (binop variable \"=\"))))))",
+ "(clause (head (compound (functor \"powerset\") (args (list (h variable))))) (binop \"=\" (list (h (list (h variable))))))",
+ "(clause (head (compound (functor \"powerset\") (args (args variable)))) (compound (functor \"bagof\") (args (args (args variable)))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"powerset\") (args (args \"[]\")))))"
+ ],
+ "distribution": [
+ 63,
+ 0
+ ],
+ "quality": 0.9722307719109978
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"powerset\") (args variable))) (compound (functor \"subset\") (args variable)))"
+ ],
+ "distribution": [
+ 42,
+ 0
+ ],
+ "quality": 0.9579742818233373
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"powerset\") (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 29,
+ 0
+ ],
+ "quality": 0.9371692827262958
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"powerset\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 24,
+ 0
+ ],
+ "quality": 0.9225892674725523
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"findall\") (args variable (args (compound (functor \"subset\") (args variable))))))"
+ ],
+ "distribution": [
+ 22,
+ 0
+ ],
+ "quality": 0.9156912952121569
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"powerset\") (args (args variable)))) (compound (functor \"findall\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"powerset\") (args variable))) (compound (functor \"findall\") (args (args (compound (functor \"subset\") (args variable))))))",
+ "(clause (compound (functor \"findall\") (args variable (args (compound (functor \"subset\") (args (args variable)))))))"
+ ],
+ "distribution": [
+ 10,
+ 126
+ ],
+ "quality": 0.9100774293201361
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"powerset\") (args \"[]\"))))"
+ ],
+ "distribution": [
+ 98,
+ 8
+ ],
+ "quality": 0.9037855287574943
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"powerset\") (args variable))))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8876472062866424
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"powerset\") (args variable))) (compound (functor \"findall\") (args (args (compound (functor \"subset\") (args variable))))))",
+ "(clause (compound (functor \"findall\") (args variable (args (compound (functor \"subset\") (args (args variable)))))))"
+ ],
+ "distribution": [
+ 14,
+ 127
+ ],
+ "quality": 0.8861444788109095
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"powerset\") (args variable))) (compound (functor \"findall\") (args (args (compound (functor \"subset\") (args (args variable)))))))"
+ ],
+ "distribution": [
+ 16,
+ 0
+ ],
+ "quality": 0.8805979876108646
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"findall\") (args variable)))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.8643582057994821
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"powerset\") (args (args variable)))) (compound (functor \"subset\") (args (args variable))))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.8224743773159554
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"subset\") (args variable))))"
+ ],
+ "distribution": [
+ 6,
+ 0
+ ],
+ "quality": 0.68848276586943
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"powerset\") (args variable))) (compound (functor \"subset\") (args (args variable))))"
+ ],
+ "distribution": [
+ 6,
+ 0
+ ],
+ "quality": 0.68848276586943
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/sets/subset_2/bugs.json b/prolog/problems/sets/subset_2/bugs.json
new file mode 100644
index 0000000..7d778ef
--- /dev/null
+++ b/prolog/problems/sets/subset_2/bugs.json
@@ -0,0 +1,235 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"subset\") (args (list (t variable))))) (compound (functor \"subset\") (args variable)))",
+ "(clause (head (compound (functor \"subset\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"subset\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"subset\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (compound (functor \"subset\") (args (args variable))))",
+ "(clause (head (compound (functor \"subset\") (args (list (h variable))))))",
+ "(clause (head (compound (functor \"subset\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"subset\") (args (args (list (t variable)))))) (compound (functor \"subset\") (args (args variable))))",
+ "(clause (binop variable \"=\"))",
+ "(clause (head (compound (functor \"subset\") (args (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"subset\") (args (args variable))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"subset\") (args variable (args variable)))))",
+ "(clause (compound (functor \"subset\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"subset\") (args variable))))",
+ "(clause (compound (functor \"subset\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"subset\") (args variable (args \"[]\")))))",
+ "(clause (compound (functor \"subset\") (args variable)))",
+ "(clause (head (compound (functor \"subset\") (args variable))) (compound (functor \"is_subset\") (args (args variable))))",
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (compound (functor \"is_subset\") (args variable)))",
+ "(clause (head (compound (functor \"subset\") (args (args variable)))))",
+ "(clause (head (compound (functor \"subset\") (args (list (h variable))))) (compound (functor \"subset\") (args (args (list (h variable))))))",
+ "(clause (binop \"=\" variable))",
+ "(clause (head (compound (functor \"subset\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"subset\") (args variable))) (compound (functor \"sublist\") (args variable)))",
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"subset\") (args variable)) (compound (functor \"subset\") (args variable)))",
+ "(clause (head (compound (functor \"subset\") (args (list (t variable))))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (compound (functor \"subset\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (compound (functor \"sublist\") (args (args variable))))",
+ "(clause (head (compound (functor \"subset\") (args (args (list (h variable)))))))",
+ "(clause (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (compound (functor \"diff\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"subset\") (args variable))) (compound (functor \"diff\") (args variable)))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"subset\") (args (args variable))))",
+ "(clause (head (compound (functor \"subset\") (args (list (h variable))))) (binop \"=\" variable))",
+ "(clause (compound (functor \"subset\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"subset\") (args variable))) (compound (functor \"is_subset\") (args variable)))",
+ "(clause (head (compound (functor \"subset\") (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"permute\") (args (args variable)))))",
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (compound (functor \"is_subset\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"subset\") (args variable))) (compound (functor \"permute\") (args variable)))",
+ "(clause (head (compound (functor \"subset\") (args (args (list (t variable)))))) (compound (functor \"subset\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"subset\") (args \"[]\" (args variable)))))",
+ "(clause (compound (functor \"subset\") (args (args variable))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"subset\") (args variable))) (compound (functor \"subset\") (args variable)))",
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (compound (functor \"subset\") (args (args variable))) (compound (functor \"subset\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (compound (functor \"permute\") (args (args variable))))",
+ "(clause (head (compound (functor \"subset\") (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (compound (functor \"intersect\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"subset\") (args (list (h variable))))) (compound (functor \"insert\") (args variable)))",
+ "(clause (head (compound (functor \"subset\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"subset\") (args (args (list (h variable)))))) (compound (functor \"subset\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"subset\") (args (list (h variable))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"subset\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"sublist\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"diff\") (args variable)))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"subset\") (args variable)))",
+ "(clause (compound (functor \"diff\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (compound (functor \"union\") (args variable (args variable))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"subset\") (args (args variable))))",
+ "(clause (compound (functor \"diff\") (args (args variable))))",
+ "(clause (head (compound (functor \"subset\") (args variable))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"subset\") (args (list (h variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"sublist\") (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"is_subset\") (args variable)) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"subset\") (args (list (t variable))))) (binop \"=\" variable))",
+ "(clause (compound (functor \"sublist\") (args (args variable))) (compound (functor \"is_subset\") (args variable)))",
+ "(clause (binop \"\\==\" variable) (compound (functor \"subset\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"permute\") (args variable))))",
+ "(clause (head (compound (functor \"subset\") (args (args (list (h variable)))))) (binop \"\\==\" variable))",
+ "(clause (compound (functor \"subset\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"subset\") (args variable))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"sublist\") (args variable))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (compound (functor \"subset\") (args variable)))",
+ "(clause (head (compound (functor \"subset\") (args (list (t (list (h variable))))))) (compound (functor \"subset\") (args variable)))",
+ "(clause (compound (functor \"diff\") (args (args (list (h variable) (t variable))))))",
+ "(clause (head (compound (functor \"subset\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (binop \"=\" variable) (compound (functor \"subset\") (args (args variable))))",
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (compound (functor \"subset\") (args (args (list (t (list (h variable))))))))",
+ "(clause (head (compound (functor \"subset\") (args (list (h variable))))) (binop variable \"\\==\"))",
+ "(clause (binop \"=\" \"[]\"))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (compound (functor \"is_subset\") (args variable)))"
+ ],
+ "distribution": [
+ 35,
+ 0
+ ],
+ "quality": 0.9472341826090998
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"subset\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 30,
+ 0
+ ],
+ "quality": 0.9360037505255554
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"subset\") (args (list (h variable))))) (compound (functor \"subset\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 28,
+ 0
+ ],
+ "quality": 0.9310345353291157
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"subset\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (compound (functor \"subset\") (args (args variable))))",
+ "(clause (head (compound (functor \"subset\") (args (args (list (t variable)))))) (compound (functor \"subset\") (args (args variable))))"
+ ],
+ "distribution": [
+ 4,
+ 80
+ ],
+ "quality": 0.913934983699415
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"subset\") (args variable))) (compound (functor \"is_subset\") (args (args variable))))"
+ ],
+ "distribution": [
+ 36,
+ 1
+ ],
+ "quality": 0.9120822311563208
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"subset\") (args variable))) (compound (functor \"sublist\") (args variable)))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.8860152000671373
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.8860152000671373
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"subset\") (args variable)) (compound (functor \"subset\") (args variable)))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.876899140771019
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"subset\") (args (args variable)))) (compound (functor \"subset\") (args (args (list (t variable))))))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.8459240264915695
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"subset\") (args (args (list (h variable)))))))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.8313514577864842
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"subset\") (args (list (h variable))))) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.7970465980763067
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"subset\") (args variable))) (compound (functor \"is_subset\") (args variable)))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.7726607891166476
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/sets/union_3/bugs.json b/prolog/problems/sets/union_3/bugs.json
new file mode 100644
index 0000000..497cac6
--- /dev/null
+++ b/prolog/problems/sets/union_3/bugs.json
@@ -0,0 +1,715 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"union\") (args (list (t variable))))) (compound (functor \"union\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"union\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"union\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args variable (args variable))))))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"union\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (binop variable \"=\"))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable)) (args (args (list (h variable))))))))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (t variable))))))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"union\") (args (args \"[]\" (args variable))))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"union\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"union\") (args variable (args \"[]\")))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (t variable)))))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"union\") (args \"[]\" (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"union\") (args (args \"[]\" (args \"[]\"))))))",
+ "(clause (head (compound (functor \"union\") (args variable (args (args variable))))))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (compound (functor \"memb\") (args (args variable))))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (h variable))))))) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (compound (functor \"memb\") (args variable)))",
+ "(clause (compound (functor \"union\") (args (args variable))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"union\") (args variable))) (compound (functor \"union\") (args variable)))",
+ "(clause (compound (functor \"union\") (args variable)))",
+ "(clause (binop \"=\" variable))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (unop \\+ (compound (functor \"member\") (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (compound (functor \"not\") (args (compound (functor \"memb\") (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))))",
+ "(clause (compound (functor \"not\") (args (compound (functor \"memb\") (args (args variable))))))",
+ "(clause (head (compound (functor \"union\") (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)) (args (list (h variable))))))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)))))) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (t variable))))))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))) (unop \\+ (compound (functor \"member\") (args (args variable)))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"union\") (args variable)))",
+ "(clause (unop \\+ (compound (functor \"member\") (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (h variable))))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (compound (functor \"member\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args \"[]\" (args (list (h variable)))))))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (compound (functor \"union\") (args (args variable))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (compound (functor \"union\") (args (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"union\") (args variable))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"member\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"union\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"not\") (args (compound (functor \"memb\") (args (args variable))))))",
+ "(clause (head (compound (functor \"union\") (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (compound (functor \"member\") (args (args variable))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (compound (functor \"not\") (args (compound (functor \"memb\") (args variable)))) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (binop \"=\" (list (h variable))) (unop \\+ (compound (functor \"member\") (args variable))))",
+ "(clause (compound (functor \"not\") (args (compound (functor \"memb\") (args (args variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"union\") (args \"[]\" (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)))))) (binop \"=\" (list (h variable))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (list (t variable))))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (unop \\+ (compound (functor \"member\") (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"union\") (args (args variable (args variable)))))",
+ "(clause (compound (functor \"union\") (args \"[]\" (args variable))))",
+ "(clause (compound (functor \"union\") (args \"[]\" (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable)) (args \"[]\")))))",
+ "(clause (compound (functor \"union\") (args \"[]\")))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (compound (functor \"union\") (args (args variable))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (compound (functor \"union\") (args (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"union\") (args (args \"[]\" (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"union\") (args (args variable (args (list (t variable))))))))",
+ "(clause (head (compound (functor \"union\") (args variable))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (unop \\+ (compound (functor \"member\") (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (compound (functor \"insert\") (args variable)))",
+ "(clause (unop \\+ (compound (functor \"member\") (args variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (binop variable \"=\") (binop \"=\" (list (h variable))))",
+ "(clause (unop \\+ (compound (functor \"member\") (args (args variable)))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args variable))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))) (compound (functor \"not\") (args (compound (functor \"memb\") (args (args variable))))))",
+ "(clause (binop variable \"=\") (unop \\+ (compound (functor \"member\") (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (h variable))))))) (unop \\+ (compound (functor \"member\") (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (binop variable \"\\=\"))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"not\") (args (compound (functor \"memb\") (args (args variable))))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))) (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (compound (functor \"conc\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (unop \\+ (compound (functor \"member\") (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (binop variable \"=\") (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (compound (functor \"not\") (args (compound (functor \"memb\") (args (args variable))))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (t variable))))))) (compound (functor \"union\") (args (args (args (list (t variable)))))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop variable \"=\") (binop \"=\" variable))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (h variable))))))) (compound (functor \"union\") (args (args (args (list (h variable)))))))",
+ "(clause (binop \"=\" (list (h variable))) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (head (compound (functor \"union\") (args \"[]\" (args (list (t variable)))))))",
+ "(clause (compound (functor \"not\") (args (compound (functor \"memb\") (args (args variable))))) (compound (functor \"append\") (args (args variable))))",
+ "(clause (compound (functor \"member\") (args (args variable))))",
+ "(clause (compound (functor \"union\") (args variable)) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args variable))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"union\") (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (t variable))))))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (compound (functor \"union\") (args variable)))",
+ "(clause (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (binop variable \"=\") (binop variable \"=\"))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (binop \"\\=\" variable))",
+ "(clause (compound (functor \"union\") (args variable (args \"[]\"))))",
+ "(clause (compound (functor \"union\") (args (args \"[]\" (args variable)))))",
+ "(clause (compound (functor \"union\") (args variable)) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"not\") (args (compound (functor \"memb\") (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (compound (functor \"del\") (args variable)))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (binop \"=\" variable) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (t variable)))))))",
+ "(clause (compound (functor \"union\") (args (args \"[]\"))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args variable))) (compound (functor \"union\") (args (args (args (list (h variable)))))))",
+ "(clause (compound (functor \"memb\") (args variable)) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (binop variable \"\\=\"))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"union\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)))))) (binop \"\\=\" variable))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (compound (functor \"notmemb\") (args variable)))",
+ "(clause (compound (functor \"count\") (args variable)) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"union\") (args variable))))",
+ "(clause (compound (functor \"memb\") (args variable)) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (compound (functor \"count\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)) (args \"[]\"))))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))) (compound (functor \"count\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (compound (functor \"union\") (args (args (list (h variable))))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args variable))) (compound (functor \"insert\") (args variable)))",
+ "(clause (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (compound (functor \"not\") (args (compound (functor \"memb\") (args variable)))) (compound (functor \"append\") (args (list (h variable)))))",
+ "(clause (binop \"=\" (list (t variable))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (compound (functor \"append\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)))))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (compound (functor \"not\") (args (compound (functor \"memb\") (args variable)))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (compound (functor \"member\") (args variable)))",
+ "(clause (compound (functor \"insert\") (args (args variable))))",
+ "(clause (binop variable \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)))))) (binop \"=\" variable))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))) (compound (functor \"\\+\") (args (compound (functor \"memb\") (args (args variable))))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)))))) (compound (functor \"not\") (args (compound (functor \"memb\") (args variable)))))",
+ "(clause (compound (functor \"count\") (args (args variable))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)))))) (compound (functor \"count\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (compound (functor \"del\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (compound (functor \"append\") (args (args variable))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (h variable))))))) (compound (functor \"not\") (args (compound (functor \"memb\") (args variable)))))",
+ "(clause (compound (functor \"insert\") (args (args variable))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (compound (functor \"insert\") (args variable)))",
+ "(clause (binop variable \"=\") (compound (functor \"union\") (args (args variable))))",
+ "(clause (compound (functor \"insert\") (args (args (args variable)))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (compound (functor \"memb\") (args variable)) (compound (functor \"union\") (args (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable) (t \"[]\"))))))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"notmemb\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (list (t \"[]\"))))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable)) (args (args \"[]\"))))))",
+ "(clause (compound (functor \"\\+\") (args (compound (functor \"memb\") (args variable)))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"union\") (args (list (t \"[]\")) (args \"[]\")))))",
+ "(clause (unop \\+ (compound (functor \"member\") (args (args variable)))) (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (head (compound (functor \"union\") (args (list (t \"[]\")) (args (args (list (h variable))))))))",
+ "(clause (compound (functor \"notmemb\") (args variable)) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)) (args (list (t (list (h variable))))))))))",
+ "(clause (compound (functor \"not\") (args (compound (functor \"memb\") (args (args variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"union\") (args variable)))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args variable (args (args \"[]\"))))))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))) (compound (functor \"member\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"del\") (args variable)))",
+ "(clause (compound (functor \"count\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (compound (functor \"\\+\") (args (compound (functor \"memb\") (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (t variable))))))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (compound (functor \"union\") (args (args (args (list (t variable)))))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"not\") (args (compound (functor \"memb\") (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (compound (functor \"union\") (args variable)) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (compound (functor \"member\") (args (args variable))))",
+ "(clause (compound (functor \"memb\") (args variable)) (compound (functor \"del\") (args variable)))",
+ "(clause (compound (functor \"\\+\") (args (compound (functor \"memb\") (args (args variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (compound (functor \"del\") (args variable)) (compound (functor \"insert\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"\\+\") (args (compound (functor \"memb\") (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (t \"[]\")))))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (compound (functor \"append\") (args (list (h variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"\\=\" variable))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)))))) (compound (functor \"append\") (args (list (h variable)))))",
+ "(clause (compound (functor \"\\+\") (args (compound (functor \"memb\") (args (args variable))))))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (t \"[]\")) (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \"\\=\"))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (t variable))))))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable) (t \"[]\")))))))",
+ "(clause (head (compound (functor \"uni\") (args (args (args (list (h variable))))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args \"[]\" (args (args (list (t variable))))))))",
+ "(clause (compound (functor \"union\") (args (args variable))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (t (list (t variable))))))))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (compound (functor \"union\") (args (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)))))) (compound (functor \"union\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"union\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"insert\") (args (args variable))) (binop variable \"=\"))",
+ "(clause (compound (functor \"not\") (args (compound (functor \"memb\") (args variable)))) (compound (functor \"insert\") (args variable)))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (binop variable \">\" \"0\"))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"uninon\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (h variable) (t \"[]\"))))))))",
+ "(clause (binop \">\" \"0\"))",
+ "(clause (binop \"\\=\" variable) (unop \\+ (compound (functor \"member\") (args variable))))",
+ "(clause (binop variable \"=\") (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args (args (list (t variable)))))) (compound (functor \"union\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"union\") (args (list (t variable))))) (compound (functor \"uninon\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args \"[]\" (args (list (t \"[]\")))))))",
+ "(clause (head (compound (functor \"union\") (args (args variable (args \"[]\"))))))",
+ "(clause (compound (functor \"union\") (args (args variable))) (compound (functor \"not\") (args (compound (functor \"memb\") (args (args variable))))))",
+ "(clause (compound (functor \"member\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"not\") (args (compound (functor \"member\") (args (args variable))))))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (binop variable \"is\"))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (t \"[]\"))))))))",
+ "(clause (binop variable \"\\=\") (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop variable \">\"))",
+ "(clause (compound (functor \"insert\") (args (args (args variable)))) (binop \"=\" variable))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop variable \"=:=\" \"0\"))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (h variable))))))) (compound (functor \"member\") (args variable)))",
+ "(clause (compound (functor \"union\") (args (args variable))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"conc\") (args \"[]\" (args variable))))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (binop \"\\=\" variable) (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (head (compound (functor \"union\") (args variable))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)))))) (compound (functor \"member\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (compound (functor \"union_cleanup\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args \"[]\" (args (args variable)))))",
+ "(clause (compound (functor \"union\") (args (args variable))) (compound (functor \"member\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)))))) (unop \\+ (compound (functor \"member\") (args variable))))",
+ "(clause (binop \"=:=\" \"0\"))",
+ "(clause (head (compound (functor \"union\") (args variable))) (compound (functor \"count\") (args (args variable))))",
+ "(clause (binop variable \"=\") (compound (functor \"union\") (args variable)))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop variable \"=:=\"))",
+ "(clause (compound (functor \"del\") (args variable)) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"union_cleanup\") (args (list (h variable))))) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (t (list (t variable))))))))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args \"[]\")))",
+ "(clause (binop variable \"\\=\") (unop \\+ (compound (functor \"memb\") (args variable))))",
+ "(clause (head (compound (functor \"union_cleanup\") (args (list (t variable))))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (binop variable \"=\") (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (h variable))))))) (binop variable \"\\=\"))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (t variable)))))) (compound (functor \"union\") (args variable)))",
+ "(clause (binop \"\\=\" variable) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop variable \"<\"))",
+ "(clause (binop variable \"=\") (compound (functor \"del\") (args (args variable))))",
+ "(clause (compound (functor \"notmemb\") (args (args variable))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (binop variable \"=:=\"))",
+ "(clause (binop \"\\=\" variable) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"memb\") (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"\\+\") (args (compound (functor \"memb\") (args (args variable))))))",
+ "(clause (compound (functor \"del\") (args (args variable (args variable)))))",
+ "(clause (head (compound (functor \"union_cleanup\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"union\") (args variable (args variable)))))",
+ "(clause (head (compound (functor \"memb\") (args variable))) (compound (functor \"memb\") (args variable)))",
+ "(clause (binop variable \"=\") (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (t variable)))))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"union\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)))))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (compound (functor \"union\") (args variable)) (compound (functor \"union\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args variable))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args variable))) (compound (functor \"union\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)))))) (compound (functor \"union\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (t variable)) (args \"[]\"))))))",
+ "(clause (head (compound (functor \"union\") (args (args (list (h variable)))))) (compound (functor \"insert\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"del\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"memb\") (args variable (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (h variable))))))) (compound (functor \"notmemb\") (args variable)))",
+ "(clause (unop \\+ (compound (functor \"member\") (args variable))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"unoion\") (args (args variable)))) (compound (functor \"member\") (args (args variable))))",
+ "(clause (unop \\+ (compound (functor \"member\") (args (args variable)))) (unop \\+ (compound (functor \"member\") (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (args variable (args variable)))))",
+ "(clause (head (compound (functor \"unionunion\") (args (list (t variable))))) (compound (functor \"union\") (args variable)))",
+ "(clause (compound (functor \"union\") (args (args (args variable)))) (compound (functor \"notmemb\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args variable (args (args variable)))))",
+ "(clause (head (compound (functor \"unionunion\") (args (args variable)))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (compound (functor \"not\") (args (compound (functor \"member\") (args (args variable))))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"insert\") (args variable)))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args (args variable))))) (compound (functor \"union\") (args (args (args (list (t variable)))))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args (args variable))))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"unoion\") (args (list (h variable))))) (compound (functor \"member\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (unop \\+ (compound (functor \"memb\") (args (args (args variable))))))",
+ "(clause (compound (functor \"count\") (args (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (compound (functor \"count\") (args (args variable))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))))"
+ ],
+ "distribution": [
+ 78,
+ 0
+ ],
+ "quality": 0.9743051886197767
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (compound (functor \"union\") (args (args (args (list (h variable)))))))"
+ ],
+ "distribution": [
+ 56,
+ 0
+ ],
+ "quality": 0.9613377811067118
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"union\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 47,
+ 0
+ ],
+ "quality": 0.9522807311531841
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args (args (args (list (h variable))))))) (compound (functor \"memb\") (args variable)))"
+ ],
+ "distribution": [
+ 44,
+ 0
+ ],
+ "quality": 0.9481387094716355
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args (list (t variable))))))"
+ ],
+ "distribution": [
+ 40,
+ 0
+ ],
+ "quality": 0.9414008279236681
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"union\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 27,
+ 0
+ ],
+ "quality": 0.9023069490370251
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"union\") (args (args variable (args variable)))))"
+ ],
+ "distribution": [
+ 27,
+ 0
+ ],
+ "quality": 0.9023069490370251
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (compound (functor \"union\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 26,
+ 0
+ ],
+ "quality": 0.8970365748064876
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (compound (functor \"union\") (args (args variable))))"
+ ],
+ "distribution": [
+ 26,
+ 0
+ ],
+ "quality": 0.8970365748064876
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 23,
+ 0
+ ],
+ "quality": 0.8773248269435879
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (h variable))))))) (unop \\+ (compound (functor \"member\") (args variable))))"
+ ],
+ "distribution": [
+ 0,
+ 22
+ ],
+ "quality": 0.8585955426961931
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args (list (h variable)) (args (list (h variable)))))))"
+ ],
+ "distribution": [
+ 20,
+ 0
+ ],
+ "quality": 0.8514878405900151
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args (args (args (list (t variable))))))) (compound (functor \"union\") (args (args variable))))"
+ ],
+ "distribution": [
+ 19,
+ 0
+ ],
+ "quality": 0.839798708765886
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"not\") (args (compound (functor \"memb\") (args (args variable))))) (compound (functor \"union\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8185777305695742
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args (args (list (t variable)))))))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8185777305695742
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (compound (functor \"insert\") (args (args variable))))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8185777305695742
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"member\") (args (args variable))))",
+ "(clause (unop \\+ (compound (functor \"member\") (args (args variable)))) (compound (functor \"union\") (args (args variable))))"
+ ],
+ "distribution": [
+ 1,
+ 22
+ ],
+ "quality": 0.7856499438411576
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"member\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (unop \\+ (compound (functor \"member\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 1,
+ 24
+ ],
+ "quality": 0.7825686659531135
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (compound (functor \"member\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (unop \\+ (compound (functor \"member\") (args variable))))"
+ ],
+ "distribution": [
+ 2,
+ 24
+ ],
+ "quality": 0.764440174267653
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"memb\") (args (args variable))))"
+ ],
+ "distribution": [
+ 8,
+ 32
+ ],
+ "quality": 0.660710251009848
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args \"[]\" (args (args variable))))))"
+ ],
+ "distribution": [
+ 13,
+ 34
+ ],
+ "quality": 0.6100442399859483
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (t variable))))))) (compound (functor \"union\") (args (args (args variable)))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args (args variable)))) (compound (functor \"union\") (args (args variable))))"
+ ],
+ "distribution": [
+ 8,
+ 27
+ ],
+ "quality": 0.6014604679650691
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args (args (args (list (h variable))))))) (compound (functor \"not\") (args (compound (functor \"memb\") (args variable)))))"
+ ],
+ "distribution": [
+ 0,
+ 8
+ ],
+ "quality": 0.5894094385220676
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args \"[]\" (args (args variable))))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 1,
+ 12
+ ],
+ "quality": 0.587592265527996
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args \"[]\" (args (args variable))))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (unop \\+ (compound (functor \"memb\") (args (args variable)))))",
+ "(clause (head (compound (functor \"union\") (args (args (args variable))))) (compound (functor \"union\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 14,
+ 33
+ ],
+ "quality": 0.563324881885194
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"union\") (args (args (args variable)))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (args \"[]\" (args variable))))))"
+ ],
+ "distribution": [
+ 0,
+ 6
+ ],
+ "quality": 0.4387079178467952
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args \"[]\" (args variable)))))",
+ "(clause (compound (functor \"count\") (args variable)) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 0,
+ 6
+ ],
+ "quality": 0.4387079178467952
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"union\") (args (args variable))))",
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (compound (functor \"not\") (args (compound (functor \"memb\") (args variable)))))"
+ ],
+ "distribution": [
+ 3,
+ 10
+ ],
+ "quality": 0.42571841169817115
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (unop \\+ (compound (functor \"memb\") (args variable))) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 6,
+ 11
+ ],
+ "quality": 0.31611319951867
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"union\") (args (list (h variable))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"union\") (args (args variable)))) (compound (functor \"not\") (args (compound (functor \"memb\") (args (args variable))))))"
+ ],
+ "distribution": [
+ 6,
+ 11
+ ],
+ "quality": 0.31611319951867
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/sorting/is_sorted_1/bugs.json b/prolog/problems/sorting/is_sorted_1/bugs.json
new file mode 100644
index 0000000..b225a78
--- /dev/null
+++ b/prolog/problems/sorting/is_sorted_1/bugs.json
@@ -0,0 +1,287 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))))",
+ "(clause (head (compound (functor \"is_sorted\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))) (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))) (compound (functor \"is_sorted\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (t variable))))))) (compound (functor \"is_sorted\") (args (list (t variable)))))",
+ "(clause (binop \"=<\" variable) (compound (functor \"is_sorted\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))) (binop variable \"<\"))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (t variable))))))) (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t variable))))) (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t variable))))) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t \"[]\"))))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable) (t \"[]\"))))))",
+ "(clause (head (compound (functor \"is_sorted\") (args variable))) (binop variable \"=\"))",
+ "(clause (binop variable \"=\") (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (binop \"<\" variable) (compound (functor \"is_sorted\") (args (list (h variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=<\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \"=<\"))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"<\" variable))",
+ "(clause (binop \"<\" variable))",
+ "(clause (compound (functor \"is_sorted\") (args (list (h variable)))) (binop \"=<\" variable))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (binop \"=<\" variable))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))) (binop \">=\" variable))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable) (t \"[]\"))))))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (t \"[]\"))))))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable) (t (list (t \"[]\"))))))))",
+ "(clause (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (t variable))))))) (binop variable \"==\"))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))) (binop variable \">=\"))",
+ "(clause (binop \"==\" (list (h variable))))",
+ "(clause (compound (functor \"is_sorted\") (args variable)) (binop variable \"==\"))",
+ "(clause (head (compound (functor \"is_sorted\") (args variable))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))) (binop variable \">=\"))",
+ "(clause (binop \"=\" (list (t variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))) (binop \">=\" variable))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (t variable))))))) (binop variable \"\\==\"))",
+ "(clause (compound (functor \"is_sorted\") (args variable)) (binop variable \"\\==\"))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (binop \"<\" variable) (binop variable \"<\"))",
+ "(clause (compound (functor \"is_sorted\") (args variable)) (binop \"<\" variable))",
+ "(clause (binop variable \"==\"))",
+ "(clause (binop \"=\" (list (t (list (t variable))))) (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))) (binop variable \"<\"))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (t variable))))))) (binop \"<\" variable))",
+ "(clause (compound (functor \"is_sorted\") (args variable)) (binop variable \"=\"))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \">=\"))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))) (compound (functor \"is_sorted\") (args (binop variable \"|\"))))",
+ "(clause (binop variable \"<\"))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (t variable))))))) (compound (functor \"is_sorted\") (args (binop \"|\" variable))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (compound (functor \"is_sorted\") (args (list (h variable)))))",
+ "(clause (binop \"=\" (list (t (list (t variable))))) (compound (functor \"is_sorted\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))) (binop variable \"=\"))",
+ "(clause (binop variable \"==\") (binop \"<\" variable))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (t variable))))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \">=\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \"<\"))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"is_sorted\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))) (compound (functor \"min\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))) (binop variable \">\"))",
+ "(clause (binop \"is\" (binop \"+\" \"1\")))",
+ "(clause (compound (functor \"min\") (args (list (h variable)) (args variable))))",
+ "(clause (binop variable \"is\" (binop \"+\" \"1\")))",
+ "(clause (binop \"is\" (binop variable \"+\" \"1\")))",
+ "(clause (binop \"=<\" variable) (compound (functor \"is_sorted\") (args (binop variable \"|\"))))",
+ "(clause (binop variable \"=\"))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))))",
+ "(clause (compound (functor \"tab\") (args \"2\")))",
+ "(clause (compound (functor \"min\") (args (list (t variable)))) (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t variable))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))) (binop \">\" variable))",
+ "(clause (binop \">=\" variable))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))) (binop variable \"==\"))",
+ "(clause (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (list (h variable)))) (binop \"=<\" variable))",
+ "(clause (binop \">=\" variable) (compound (functor \"is_sorted\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))) (binop variable \"=<\"))",
+ "(clause (binop variable \"==\") (binop \"=<\" variable))",
+ "(clause (binop \"=<\" variable) (binop \"=<\" variable))",
+ "(clause (binop variable \"=<\") (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (t variable))))))) (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))) (binop \"==\" variable))",
+ "(clause (binop variable \">=\") (compound (functor \"is_sorted\") (args (list (h variable)))))",
+ "(clause (compound (functor \"is_sorted\") (args variable)) (binop \"=<\" variable))",
+ "(clause (compound (functor \"is_sorted\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"printlist\") (args (args (args variable))))) (binop \"is\" (binop variable \"+\")))",
+ "(clause (head (compound (functor \"printlist\") (args (args variable)))) (compound (functor \"printlist\") (args (args variable))))",
+ "(clause (head (compound (functor \"printlist\") (args (list (h variable))))) (compound (functor \"write\") (args variable)))",
+ "(clause (binop \"=<\" variable) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (head (compound (functor \"printlist\") (args (list (t variable))))) (compound (functor \"printlist\") (args variable)))",
+ "(clause (compound (functor \"is_sorted\") (args (list (h variable)))) (binop \"<\" variable))",
+ "(clause (binop variable \"is\") (compound (functor \"printlist\") (args (args (args variable)))))",
+ "(clause (binop variable \">=\"))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t variable))))) (compound (functor \"min\") (args (list (t variable)))))",
+ "(clause (binop variable \"=\") (compound (functor \"is_sorted\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t variable))))) (compound (functor \"min\") (args variable)))",
+ "(clause (head (compound (functor \"is_sirted\") (args (list (t (list (h variable))))))) (binop \">=\" variable))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))) (compound (functor \"min\") (args (list (h variable)))))",
+ "(clause (compound (functor \"is_sorted\") (args (list (t variable)))))",
+ "(clause (binop \">=\" variable) (compound (functor \"is_sorted_prev\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (binop \"<\" variable))",
+ "(clause (binop variable \"=\") (compound (functor \"is_sorted\") (args (list (t variable)))))",
+ "(clause (binop \"=<\" variable) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"is_sorted\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))) (binop variable \">\"))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (t variable))))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (t variable))))))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"is_sorted\") (args variable))) (compound (functor \"min\") (args variable)))",
+ "(clause (head (compound (functor \"is_sorted_prev\") (args (list (h variable))))) (binop \">=\" variable))",
+ "(clause (head (compound (functor \"is_sorted_prev\") (args (list (h variable))))) (compound (functor \"is_sorted_prev\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_sorted_prev\") (args (list (t variable))))) (compound (functor \"is_sorted_prev\") (args variable)))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t variable))))) (compound (functor \"is_sorted\") (args (list (t variable)))))",
+ "(clause (compound (functor \"is_sorted\") (args (binop variable \"|\"))) (binop \"=<\" variable))",
+ "(clause (binop variable \"=\") (compound (functor \"min\") (args variable)))",
+ "(clause (head (compound (functor \"is_sorted_prev\") (args (args variable)))) (binop variable \">=\"))",
+ "(clause (binop variable \"=<\"))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (t variable))))))) (compound (functor \"is_sorted\") (args variable)))"
+ ],
+ "distribution": [
+ 128,
+ 1
+ ],
+ "quality": 0.9775613587613966
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))) (binop variable \"<\"))"
+ ],
+ "distribution": [
+ 155,
+ 5
+ ],
+ "quality": 0.9535087005106103
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))))",
+ "(clause (head (compound (functor \"is_sorted\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))) (compound (functor \"is_sorted\") (args (list (h variable)))))"
+ ],
+ "distribution": [
+ 7,
+ 127
+ ],
+ "quality": 0.9372780608306315
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))))",
+ "(clause (head (compound (functor \"is_sorted\") (args \"[]\"))))",
+ "(clause (binop \"=<\" variable) (compound (functor \"is_sorted\") (args (list (h variable)))))"
+ ],
+ "distribution": [
+ 6,
+ 119
+ ],
+ "quality": 0.9279482952616421
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=<\" variable))"
+ ],
+ "distribution": [
+ 23,
+ 0
+ ],
+ "quality": 0.898397072632486
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))) (binop variable \">=\"))"
+ ],
+ "distribution": [
+ 20,
+ 0
+ ],
+ "quality": 0.8776592983980024
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"is_sorted\") (args variable))))"
+ ],
+ "distribution": [
+ 19,
+ 0
+ ],
+ "quality": 0.8708864345755352
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \"=\" (list (t (list (t variable))))) (compound (functor \"is_sorted\") (args variable)))"
+ ],
+ "distribution": [
+ 16,
+ 0
+ ],
+ "quality": 0.8391288460195767
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))) (compound (functor \"is_sorted\") (args (binop variable \"|\"))))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.8165427141681832
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))))",
+ "(clause (head (compound (functor \"is_sorted\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))) (compound (functor \"is_sorted\") (args (list (h variable)))))"
+ ],
+ "distribution": [
+ 37,
+ 134
+ ],
+ "quality": 0.7647252790331621
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"is_sorted\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))) (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t \"[]\"))))))"
+ ],
+ "distribution": [
+ 2,
+ 20
+ ],
+ "quality": 0.7537186004546292
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))))",
+ "(clause (head (compound (functor \"is_sorted\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))) (binop variable \"=<\"))",
+ "(clause (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 3,
+ 20
+ ],
+ "quality": 0.6956803513785101
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))))",
+ "(clause (head (compound (functor \"is_sorted\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))) (binop variable \"=<\"))"
+ ],
+ "distribution": [
+ 65,
+ 153
+ ],
+ "quality": 0.6878219256560004
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/sorting/isort_2/bugs.json b/prolog/problems/sorting/isort_2/bugs.json
new file mode 100644
index 0000000..58236bc
--- /dev/null
+++ b/prolog/problems/sorting/isort_2/bugs.json
@@ -0,0 +1,390 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"isort\") (args (list (h variable))))) (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"isort\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"isort\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"isort\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"isort\") (args (args variable)))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"isort\") (args (list (t variable))))) (compound (functor \"isort\") (args variable)))",
+ "(clause (compound (functor \"isort\") (args (args variable))) (compound (functor \"sins\") (args (args variable))))",
+ "(clause (head (compound (functor \"isort\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"isort\") (args (args variable)))) (compound (functor \"isort\") (args (args variable))))",
+ "(clause (head (compound (functor \"isort\") (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"isort\") (args (list (t variable))))) (compound (functor \"sins\") (args (args variable))))",
+ "(clause (binop variable \"=\"))",
+ "(clause (head (compound (functor \"isort\") (args (args variable)))))",
+ "(clause (compound (functor \"sins\") (args (args (args variable)))) (compound (functor \"isort\") (args (args variable))))",
+ "(clause (head (compound (functor \"isort\") (args (args variable)))) (compound (functor \"sins\") (args (args variable))))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (head (compound (functor \"isort\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"isort\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"sins\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"sins\") (args (args (args variable)))) (compound (functor \"isort\") (args variable)))",
+ "(clause (compound (functor \"sins\") (args (args variable))) (compound (functor \"isort\") (args variable)))",
+ "(clause (compound (functor \"sins\") (args (args variable))) (compound (functor \"isort\") (args (args variable))))",
+ "(clause (binop variable \"=<\"))",
+ "(clause (binop variable \">\") (compound (functor \"sins\") (args variable)))",
+ "(clause (compound (functor \"isort\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"isort\") (args \"[]\" (args variable)))))",
+ "(clause (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"isort\") (args (list (h variable))))) (binop variable \">\"))",
+ "(clause (compound (functor \"isort\") (args (args variable))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"isort\") (args (list (h variable))))) (binop variable \"=<\"))",
+ "(clause (compound (functor \"sins\") (args (args variable))))",
+ "(clause (head (compound (functor \"isort\") (args (args variable)))) (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (head (compound (functor \"isort\") (args variable))) (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (head (compound (functor \"isort\") (args (list (h variable) (t \"[]\"))))))",
+ "(clause (head (compound (functor \"isort\") (args (list (t \"[]\"))))))",
+ "(clause (compound (functor \"isort\") (args variable)) (compound (functor \"sins\") (args (args variable))))",
+ "(clause (head (compound (functor \"isort\") (args (list (h variable))))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"sins\") (args (args variable))))",
+ "(clause (head (compound (functor \"isort\") (args (list (t \"[]\")) (args (list (h variable)))))))",
+ "(clause (binop \">\" variable) (compound (functor \"sins\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"isort\") (args variable))) (compound (functor \"min\") (args variable)))",
+ "(clause (head (compound (functor \"isort\") (args variable (args variable)))))",
+ "(clause (head (compound (functor \"isort\") (args variable))))",
+ "(clause (head (compound (functor \"sins\") (args variable (args (args (list (h variable))))))))",
+ "(clause (binop \"<\" variable))",
+ "(clause (head (compound (functor \"isort\") (args (args variable)))) (compound (functor \"isort\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t variable))))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"sins\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"isort\") (args (list (t (list (h variable))))))) (compound (functor \"sins\") (args (args (list (h variable))))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=<\" variable))",
+ "(clause (compound (functor \"min\") (args (args variable))) (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"isort\") (args (list (t variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"isort\") (args (list (t variable))))))",
+ "(clause (head (compound (functor \"isort\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"isort\") (args (list (t (list (h variable))))))) (binop \">\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"isort\") (args (args (list (t variable)))))) (compound (functor \"isort\") (args (args variable))))",
+ "(clause (compound (functor \"sins\") (args (args (args variable)))) (binop variable \"=\"))",
+ "(clause (binop variable \"=\") (compound (functor \"sins\") (args (args variable))))",
+ "(clause (compound (functor \"sins\") (args (args variable (args variable)))))",
+ "(clause (head (compound (functor \"isort\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"isort\") (args variable (args (args (list (h variable))))))))",
+ "(clause (compound (functor \"append\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"append\") (args (list (h variable)))))",
+ "(clause (compound (functor \"isort\") (args variable)))",
+ "(clause (head (compound (functor \"isort\") (args (list (t (list (t variable))))))) (compound (functor \"sins\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"isort\") (args (list (t (list (t variable))))))) (compound (functor \"isort\") (args (list (t variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"isort\") (args variable))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"isort\") (args (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"isort\") (args (args (list (h variable))))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (compound (functor \"isort\") (args (args (list (h variable))))) (binop \"=<\" variable))",
+ "(clause (binop \"=<\" variable) (compound (functor \"isort\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (compound (functor \"sins\") (args (args variable))))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop variable \">\"))",
+ "(clause (compound (functor \"min\") (args (args variable))) (compound (functor \"del\") (args variable)))",
+ "(clause (compound (functor \"isort\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"sins\") (args (args \"[]\" (args (list (h variable))))))))",
+ "(clause (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"isort\") (args (list (t (list (h variable))))))) (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"isort\") (args (args (list (h variable))))) (compound (functor \"sins\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"isort\") (args variable))) (compound (functor \"sins\") (args (args variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"isort\") (args (list (t (list (h variable))))))) (compound (functor \"isort\") (args (list (h variable)))))",
+ "(clause (compound (functor \"min\") (args variable)) (compound (functor \"del\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (compound (functor \"sins\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"sins\") (args (args (args variable)))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop \">\" variable))",
+ "(clause (binop \">\" variable) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"isort\") (args variable))) (compound (functor \"isort\") (args variable)))",
+ "(clause (compound (functor \"isort\") (args (args (list (t variable))))) (compound (functor \"sins\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"sins\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"isort\") (args (list (t variable))))) (compound (functor \"isort\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"isort\") (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"isort\") (args variable))) (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (h variable))))))) (binop variable \"<\"))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop variable \"==\"))",
+ "(clause (binop variable \"<\"))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (h variable))))))) (binop variable \"==\"))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop variable \"<\"))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"==\" variable))",
+ "(clause (binop \"=\" (list (t variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"sins\") (args (args variable (args (list (t variable))))))))",
+ "(clause (head (compound (functor \"isort\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"isort\") (args (list (t (list (t variable))))))) (compound (functor \"isort\") (args variable)))",
+ "(clause (binop variable \"=\") (compound (functor \"isort\") (args variable)))",
+ "(clause (compound (functor \"isort\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (compound (functor \"min\") (args variable)) (compound (functor \"sins\") (args (args variable))))",
+ "(clause (head (compound (functor \"isort\") (args (args variable (args variable))))))",
+ "(clause (compound (functor \"isort\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"isort\") (args (args (list (t variable)))))) (compound (functor \"sins\") (args (args variable))))",
+ "(clause (compound (functor \"append\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"isort\") (args (list (h variable)) (args (list (t (list (h variable)))))))))",
+ "(clause (head (compound (functor \"isort\") (args (list (t (list (h variable)))) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"isort\") (args (args (list (h variable)))))) (compound (functor \"sins\") (args variable)))",
+ "(clause (binop \"=<\" variable) (compound (functor \"append\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"isort\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"isort\") (args (args \"[]\" (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"isort\") (args (args (list (h variable)))))) (binop \">\" variable))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"isort\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"isort\") (args (list (t variable))))) (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"isort\") (args (list (h variable))))) (compound (functor \"isort\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"isort\") (args (args \"[]\"))))",
+ "(clause (head (compound (functor \"isort\") (args (list (t (list (t variable)))) (args (list (t (list (t variable)))))))))",
+ "(clause (compound (functor \"isort\") (args (args (list (t variable))))) (compound (functor \"append\") (args (args (list (t variable))))))",
+ "(clause (compound (functor \"isort\") (args variable (args \"[]\"))))",
+ "(clause (compound (functor \"is_sorted\") (args variable)) (binop \"=\" variable))",
+ "(clause (compound (functor \"del\") (args variable)) (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"isort\") (args (list (h variable))))) (compound (functor \"append\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"isort\") (args (args (list (h variable)) (args (list (h variable))))))))",
+ "(clause (compound (functor \"isort\") (args (args (list (h variable))))) (compound (functor \"append\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"isort\") (args (args (args (list (t variable))))))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (compound (functor \"append\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"isort\") (args (args variable)))) (compound (functor \"append\") (args (args (args variable)))))",
+ "(clause (binop variable \"=<\") (compound (functor \"append\") (args (list (h variable)))))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"isort\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 77,
+ 0
+ ],
+ "quality": 0.977740457880513
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"isort\") (args (args variable)))) (compound (functor \"isort\") (args (args variable))))"
+ ],
+ "distribution": [
+ 107,
+ 2
+ ],
+ "quality": 0.9628255078061851
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"sins\") (args (args (args variable)))) (compound (functor \"isort\") (args (args variable))))"
+ ],
+ "distribution": [
+ 76,
+ 1
+ ],
+ "quality": 0.9614393823148333
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"isort\") (args (list (t variable))))) (compound (functor \"sins\") (args (args variable))))"
+ ],
+ "distribution": [
+ 96,
+ 2
+ ],
+ "quality": 0.9581534151826205
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"isort\") (args (args variable)))) (compound (functor \"sins\") (args (args variable))))"
+ ],
+ "distribution": [
+ 69,
+ 1
+ ],
+ "quality": 0.9570281584881061
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"sins\") (args (args variable))) (compound (functor \"isort\") (args (args variable))))"
+ ],
+ "distribution": [
+ 42,
+ 0
+ ],
+ "quality": 0.9554496636892917
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"isort\") (args (args variable))))"
+ ],
+ "distribution": [
+ 38,
+ 0
+ ],
+ "quality": 0.9506055100475281
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"isort\") (args (list (h variable))))) (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"isort\") (args (args variable)))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"isort\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"isort\") (args (list (t variable))))) (compound (functor \"isort\") (args variable)))",
+ "(clause (compound (functor \"isort\") (args (args variable))) (compound (functor \"sins\") (args (args variable))))"
+ ],
+ "distribution": [
+ 6,
+ 135
+ ],
+ "quality": 0.9351795579638846
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"sins\") (args (args variable))))"
+ ],
+ "distribution": [
+ 28,
+ 0
+ ],
+ "quality": 0.9288796109922332
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"isort\") (args (list (h variable))))) (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"isort\") (args (list (t variable))))) (compound (functor \"isort\") (args variable)))",
+ "(clause (compound (functor \"isort\") (args (args variable))) (compound (functor \"sins\") (args (args variable))))",
+ "(clause (head (compound (functor \"isort\") (args (args \"[]\")))))"
+ ],
+ "distribution": [
+ 9,
+ 136
+ ],
+ "quality": 0.91675494226811
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"sins\") (args (args (args variable)))) (compound (functor \"isort\") (args variable)))"
+ ],
+ "distribution": [
+ 49,
+ 2
+ ],
+ "quality": 0.9130666008058437
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"isort\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"isort\") (args (args variable)))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (compound (functor \"isort\") (args (args variable))) (compound (functor \"sins\") (args (args variable))))"
+ ],
+ "distribution": [
+ 14,
+ 146
+ ],
+ "quality": 0.9048301949536517
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"isort\") (args (list (h variable))))) (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"isort\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"isort\") (args (args variable)))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"isort\") (args (list (t variable))))) (compound (functor \"isort\") (args variable)))",
+ "(clause (compound (functor \"isort\") (args (args variable))) (compound (functor \"sins\") (args (args variable))))"
+ ],
+ "distribution": [
+ 12,
+ 139
+ ],
+ "quality": 0.8990029777124932
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"isort\") (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.8806649756764369
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"isort\") (args (list (t variable))))))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.8064758915876264
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"isort\") (args variable (args \"[]\")))))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.7851253147291626
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"isort\") (args (list (t (list (h variable))))))) (binop \">\" variable))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.7851253147291626
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"isort\") (args (list (h variable))))) (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"isort\") (args (args variable)))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"isort\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"isort\") (args (list (t variable))))) (compound (functor \"isort\") (args variable)))"
+ ],
+ "distribution": [
+ 57,
+ 138
+ ],
+ "quality": 0.689289791332637
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"isort\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"isort\") (args (list (t variable))))) (compound (functor \"isort\") (args variable)))"
+ ],
+ "distribution": [
+ 124,
+ 140
+ ],
+ "quality": 0.518165990776647
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"isort\") (args (list (h variable))))) (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"isort\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"isort\") (args (list (t variable))))) (compound (functor \"isort\") (args variable)))"
+ ],
+ "distribution": [
+ 133,
+ 144
+ ],
+ "quality": 0.5064778166750439
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/sorting/pivoting_4/bugs.json b/prolog/problems/sorting/pivoting_4/bugs.json
new file mode 100644
index 0000000..c0e0772
--- /dev/null
+++ b/prolog/problems/sorting/pivoting_4/bugs.json
@@ -0,0 +1,614 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (compound (functor \"pivoting\") (args variable)))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (t variable)))))) (compound (functor \"pivoting\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable (args (args (args \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable (args \"[]\")))))",
+ "(clause (binop variable \"=\"))",
+ "(clause (head (compound (functor \"pivoting\") (args variable (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args \"[]\"))))))",
+ "(clause (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args variable)))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args \"[]\" (args \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args \"[]\" (args \"[]\"))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args \"[]\" (args (args \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop variable \">\"))",
+ "(clause (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args variable)))))) (compound (functor \"pivoting\") (args (args (args (args variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable))))) (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (binop \"=<\" variable) (compound (functor \"pivoting\") (args variable)))",
+ "(clause (binop \">\" variable) (compound (functor \"pivoting\") (args variable)))",
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)) (args (list (h variable))))))))",
+ "(clause (binop variable \"=<\") (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)) (args (args (list (h variable)))))))))",
+ "(clause (compound (functor \"pivoting\") (args variable)))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (binop \"=<\" variable))",
+ "(clause (binop variable \">\") (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (t variable))))))) (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (t variable)))))))) (compound (functor \"pivoting\") (args (args (args (args variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (h variable))))))) (binop variable \"=<\"))",
+ "(clause (binop \"=\" variable))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (h variable)))))))) (binop variable \">\"))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (binop \">\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (binop \"=\" variable))",
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (binop \"=\" variable))",
+ "(clause (binop \">\" variable))",
+ "(clause (binop variable \">\"))",
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (compound (functor \"pivoting\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"pivoting\") (args (args variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args variable)))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args variable)))))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop variable \"<\"))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop \">\" variable))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop variable \">\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop \">=\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop variable \">=\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable))))))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \"=<\"))",
+ "(clause (binop variable \">=\"))",
+ "(clause (binop \">=\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)) (args (args \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (h variable)) (args \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args \"[]\" (args (args variable)))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args \"[]\" (args variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop \">=\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \">\"))",
+ "(clause (binop \">\" variable) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=<\" variable) (binop \"=\" (list (h variable))))",
+ "(clause (binop variable \"<\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop variable \">=\"))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (binop \"<\" variable))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"pivoting\") (args (args (args (args variable))))))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (binop variable \">=\"))",
+ "(clause (binop variable \"=<\") (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (binop variable \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (t variable)))))))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (binop variable \"<\"))",
+ "(clause (binop \">=\" variable) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)) (args \"[]\"))))))",
+ "(clause (binop variable \">=\") (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (h variable))))))) (binop \"=<\" variable))",
+ "(clause (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop variable \">\") (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args \"[]\" (args (list (h variable)))))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop variable \"=<\") (compound (functor \"pivoting\") (args variable)))",
+ "(clause (head (compound (functor \"pivoting\") (args variable (args (args (list (h variable))))))))",
+ "(clause (binop \"<\" variable) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"conc\") (args variable)))",
+ "(clause (binop variable \"<\") (compound (functor \"pivoting\") (args variable)))",
+ "(clause (binop variable \"<\") (binop \"=\" (list (h variable))))",
+ "(clause (binop variable \">=\") (compound (functor \"pivoting\") (args variable)))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (binop \">=\" variable))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args variable)))))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop variable \"=\"))",
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (binop variable \"=\"))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (binop variable \">\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (binop variable \">\") (compound (functor \"pivoting\") (args variable)))",
+ "(clause (binop variable \"=<\") (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (t variable))))))))",
+ "(clause (binop variable \"=\") (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args variable)))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (t variable)))))))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop variable \"=\") (compound (functor \"pivoting\") (args (args (args (args variable))))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"pivoting\") (args (args (args (args variable))))))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args variable (args (args (args variable)))))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable) (t \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (compound (functor \"pivoting\") (args (args (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable))))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (h variable)))))))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable (args variable)))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (t \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop variable \"<\"))",
+ "(clause (head (compound (functor \"pivoting\") (args variable (args (list (t \"[]\")))))))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \"<\"))",
+ "(clause (binop variable \">\") (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (binop variable \">\") (binop variable \"=\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (t variable)))))) (compound (functor \"pivoting\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (compound (functor \"pivoting\") (args (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable (args (args (args (list (h variable)))))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args variable)))))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (h variable)))))))) (binop variable \"<\"))",
+ "(clause (binop variable \"=<\") (compound (functor \"pivoting\") (args (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable (args (args variable))))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (h variable))))))) (binop \">=\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args variable (args (list (h variable)))))))",
+ "(clause (binop variable \"=<\") (binop variable \"=\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (h variable)))))))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args variable)))))) (compound (functor \"pivoting\") (args (args (args (args (list (t variable))))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (t variable))))))) (compound (functor \"pivoting\") (args (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (h variable))))))) (compound (functor \"pivoting\") (args (args (args (list (h variable)))))))",
+ "(clause (binop variable \"=<\") (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable))))) (compound (functor \"pivoting\") (args (args (args (list (t variable)))))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (t variable)))))))) (compound (functor \"pivoting\") (args (args (args (args (list (t variable))))))))",
+ "(clause (binop \">=\" variable) (compound (functor \"pivoting\") (args variable)))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (h variable)))))))) (compound (functor \"pivoting\") (args (args (args (args (list (h variable))))))))",
+ "(clause (binop variable \">\") (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop variable \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"pivotintg\") (args variable))) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"<\" variable) (compound (functor \"pivoting\") (args variable)))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))))",
+ "(clause (binop \"=\" (list (t variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args variable)))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (h variable))))))) (binop \"=\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \">=\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (t \"[]\")) (args (args variable)))))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (h variable)))))))) (binop \"=\" variable))",
+ "(clause (compound (functor \"conc\") (args variable)) (binop variable \"=\"))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args \"[]\" (args variable)))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (t variable)))))) (compound (functor \"divide\") (args variable)))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args (list (h variable))))))))",
+ "(clause (binop \"=<\" variable) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (binop variable \"=\" variable))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args (list (t variable))))))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (compound (functor \"insert\") (args variable)))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (compound (functor \"memb\") (args variable)))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (h variable)))))))) (binop variable \">=\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (t \"[]\")) (args variable))))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (list (t variable)))))))",
+ "(clause (binop variable \">\") (binop \"=\" variable))",
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args variable (args \"[]\"))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args variable)))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (binop variable \"=<\") (compound (functor \"conc\") (args variable)))",
+ "(clause (binop variable \"=<\") (binop \"=\" variable))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (compound (functor \"memb\") (args variable)) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable (args \"[]\")))))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (h variable)))))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (t \"[]\")) (args (list (h variable))))))))",
+ "(clause (binop \"<\" variable) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (binop variable \">\") (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"pivoting\") (args (args variable (args (args variable)))))))",
+ "(clause (compound (functor \"insert\") (args variable)))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args variable)))))))"
+ ],
+ "distribution": [
+ 55,
+ 0
+ ],
+ "quality": 0.9646038629778293
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable))))))"
+ ],
+ "distribution": [
+ 46,
+ 0
+ ],
+ "quality": 0.9565792405951599
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop \"=<\" variable))"
+ ],
+ "distribution": [
+ 49,
+ 1
+ ],
+ "quality": 0.9333575564076649
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop \">=\" variable))"
+ ],
+ "distribution": [
+ 30,
+ 0
+ ],
+ "quality": 0.9281456277174943
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop \">\" variable))"
+ ],
+ "distribution": [
+ 42,
+ 1
+ ],
+ "quality": 0.9196692919638001
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (t variable))))))) (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (h variable)))))))) (binop variable \">\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args \"[]\" (args \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (t variable)))))))) (compound (functor \"pivoting\") (args (args (args (args variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop variable \"=<\"))"
+ ],
+ "distribution": [
+ 2,
+ 70
+ ],
+ "quality": 0.9141700985787253
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop \">\" variable) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 24,
+ 0
+ ],
+ "quality": 0.9054470973913306
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (t variable))))))) (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (h variable)))))))) (binop variable \">\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args \"[]\" (args \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (t variable)))))))) (compound (functor \"pivoting\") (args (args (args (args variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args variable)))))) (compound (functor \"pivoting\") (args (args (args (args variable))))))"
+ ],
+ "distribution": [
+ 3,
+ 71
+ ],
+ "quality": 0.9010804032895451
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop \"<\" variable))"
+ ],
+ "distribution": [
+ 22,
+ 0
+ ],
+ "quality": 0.8967947967775677
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable))))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 20,
+ 0
+ ],
+ "quality": 0.8833917794693875
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable))))) (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (t variable))))))) (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args \"[]\" (args \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop variable \">\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop variable \"=<\"))"
+ ],
+ "distribution": [
+ 5,
+ 71
+ ],
+ "quality": 0.8733102042440354
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (h variable))))))) (binop \"=<\" variable))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.8670331757192835
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args variable)))))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.8670331757192835
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (t variable))))))) (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (h variable)))))))) (binop variable \">\"))",
+ "(clause (head (compound (functor \"pivoting\") (args variable (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (t variable)))))))) (compound (functor \"pivoting\") (args (args (args (args variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop variable \"=<\"))"
+ ],
+ "distribution": [
+ 6,
+ 71
+ ],
+ "quality": 0.8607822782639075
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (t variable)))))))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8565477971369478
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args variable (args (args (list (h variable))))))))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8565477971369478
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (args \"[]\" (args \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args variable)))))) (compound (functor \"pivoting\") (args (args (args (args variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable))))) (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)) (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (h variable)))))))) (binop variable \">\"))"
+ ],
+ "distribution": [
+ 8,
+ 72
+ ],
+ "quality": 0.8386399910610023
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (t variable))))))))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.8311795304272034
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable))))) (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (t variable))))))) (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args \"[]\" (args \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (h variable))))))) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (t variable)))))))) (compound (functor \"pivoting\") (args (args (args (args variable))))))"
+ ],
+ "distribution": [
+ 9,
+ 71
+ ],
+ "quality": 0.8246122931853285
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (t variable)))))))))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.8175197680473467
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args variable)))))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 14,
+ 0
+ ],
+ "quality": 0.8175197680473467
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (binop \"=\" variable))",
+ "(clause (binop variable \">\") (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))))"
+ ],
+ "distribution": [
+ 3,
+ 31
+ ],
+ "quality": 0.7671090358537019
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.7573443708477038
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (compound (functor \"pivoting\") (args (args (args (args (list (h variable))))))))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.7573443708477038
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable (args variable)))))))"
+ ],
+ "distribution": [
+ 11,
+ 0
+ ],
+ "quality": 0.7573443708477038
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (args \"[]\" (args \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args variable)))))) (compound (functor \"pivoting\") (args (args (args (args variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable))))) (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop variable \">\"))"
+ ],
+ "distribution": [
+ 21,
+ 88
+ ],
+ "quality": 0.7573339622994669
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)) (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (t variable)))))))) (compound (functor \"pivoting\") (args (args (args (args variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args \"[]\" (args \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (t variable))))))) (compound (functor \"pivoting\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 20,
+ 78
+ ],
+ "quality": 0.7422111987664158
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable))))) (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args \"[]\" (args \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args variable)))))) (compound (functor \"pivoting\") (args (args (args (args variable))))))"
+ ],
+ "distribution": [
+ 25,
+ 91
+ ],
+ "quality": 0.7363563666930584
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args (args (args \"[]\" (args \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args variable)))))) (compound (functor \"pivoting\") (args (args (args (args variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop variable \">\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable))))) (compound (functor \"pivoting\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 26,
+ 90
+ ],
+ "quality": 0.7308834359619308
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 0,
+ 10
+ ],
+ "quality": 0.6895233580702241
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop \"=<\" variable))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (binop variable \"=<\"))"
+ ],
+ "distribution": [
+ 0,
+ 11
+ ],
+ "quality": 0.6402754788380215
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (binop \"=\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \">\"))"
+ ],
+ "distribution": [
+ 1,
+ 10
+ ],
+ "quality": 0.5782029185604409
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/sorting/quick_sort_2/bugs.json b/prolog/problems/sorting/quick_sort_2/bugs.json
new file mode 100644
index 0000000..1245417
--- /dev/null
+++ b/prolog/problems/sorting/quick_sort_2/bugs.json
@@ -0,0 +1,594 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"pivoting\") (args variable)))",
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (compound (functor \"quick_sort\") (args variable)))",
+ "(clause (head (compound (functor \"quick_sort\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (compound (functor \"quick_sort\") (args variable)))",
+ "(clause (head (compound (functor \"quick_sort\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"quick_sort\") (args \"[]\" (args \"[]\")))))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (t variable))))) (compound (functor \"pivoting\") (args (args variable))))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"conc\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"pivoting\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (t variable))))) (compound (functor \"pivoting\") (args (args (list (t variable))))))",
+ "(clause (binop variable \"=\"))",
+ "(clause (compound (functor \"pivoting\") (args variable (args (list (h variable))))))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"pivoting\") (args variable)))",
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"quick_sort\") (args variable))) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (args variable)))))",
+ "(clause (binop variable \">\"))",
+ "(clause (binop \">\" variable))",
+ "(clause (binop \"=\" variable))",
+ "(clause (binop variable \"=<\"))",
+ "(clause (binop \"=<\" variable))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"quick_sort\") (args variable))) (compound (functor \"pivoting\") (args (args variable))))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"pivoting\") (args variable)))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (t \"[]\"))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (t variable)))))) (compound (functor \"pivoting\") (args (args variable))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable) (t \"[]\"))))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (compound (functor \"pivoting\") (args variable)))",
+ "(clause (compound (functor \"pivoting\") (args (args variable))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (binop variable \">\"))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (t (list (h variable))))))) (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (t \"[]\")) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (t (list (h variable))))))) (binop \">\" variable))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (compound (functor \"quick_sort\") (args variable)) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop variable \">\") (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (t (list (h variable))))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (t (list (h variable))))))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (binop \"=\" variable))",
+ "(clause (binop \">\" variable) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=<\" variable) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (binop variable \"=<\") (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args variable)))))) (compound (functor \"pivoting\") (args (args (args (args variable))))))",
+ "(clause (binop variable \"=\") (compound (functor \"pivoting\") (args (args variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable (args (args (args \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable (args (args \"[]\"))))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))))",
+ "(clause (binop variable \"=\") (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (t (list (h variable))))))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"quick_sort\") (args (args (list (h variable)))))) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"pivoting\") (args (args variable))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (compound (functor \"quicksort\") (args variable)))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (t variable))))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (args (list (t (list (h variable)))))))) (binop variable \"=\"))",
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (compound (functor \"isort\") (args variable)))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable) (t \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable (args (list (t \"[]\")))))))",
+ "(clause (binop variable \"<\"))",
+ "(clause (binop \"<\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (compound (functor \"quicksort\") (args variable)))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (t \"[]\")))))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (compound (functor \"conc\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable)) (args variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (compound (functor \"isort\") (args variable)))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)) (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args \"[]\" (args \"[]\"))))))",
+ "(clause (head (compound (functor \"conc\") (args (list (h variable)) (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\"))))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)) (args (args (list (h variable)))))))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\" (args variable)))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"conc\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args \"[]\" (args \"[]\")))))))",
+ "(clause (head (compound (functor \"conc\") (args \"[]\" (args (args variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop variable \">\"))",
+ "(clause (binop variable \"=\") (compound (functor \"quick_sort\") (args variable)))",
+ "(clause (head (compound (functor \"conc\") (args (args (args (list (t variable))))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args variable))))) (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (compound (functor \"isort\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"quicksort\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"pivoting\") (args (args \"[]\" (args (args \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (args variable)))) (compound (functor \"append\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"append\") (args variable)))",
+ "(clause (compound (functor \"isort\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (args (list (h variable)))))) (compound (functor \"quick_sort\") (args (args variable))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"quick_sort\") (args \"[]\" (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (args variable)))) (compound (functor \"isort\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))) (compound (functor \"pivoting\") (args variable)))",
+ "(clause (compound (functor \"quick_sort\") (args variable)) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"pivoting\") (args (args (args (args variable))))))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"quick_sort\") (args (list (h variable)))))",
+ "(clause (binop \"=<\" variable) (binop \"=\" variable))",
+ "(clause (binop variable \"=\") (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \"<\"))",
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"isort\") (args (list (h variable)))))",
+ "(clause (binop variable \"=<\") (binop \"=\" variable))",
+ "(clause (compound (functor \"quicksort\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (args variable)))) (compound (functor \"concat\") (args (args (args variable)))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (binop variable \"=\") (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (compound (functor \"quick_sort\") (args (list (h variable)))))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"is\" (binop (binop \"+\" variable) \"//\")))",
+ "(clause (binop \"==\" (list (h variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop variable \"<\"))",
+ "(clause (compound (functor \"min\") (args (list (t variable)))) (compound (functor \"max\") (args (list (t variable)))))",
+ "(clause (compound (functor \"min\") (args (list (h variable)))) (compound (functor \"max\") (args (list (h variable)))))",
+ "(clause (compound (functor \"pivoting\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop \">\" variable))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args variable)))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (t \"[]\")) (args \"[]\"))))))",
+ "(clause (head (compound (functor \"conc\") (args (args variable)))) (binop \"=\" variable))",
+ "(clause (compound (functor \"max\") (args (list (h variable)))) (compound (functor \"pivoting\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)) (args (args \"[]\")))))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop variable \"<\"))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (compound (functor \"concat\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (h variable)) (args \"[]\")))))))",
+ "(clause (binop \"is\" (binop \"//\" \"2\")))",
+ "(clause (binop \"is\" (binop (binop variable \"+\") \"//\" \"2\")))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (compound (functor \"append\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"conc\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (compound (functor \"min\") (args (list (t variable)))) (compound (functor \"pivoting\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)) (args \"[]\"))))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"min\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"max\") (args (list (h variable)))))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (binop \">\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (h variable))))))) (binop \">\" variable))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"concat\") (args variable)))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"concat\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (t variable))))) (compound (functor \"min\") (args (list (t variable)))))",
+ "(clause (binop variable \"<\") (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (t \"[]\")) (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"append\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (t variable))))) (compound (functor \"max\") (args (list (t variable)))))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (t \"[]\")) (args (args \"[]\")))))))",
+ "(clause (binop variable \"is\" (binop \"//\" \"2\")))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (t \"[]\")) (args (args (list (h variable)))))))))",
+ "(clause (compound (functor \"max\") (args (args variable))) (binop \"is\" (binop (binop variable \"+\") \"//\")))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop \"=\" variable))",
+ "(clause (compound (functor \"max\") (args (list (t variable)))) (compound (functor \"pivoting\") (args (args (list (t variable))))))",
+ "(clause (binop \"is\" (binop (binop \"+\" variable) \"//\" \"2\")))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args \"[]\" (args (list (h variable)))))))))",
+ "(clause (binop variable \"is\") (compound (functor \"pivoting\") (args variable)))",
+ "(clause (compound (functor \"min\") (args (list (h variable)))) (compound (functor \"pivoting\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"shiftleft\") (args (list (t variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop variable \">\"))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (h variable))))))) (binop \"=\" variable))",
+ "(clause (binop variable \">\") (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (h variable)))))))) (binop \"<\" variable))",
+ "(clause (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"quick_sort\") (args variable)) (binop \"=\" (list (t variable))))",
+ "(clause (binop variable \"==\"))",
+ "(clause (compound (functor \"quicksort\") (args (args variable))) (compound (functor \"conc\") (args (args (list (t variable))))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (compound (functor \"quick_sort\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (t variable))))) (binop variable \"=\"))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"append\") (args (args variable))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (args variable)))) (compound (functor \"quick_sort\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"<\" variable))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"concat\") (args (args (list (t variable))))))",
+ "(clause (binop \">\" variable) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"quick_sort\") (args variable))))",
+ "(clause (binop variable \">\") (binop \"=\" variable))",
+ "(clause (compound (functor \"last_elem\") (args (args variable))) (compound (functor \"pivoting\") (args variable)))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (h variable)))))))) (binop variable \">\"))",
+ "(clause (head (compound (functor \"quick_sort\") (args (args (list (t variable)))))) (compound (functor \"quick_sort\") (args (args variable))))",
+ "(clause (binop \"==\" (list (t variable))))",
+ "(clause (head (compound (functor \"quicksort\") (args \"[]\" (args \"[]\")))))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"append\") (args (args (list (t variable))))))",
+ "(clause (compound (functor \"last_elem\") (args variable)) (compound (functor \"pivoting\") (args (args variable))))",
+ "(clause (head (compound (functor \"quicksort\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (t variable))))))) (compound (functor \"pivoting\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (args (list (t variable)))))))) (compound (functor \"pivoting\") (args (args (args (args variable))))))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"quick_sort\") (args (args variable))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (t (list (h variable))))))) (compound (functor \"isort\") (args (list (t (list (h variable)))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (list (h variable)))))) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"conc\") (args (args variable (args variable))))))",
+ "(clause (head (compound (functor \"pivoting\") (args (args (args (list (h variable))))))) (binop variable \"=<\"))",
+ "(clause (binop \"=<\" variable) (compound (functor \"pivoting\") (args variable)))",
+ "(clause (head (compound (functor \"quick_sort\") (args variable (args variable)))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (compound (functor \"quick_sort\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"quick_sort\") (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"quicksort\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"pivoting\") (args variable))) (binop \"=<\" variable))",
+ "(clause (compound (functor \"pivoting\") (args (args (list (t variable))))))",
+ "(clause (binop \">\" variable) (compound (functor \"pivoting\") (args variable)))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"pivoting\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (compound (functor \"quick_sort\") (args variable)))"
+ ],
+ "distribution": [
+ 90,
+ 0
+ ],
+ "quality": 0.9764882155582799
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"pivoting\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (compound (functor \"quick_sort\") (args variable)))"
+ ],
+ "distribution": [
+ 87,
+ 0
+ ],
+ "quality": 0.9755379758772118
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"pivoting\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 75,
+ 0
+ ],
+ "quality": 0.9708975117350563
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"pivoting\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 73,
+ 0
+ ],
+ "quality": 0.9699604893023981
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"quick_sort\") (args (args variable))))"
+ ],
+ "distribution": [
+ 53,
+ 0
+ ],
+ "quality": 0.9674066980469899
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"pivoting\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 104,
+ 2
+ ],
+ "quality": 0.9626511754052124
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"quick_sort\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 44,
+ 0
+ ],
+ "quality": 0.9598388529668453
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"quick_sort\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (args \"[]\")))))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (t variable))))) (compound (functor \"pivoting\") (args (args variable))))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"conc\") (args (args (list (t variable))))))"
+ ],
+ "distribution": [
+ 2,
+ 120
+ ],
+ "quality": 0.9580012423061603
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"pivoting\") (args variable)))",
+ "(clause (head (compound (functor \"quick_sort\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"conc\") (args (args (list (t variable))))))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 3,
+ 121
+ ],
+ "quality": 0.9500584085841223
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"quick_sort\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (args \"[]\")))))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (compound (functor \"quick_sort\") (args variable)))"
+ ],
+ "distribution": [
+ 8,
+ 147
+ ],
+ "quality": 0.9403859611666608
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (compound (functor \"quick_sort\") (args variable)))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"quick_sort\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"conc\") (args (args (list (t variable))))))"
+ ],
+ "distribution": [
+ 5,
+ 125
+ ],
+ "quality": 0.9363611655439407
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (compound (functor \"quick_sort\") (args variable)))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (t variable))))) (compound (functor \"pivoting\") (args (args variable))))",
+ "(clause (head (compound (functor \"quick_sort\") (args \"[]\"))))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"conc\") (args (args (list (t variable))))))"
+ ],
+ "distribution": [
+ 6,
+ 121
+ ],
+ "quality": 0.9262882532102532
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 25,
+ 0
+ ],
+ "quality": 0.9240643023231885
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 49,
+ 2
+ ],
+ "quality": 0.916880152068617
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"quick_sort\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (args \"[]\")))))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (compound (functor \"quick_sort\") (args variable)))"
+ ],
+ "distribution": [
+ 13,
+ 152
+ ],
+ "quality": 0.9140155443303338
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"quick_sort\") (args variable))) (compound (functor \"pivoting\") (args (args variable))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (compound (functor \"quick_sort\") (args variable)))"
+ ],
+ "distribution": [
+ 26,
+ 0
+ ],
+ "quality": 0.8951314130170517
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"pivoting\") (args (args (args variable)))) (compound (functor \"quick_sort\") (args variable)))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (t variable))))) (compound (functor \"pivoting\") (args (args variable))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"conc\") (args (args (list (t variable))))))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 11,
+ 121
+ ],
+ "quality": 0.8897339920225685
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"quick_sort\") (args variable))) (compound (functor \"pivoting\") (args (args variable))))",
+ "(clause (head (compound (functor \"quick_sort\") (args \"[]\"))))"
+ ],
+ "distribution": [
+ 24,
+ 0
+ ],
+ "quality": 0.882954713838925
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (compound (functor \"quicksort\") (args variable)))"
+ ],
+ "distribution": [
+ 16,
+ 0
+ ],
+ "quality": 0.8754484264833706
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"quick_sort\") (args (list (t variable))))))"
+ ],
+ "distribution": [
+ 15,
+ 0
+ ],
+ "quality": 0.8654973710066844
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable)) (args variable)))))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.8416671288774003
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 13,
+ 0
+ ],
+ "quality": 0.8416671288774003
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.8264014440638541
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"quick_sort\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"quick_sort\") (args (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"pivoting\") (args variable)) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"pivoting\") (args (args (args (args variable))))) (compound (functor \"quick_sort\") (args variable)))"
+ ],
+ "distribution": [
+ 29,
+ 154
+ ],
+ "quality": 0.8243899448937496
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"quick_sort\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"quick_sort\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"conc\") (args (args (list (h variable))))))"
+ ],
+ "distribution": [
+ 30,
+ 148
+ ],
+ "quality": 0.8142204836346375
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"quick_sort\") (args (list (h variable))))) (compound (functor \"conc\") (args (list (h variable)))))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.7882138095581407
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"quick_sort\") (args (args (list (h variable)))))) (compound (functor \"quick_sort\") (args (args variable))))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.7882138095581407
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.760358883852663
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"pivoting\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 9,
+ 0
+ ],
+ "quality": 0.760358883852663
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/sorting/sins_3/bugs.json b/prolog/problems/sorting/sins_3/bugs.json
new file mode 100644
index 0000000..4be67b9
--- /dev/null
+++ b/prolog/problems/sorting/sins_3/bugs.json
@@ -0,0 +1,900 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"sins\") (args variable))) (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args variable (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"sins\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"sins\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (compound (functor \"sins\") (args (args variable))))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop variable \"=<\"))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args \"[]\" (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop variable \">\"))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop \"=<\" variable))",
+ "(clause (binop variable \"=\"))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop \"=\" (list (h variable))))",
+ "(clause (binop variable \"=<\"))",
+ "(clause (binop variable \">\") (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (binop \"=<\" variable))",
+ "(clause (binop variable \">\"))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)) (args (list (h variable))))))))",
+ "(clause (binop \">\" variable))",
+ "(clause (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)) (args (list (t (list (h variable))))))))))",
+ "(clause (binop variable \"=<\") (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"sins\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t variable))))))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args variable))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)) (args (list (t (list (t variable))))))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (h variable))))))) (binop variable \"=<\"))",
+ "(clause (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (binop \">\" variable) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t (list (h variable))))))))) (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (binop \"=<\" variable) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop variable \">=\"))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop variable \"<\"))",
+ "(clause (head (compound (functor \"sins\") (args (args \"[]\" (args variable))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop \">=\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (h variable))))))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (args variable))))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"sins\") (args (args variable))))",
+ "(clause (binop variable \"<\"))",
+ "(clause (binop variable \">=\"))",
+ "(clause (binop \"<\" variable))",
+ "(clause (binop variable \">=\") (compound (functor \"sins\") (args variable)))",
+ "(clause (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"sins\") (args (args variable))))",
+ "(clause (binop \">=\" variable))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (h variable))))))) (binop \">=\" variable))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"sins\") (args variable (args (args variable))))))",
+ "(clause (head (compound (functor \"sins\") (args variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t (list (h variable)))))))) (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"sins\") (args variable (args (args (list (t (list (h variable))))))))))",
+ "(clause (binop variable \"=<\") (compound (functor \"sins\") (args variable)))",
+ "(clause (compound (functor \"sins\") (args (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (binop \">=\" variable) (binop \"=\" (list (h variable))))",
+ "(clause (binop variable \">\") (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (args variable))))) (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (compound (functor \"insert\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args (args (args variable))))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args \"[]\" (args \"[]\"))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"sins\") (args (args variable)))) (compound (functor \"insert\") (args (args variable))))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t (list (h variable))))))))) (binop variable \">=\"))",
+ "(clause (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (binop variable \"<\") (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t (list (t variable)))))))) (compound (functor \"sins\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t (list (h variable)))))))) (compound (functor \"sins\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (h variable))))))) (binop variable \"<\"))",
+ "(clause (binop variable \"=<\") (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))))",
+ "(clause (binop variable \"=\") (binop \"=\" (list (t variable))))",
+ "(clause (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"insert\") (args (args (args variable)))) (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args variable (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args variable))))) (compound (functor \"insert\") (args (args (args variable)))))",
+ "(clause (binop \"<\" variable) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (compound (functor \"sins\") (args variable)) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (compound (functor \"conc\") (args (args (list (t variable))))))",
+ "(clause (binop \"=<\" variable) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop variable \"<\") (compound (functor \"sins\") (args variable)))",
+ "(clause (compound (functor \"sins\") (args (args (args variable)))) (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (binop \"=\" (list (t (list (t (list (h variable))))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (h variable))))))) (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (compound (functor \"sins\") (args (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop \">=\" variable))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop \">\" variable))",
+ "(clause (binop variable \"<\") (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (binop variable \"=<\") (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (binop variable \"=\") (compound (functor \"conc\") (args (args variable))))",
+ "(clause (compound (functor \"sins\") (args variable)) (binop variable \">\"))",
+ "(clause (binop variable \">=\") (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"sins\") (args (args variable)))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t (list (h variable))))))))) (binop \"<\" variable))",
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (head (compound (functor \"sins\") (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (binop variable \"=<\") (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable) (t \"[]\")))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t \"[]\")))))))",
+ "(clause (head (compound (functor \"sins\") (args variable (args (list (t \"[]\")))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t (list (t variable)))))))) (compound (functor \"sins\") (args (args variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop variable \"<\"))",
+ "(clause (compound (functor \"sins\") (args (args (list (h variable))))) (binop \"=<\" variable))",
+ "(clause (compound (functor \"sins\") (args variable)) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop \"=<\" variable) (binop \"=\" (list (t (list (t (list (h variable))))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t (list (t variable))))))))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (t (list (t (list (t variable))))))))",
+ "(clause (compound (functor \"sins\") (args variable)) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=<\" variable) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (binop \"<\" variable) (compound (functor \"sins\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t (list (h variable)))) (args (list (t (list (t (list (h variable))))))))))))",
+ "(clause (binop variable \">\") (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t (list (h variable)))))))) (binop \"=\" (list (t (list (t (list (h variable))))))))",
+ "(clause (binop variable \">=\") (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t (list (t variable))))))))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (binop \"=<\" variable) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop variable \">\"))",
+ "(clause (binop \">\" variable) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (binop variable \">\") (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args (list (h variable)) (args (args (list (h variable))))))))",
+ "(clause (compound (functor \"sins\") (args (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"sins\") (args (list (h variable)) (args \"[]\")))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t (list (t variable)))))))) (binop \"=\" (list (t (list (t (list (t variable))))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args variable))))) (compound (functor \"sins\") (args (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop variable \">=\"))",
+ "(clause (compound (functor \"append\") (args (list (h variable)))))",
+ "(clause (compound (functor \"conc\") (args (list (t (list (h variable)))))))",
+ "(clause (compound (functor \"conc\") (args (args (list (t variable))))))",
+ "(clause (binop \"<\" variable) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"sins\") (args (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t (list (h variable))))))))) (compound (functor \"sins\") (args variable)))",
+ "(clause (binop \"=<\" variable) (compound (functor \"sins\") (args variable)))",
+ "(clause (compound (functor \"sins\") (args variable)) (binop variable \">=\"))",
+ "(clause (head (compound (functor \"sins\") (args \"[]\"))))",
+ "(clause (binop variable \"is\" (binop \"-\" \"1\")))",
+ "(clause (head (compound (functor \"sins\") (args (args (args variable))))) (compound (functor \"append\") (args (args (args variable)))))",
+ "(clause (binop variable \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t (list (h variable))))))))) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t (list (h variable)))))))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t (list (t variable)))) (args (list (t (list (t (list (t variable))))))))))))",
+ "(clause (binop \"is\" (binop \"-\" \"1\")))",
+ "(clause (head (compound (functor \"sins\") (args (args variable (args (list (t variable))))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t variable))))))))",
+ "(clause (binop \">\" variable) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t (list (t (list (h variable))))))))))) (binop \"=<\" variable))",
+ "(clause (compound (functor \"append\") (args (list (t (list (h variable)))))))",
+ "(clause (binop \"is\" (binop variable \"-\" \"1\")))",
+ "(clause (compound (functor \"append\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t (list (h variable)))))))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t \"[]\")) (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (binop \"=\" (list (t (list (t (list (h variable))))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)) (args (list (t variable))))))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (binop \"=\" variable))",
+ "(clause (binop variable \"==\"))",
+ "(clause (binop \"=\" (list (t (list (t variable))))) (binop \"=\" (list (t (list (t (list (t variable))))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (h variable))))))) (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t variable))))))) (binop variable \"=\"))",
+ "(clause (binop \">\" variable) (compound (functor \"sins\") (args (args (args (list (h variable)))))))",
+ "(clause (binop \">\" variable) (compound (functor \"conc\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \"<\"))",
+ "(clause (binop \"=\" (list (h variable))) (binop \">=\" variable))",
+ "(clause (binop variable \"=<\") (compound (functor \"conc\") (args variable)))",
+ "(clause (binop \">=\" variable) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (binop variable \"<\") (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop \"is\" (binop variable \"-\")))",
+ "(clause (head (compound (functor \"sins\") (args variable (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t \"[]\")) (args variable))))))",
+ "(clause (binop variable \"=\") (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sins\") (args (args variable)))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (args variable))))) (binop \"=\" (list (t variable))))",
+ "(clause (binop variable \"is\") (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (binop variable \"=\"))",
+ "(clause (binop \"<\" variable) (binop \"=\" (list (t (list (t (list (h variable))))))))",
+ "(clause (binop variable \">\") (binop variable \">\"))",
+ "(clause (compound (functor \"conc\") (args (args variable))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (compound (functor \"sins\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (h variable))))))) (binop variable \">\"))",
+ "(clause (binop variable \"<\") (binop variable \">=\"))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (compound (functor \"append\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t (list (t variable))))))))) (compound (functor \"sins\") (args (args variable))))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \">=\"))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (compound (functor \"sins\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop variable \"==\"))",
+ "(clause (head (compound (functor \"sins\") (args \"[]\" (args \"[]\")))))",
+ "(clause (binop \">\" variable) (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args \"[]\" (args (args \"[]\"))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args variable))))) (binop variable \"is\"))",
+ "(clause (compound (functor \"sins2\") (args variable)))",
+ "(clause (compound (functor \"conc\") (args (args (list (t (list (h variable))))))))",
+ "(clause (compound (functor \"is_sorted\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"sins\") (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t (list (t variable))))) (compound (functor \"sins\") (args (args variable))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (binop \"<\" variable))",
+ "(clause (compound (functor \"sins\") (args (args (list (t variable))))))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (compound (functor \"sins\") (args (args (args (list (h variable)))))))",
+ "(clause (binop variable \">=\") (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))) (binop variable \"<\"))",
+ "(clause (compound (functor \"append\") (args (args variable))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))) (binop \"<\" variable))",
+ "(clause (compound (functor \"sins\") (args variable (args (args (list (t (list (h variable)))))))))",
+ "(clause (binop variable \">=\") (binop variable \"<\"))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (compound (functor \"sins\") (args (args (args (list (t (list (h variable)))))))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (t variable))))))) (compound (functor \"is_sorted\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args (args (list (t (list (h variable))))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (compound (functor \"conc\") (args (args (list (t (list (t variable))))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t (list (t (list (h variable))))))))))) (binop \"<\" variable))",
+ "(clause (compound (functor \"sins\") (args (args (args variable)))) (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))) (binop \"==\" variable))",
+ "(clause (binop \"=<\" variable) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (t (list (h variable))))))) (compound (functor \"is_sorted\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"is_sorted\") (args (list (h variable))))) (binop variable \"==\"))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t (list (t (list (t variable))))))))))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (binop \"is\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t (list (h variable))))))))) (binop variable \"<\"))",
+ "(clause (binop \"=\" (list (t variable))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t variable))))))) (compound (functor \"conc\") (args (args (args variable)))))",
+ "(clause (compound (functor \"sins\") (args variable)) (binop variable \"<\"))",
+ "(clause (compound (functor \"sins\") (args (args (args variable)))) (compound (functor \"append\") (args (args variable))))",
+ "(clause (binop variable \"=<\") (compound (functor \"append\") (args (list (h variable)))))",
+ "(clause (binop variable \"=<\") (binop variable \"=<\"))",
+ "(clause (compound (functor \"permute\") (args (args variable))) (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (binop \"=<\" variable) (compound (functor \"conc\") (args (list (t (list (h variable)))))))",
+ "(clause (compound (functor \"conc\") (args (args (args variable)))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (compound (functor \"sins\") (args variable)))",
+ "(clause (binop variable \"<\") (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (binop \"=\" (list (h variable))) (binop variable \">\"))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (compound (functor \"conc\") (args (list (t (list (h variable)))))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (compound (functor \"sins\") (args (args (list (t variable))))))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (binop \">\" variable))",
+ "(clause (compound (functor \"conc\") (args (list (t (list (t (list (h variable)))))))))",
+ "(clause (binop variable \"is\"))",
+ "(clause (binop \"==\" \"1\"))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (compound (functor \"sins\") (args (args (args (list (t (list (t variable)))))))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"sins\") (args variable)))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"append\") (args (list (t (list (h variable)))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (h variable))))))) (binop \"<\" variable))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"append\") (args (args variable))))",
+ "(clause (binop variable \"==\") (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (compound (functor \"sins\") (args (args (list (h variable))))))",
+ "(clause (head (compound (functor \"sins\") (args (args variable)))) (binop \"=\" (list (h variable))))",
+ "(clause (binop variable \"==\" \"1\"))",
+ "(clause (binop variable \">\") (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"sins\") (args (args (args variable)))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (h variable))))))) (binop variable \">=\"))",
+ "(clause (binop \"<\" variable) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"conc\") (args variable (args (args variable)))))",
+ "(clause (binop \">\" variable) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"sins\") (args (args variable))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t (list (h variable))))))))) (binop \">\" variable))",
+ "(clause (binop \"=<\" variable) (compound (functor \"conc\") (args (args (list (t (list (h variable))))))))",
+ "(clause (compound (functor \"sins\") (args (args variable (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"sins2\") (args (args (args variable))))) (compound (functor \"conc\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args (list (t (list (h variable)))))))",
+ "(clause (binop \"=<\" variable) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t (list (t variable)))))))) (compound (functor \"conc\") (args (args variable))))",
+ "(clause (binop \"=<\" variable) (compound (functor \"append\") (args (list (t (list (h variable)))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (compound (functor \"sins\") (args (args (args (list (t variable)))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t variable))))))) (compound (functor \"sins\") (args (args variable))))",
+ "(clause (binop variable \"=<\") (compound (functor \"conc\") (args (list (t (list (h variable)))))))",
+ "(clause (compound (functor \"conc\") (args (args (list (t (list (t variable))))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (h variable))))))) (compound (functor \"is_sorted\") (args (list (h variable)))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"append\") (args (list (h variable)))))",
+ "(clause (binop \">=\" variable) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (h variable))))))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t (list (h variable)))))))) (binop \">=\" variable))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop variable \"=\"))",
+ "(clause (compound (functor \"conc\") (args variable)) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (binop \"=\" variable) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t (list (t variable)))))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (compound (functor \"is_sorted\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"sins2\") (args variable))) (compound (functor \"conc\") (args (args (list (h variable))))))",
+ "(clause (binop variable \"=<\") (compound (functor \"sins\") (args (args (args (list (h variable)))))))",
+ "(clause (binop \"=\" (list (t (list (t (list (h (binop \"=\" \"[]\")))))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t (list (h variable))))))))) (binop variable \">\"))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (compound (functor \"conc\") (args (list (h variable)))))",
+ "(clause (compound (functor \"sins\") (args variable (args (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop (list (h variable)) \"=\"))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t (list (h variable)))))))) (compound (functor \"conc\") (args (list (t (list (t (list (h variable)))))))))",
+ "(clause (compound (functor \"sins\") (args (args variable))) (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (binop variable \"=\") (compound (functor \"sins\") (args variable)))",
+ "(clause (binop \"=\" (list (t (list (h variable))))) (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (compound (functor \"conc\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (binop (list (t variable)) \"=\"))"
+ ],
+ "rules": [
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (args variable))))) (compound (functor \"sins\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 100,
+ 0
+ ],
+ "quality": 0.9808876432758806
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args variable (args (args variable))))))"
+ ],
+ "distribution": [
+ 65,
+ 0
+ ],
+ "quality": 0.9677851622133488
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop \"=\" (list (t (list (h variable))))))"
+ ],
+ "distribution": [
+ 94,
+ 1
+ ],
+ "quality": 0.965156282594389
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args variable))))"
+ ],
+ "distribution": [
+ 59,
+ 0
+ ],
+ "quality": 0.9635570811337941
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (list (t (list (h variable)))))))) (binop \"=<\" variable))"
+ ],
+ "distribution": [
+ 57,
+ 0
+ ],
+ "quality": 0.9620571503100492
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=<\") (compound (functor \"sins\") (args variable)))"
+ ],
+ "distribution": [
+ 56,
+ 0
+ ],
+ "quality": 0.9612483586107097
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"sins\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 69,
+ 1
+ ],
+ "quality": 0.9492448843969059
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (args variable))))))"
+ ],
+ "distribution": [
+ 44,
+ 0
+ ],
+ "quality": 0.9472892138049042
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"=<\") (binop \"=\" (list (t (list (h variable))))))"
+ ],
+ "distribution": [
+ 41,
+ 0
+ ],
+ "quality": 0.9423634075261883
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))))"
+ ],
+ "distribution": [
+ 38,
+ 0
+ ],
+ "quality": 0.9362438391543242
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args variable (args (args \"[]\"))))))"
+ ],
+ "distribution": [
+ 38,
+ 0
+ ],
+ "quality": 0.9362438391543242
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args variable (args (args (list (t (list (h variable))))))))))"
+ ],
+ "distribution": [
+ 51,
+ 1
+ ],
+ "quality": 0.9266082478740626
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (args \"[]\"))))))"
+ ],
+ "distribution": [
+ 46,
+ 1
+ ],
+ "quality": 0.9152002140639004
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args \"[]\" (args variable))))))",
+ "(clause (binop variable \"=\"))"
+ ],
+ "distribution": [
+ 42,
+ 0
+ ],
+ "quality": 0.9087943314582194
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args \"[]\" (args variable))))))"
+ ],
+ "distribution": [
+ 115,
+ 8
+ ],
+ "quality": 0.9028855457375982
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (h variable))))))) (compound (functor \"sins\") (args variable)))"
+ ],
+ "distribution": [
+ 27,
+ 0
+ ],
+ "quality": 0.8989020000391386
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"sins\") (args variable)) (binop variable \"=<\"))"
+ ],
+ "distribution": [
+ 27,
+ 0
+ ],
+ "quality": 0.8989020000391386
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \"<\") (compound (functor \"sins\") (args variable)))"
+ ],
+ "distribution": [
+ 27,
+ 0
+ ],
+ "quality": 0.8989020000391386
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (compound (functor \"sins\") (args (args (args (list (h variable)))))))"
+ ],
+ "distribution": [
+ 26,
+ 0
+ ],
+ "quality": 0.8932052595715085
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 23,
+ 0
+ ],
+ "quality": 0.8738339200055651
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (list (t (list (t variable)))))))) (compound (functor \"sins\") (args (args variable))))"
+ ],
+ "distribution": [
+ 21,
+ 0
+ ],
+ "quality": 0.855298262622929
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"sins\") (args variable)) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 21,
+ 0
+ ],
+ "quality": 0.855298262622929
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t (list (t variable))))))))) (compound (functor \"sins\") (args (args (args variable)))))"
+ ],
+ "distribution": [
+ 21,
+ 0
+ ],
+ "quality": 0.855298262622929
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (binop variable \">\") (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 20,
+ 0
+ ],
+ "quality": 0.8450662166976287
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t variable))))))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sins\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)) (args (list (t (list (t variable))))))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (h variable))))))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t (list (h variable))))))))) (binop \"=<\" variable))"
+ ],
+ "distribution": [
+ 3,
+ 44
+ ],
+ "quality": 0.8335487352816061
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (compound (functor \"conc\") (args (args variable))))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.8298329739707182
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args variable))) (compound (functor \"conc\") (args variable)))"
+ ],
+ "distribution": [
+ 18,
+ 0
+ ],
+ "quality": 0.8298329739707182
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t variable))))))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sins\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)) (args (list (t (list (t variable))))))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t (list (h variable))))))))) (binop \"=<\" variable))"
+ ],
+ "distribution": [
+ 3,
+ 43
+ ],
+ "quality": 0.8294744267227235
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)) (args (list (t (list (t variable))))))))))",
+ "(clause (head (compound (functor \"sins\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (compound (functor \"sins\") (args (args variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t (list (h variable))))))))) (binop \"=<\" variable))"
+ ],
+ "distribution": [
+ 8,
+ 45
+ ],
+ "quality": 0.7455981044389828
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args variable (args (args (list (h variable))))))))",
+ "(clause (binop \">\" variable) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=<\" variable) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (compound (functor \"sins\") (args (args (args variable)))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 2,
+ 24
+ ],
+ "quality": 0.7441031979469139
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)) (args (list (t (list (t variable))))))))))",
+ "(clause (head (compound (functor \"sins\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (compound (functor \"sins\") (args (args variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)) (args (list (h variable))))))))"
+ ],
+ "distribution": [
+ 8,
+ 44
+ ],
+ "quality": 0.7400662138722005
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (args variable))))) (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (compound (functor \"insert\") (args (args (args variable)))) (compound (functor \"is_sorted\") (args variable)))"
+ ],
+ "distribution": [
+ 5,
+ 28
+ ],
+ "quality": 0.7341998361017273
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args variable (args (args (list (h variable))))))))",
+ "(clause (binop variable \"=<\") (binop \"=\" (list (h variable))))",
+ "(clause (binop \">\" variable) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"sins\") (args (args (args variable)))) (binop \"=\" (list (t variable))))"
+ ],
+ "distribution": [
+ 4,
+ 29
+ ],
+ "quality": 0.7303542401887497
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args variable (args (args (list (h variable))))))))",
+ "(clause (binop variable \">\") (compound (functor \"sins\") (args variable)))",
+ "(clause (binop \">\" variable) (binop \"=\" (list (h variable))))",
+ "(clause (binop variable \"=<\") (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (compound (functor \"sins\") (args (args variable))))"
+ ],
+ "distribution": [
+ 3,
+ 26
+ ],
+ "quality": 0.7110741956551745
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (binop variable \">\") (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop variable \"=<\"))",
+ "(clause (compound (functor \"sins\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"sins\") (args variable (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 3,
+ 26
+ ],
+ "quality": 0.7110741956551745
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"insert\") (args (args (args variable)))) (compound (functor \"is_sorted\") (args variable)))"
+ ],
+ "distribution": [
+ 8,
+ 30
+ ],
+ "quality": 0.7098895699381707
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (binop variable \">\") (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop variable \"=<\"))",
+ "(clause (compound (functor \"sins\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (head (compound (functor \"sins\") (args variable (args (args (list (h variable))))))))",
+ "(clause (binop \">\" variable) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 5,
+ 31
+ ],
+ "quality": 0.7060575242929531
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (args variable))))) (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (compound (functor \"insert\") (args variable)))"
+ ],
+ "distribution": [
+ 7,
+ 29
+ ],
+ "quality": 0.696226701732783
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args variable (args (args (list (h variable))))))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop \"=<\" variable))",
+ "(clause (binop variable \">\") (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (t variable)))))) (compound (functor \"sins\") (args (args variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 6,
+ 31
+ ],
+ "quality": 0.6818629466509938
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args variable (args (args (list (h variable))))))))",
+ "(clause (binop variable \"=<\") (binop \"=\" (list (h variable))))",
+ "(clause (binop \">\" variable) (binop \"=\" (list (h variable))))",
+ "(clause (binop variable \"=<\"))"
+ ],
+ "distribution": [
+ 3,
+ 21
+ ],
+ "quality": 0.6634301112541018
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args variable (args (args (list (h variable))))))))",
+ "(clause (binop variable \">\") (compound (functor \"sins\") (args variable)))",
+ "(clause (head (compound (functor \"sins\") (args variable))) (binop variable \"=<\"))",
+ "(clause (binop \">\" variable) (binop \"=\" (list (h variable))))",
+ "(clause (head (compound (functor \"sins\") (args (args \"[]\")))))"
+ ],
+ "distribution": [
+ 10,
+ 36
+ ],
+ "quality": 0.6488769570244319
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (binop variable \">\") (compound (functor \"sins\") (args variable)))",
+ "(clause (compound (functor \"sins\") (args (args (args variable)))) (binop \"=\" (list (t variable))))",
+ "(clause (binop \"=<\" variable) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"sins\") (args variable (args \"[]\")))))"
+ ],
+ "distribution": [
+ 7,
+ 25
+ ],
+ "quality": 0.6030083742620038
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args variable (args (args (list (h variable))))))))",
+ "(clause (binop \"=\" (list (h variable))) (binop \"=\" (list (h variable))))"
+ ],
+ "distribution": [
+ 1,
+ 10
+ ],
+ "quality": 0.5822077796881613
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t (list (h variable))))))))) (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (h variable))))))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"sins\") (args variable (args \"[]\")))))"
+ ],
+ "distribution": [
+ 26,
+ 45
+ ],
+ "quality": 0.554086293717492
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t variable))))))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sins\") (args variable (args \"[]\")))))",
+ "(clause (head (compound (functor \"sins\") (args (args (list (h variable)))))) (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (h variable))))))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"sins\") (args variable (args (args (list (h variable))))))))"
+ ],
+ "distribution": [
+ 26,
+ 47
+ ],
+ "quality": 0.5431899910006248
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (t variable))))))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (h variable))))))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"sins\") (args (args (args (list (h variable))))))) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"sins\") (args variable (args \"[]\")))))"
+ ],
+ "distribution": [
+ 26,
+ 45
+ ],
+ "quality": 0.540320563981338
+ }
+ ]
+} \ No newline at end of file
diff --git a/prolog/problems/sorting/slowest_sort_ever_2/bugs.json b/prolog/problems/sorting/slowest_sort_ever_2/bugs.json
new file mode 100644
index 0000000..422291f
--- /dev/null
+++ b/prolog/problems/sorting/slowest_sort_ever_2/bugs.json
@@ -0,0 +1,245 @@
+{
+ "patterns": [
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args variable))) (compound (functor \"permute\") (args variable)))",
+ "(clause (compound (functor \"permute\") (args (args variable))) (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args variable)))) (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args variable)))) (compound (functor \"permute\") (args (args variable))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args \"[]\")))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args \"[]\"))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args \"[]\" (args \"[]\")))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args variable)))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (h variable)) (args (list (h variable)))))))",
+ "(clause (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args variable)))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args variable)))) (compound (functor \"slowest_sort_ever\") (args (args variable))))",
+ "(clause (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args variable))) (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args variable))) (binop variable \"=\"))",
+ "(clause (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (binop variable \"=\"))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args (list (t variable)))))) (compound (functor \"slowest_sort_ever\") (args (args variable))))",
+ "(clause (compound (functor \"is_sorted\") (args variable)) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (t (list (t variable))))))) (compound (functor \"slowest_sort_ever\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (t (list (t \"[]\")))) (args (list (t (list (h variable)))))))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (t (list (t \"[]\")))) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (t (list (t \"[]\"))))))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (h variable) (t (list (t \"[]\"))))))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (t (list (h variable) (t \"[]\"))))))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (h variable))))) (binop variable \">\"))",
+ "(clause (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" \"[]\"))",
+ "(clause (compound (functor \"permute\") (args (args variable))) (compound (functor \"slowest_sort_ever\") (args variable)))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (t (list (h variable))))))) (compound (functor \"slowest_sort_ever\") (args (list (h variable)))))",
+ "(clause (binop variable \"=\" \"[]\"))",
+ "(clause (compound (functor \"slowest_sort_ever\") (args (args variable))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (t (list (h variable))))))) (binop \"<\" variable))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args (list (h variable)))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (h variable))))) (binop variable \"<\"))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (t (list (h variable))))))) (binop \"=\" variable))",
+ "(clause (binop \"<\" variable))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args (list (h variable)))))) (binop variable \"<\"))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (t variable))))) (compound (functor \"slowest_sort_ever\") (args variable)))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (h variable))))) (binop variable \"=\"))",
+ "(clause (binop variable \"<\"))",
+ "(clause (compound (functor \"slowest_sort_ever\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (h variable) (t \"[]\"))))))",
+ "(clause (compound (functor \"append\") (args (list (h variable)))))",
+ "(clause (compound (functor \"append\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"del\") (args (args (args variable)))) (compound (functor \"slowest_sort_ever\") (args variable)))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (t \"[]\"))))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args variable (args variable)))))",
+ "(clause (binop \"=\" variable))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args variable))) (compound (functor \"del\") (args (args variable))))",
+ "(clause (compound (functor \"permute\") (args (args variable))) (binop \"=\" variable))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (t (list (h variable))))))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args (list (h variable)))))) (binop \">\" variable))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (t (list (h variable)))) (args (list (h variable)))))))",
+ "(clause (compound (functor \"min\") (args (args variable))) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (h variable))))) (compound (functor \"slowest_sort_ever\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args variable))) (compound (functor \"min\") (args variable)))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (t \"[]\")) (args (list (h variable)))))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (t (list (h variable)))) (args (list (t (list (h variable)))))))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (h variable))))) (binop variable \"=<\"))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args (list (t (list (h variable)))))))) (binop \"<\" variable))",
+ "(clause (compound (functor \"min\") (args variable)) (compound (functor \"del\") (args (args variable))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args (list (t (list (h variable)))))))) (binop \"=\" variable))",
+ "(clause (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (t (list (t variable))))))) (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (binop \"<\" variable) (compound (functor \"slowest_sort_ever\") (args (list (h variable)))))",
+ "(clause (compound (functor \"min\") (args (args variable))) (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (t variable))) (compound (functor \"slowest_sort_ever\") (args variable)))",
+ "(clause (compound (functor \"slowest_sort_ever\") (args (list (t variable)))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args variable))) (compound (functor \"slowest_sort_ever\") (args variable)))",
+ "(clause (compound (functor \"slowest_sort_ever\") (args (args variable))) (binop variable \"=\"))",
+ "(clause (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (h variable)) (args (list (t (list (h variable)))))))))",
+ "(clause (binop \"=\" variable) (compound (functor \"slowest_sort_ever\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args (list (t (list (h variable)))))))) (binop variable \">\"))",
+ "(clause (binop \"=<\" variable) (compound (functor \"append\") (args (args (list (h variable))))))",
+ "(clause (compound (functor \"append\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args variable))))",
+ "(clause (compound (functor \"append\") (args (args (list (t variable))))))",
+ "(clause (compound (functor \"is_sorted\") (args variable)) (compound (functor \"permute\") (args (args variable))))",
+ "(clause (compound (functor \"slowest_sort_ever\") (args (list (h variable)))) (binop \"=\" (list (t (list (h variable))))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args variable))) (binop \"=\" variable))",
+ "(clause (binop variable \"=<\") (compound (functor \"append\") (args (list (h variable)))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args variable)))) (binop \"=\" variable))",
+ "(clause (binop variable \"=\" (list (t \"[]\"))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (t (list (h variable))))))) (binop \"=<\" variable))",
+ "(clause (binop \"=\" (list (h variable) (t \"[]\"))))",
+ "(clause (binop variable \">\") (compound (functor \"vstavi\") (args variable)))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args (list (h variable)))))) (compound (functor \"min\") (args (args variable))))",
+ "(clause (head (compound (functor \"ins\") (args (args (args variable))))) (binop variable \"=\"))",
+ "(clause (head (compound (functor \"vstavi\") (args (args (args variable))))) (compound (functor \"append\") (args (args (args variable)))))",
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"slowest_sort_ever\") (args (args variable))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args (list (h variable)))))) (compound (functor \"del\") (args variable)))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (h variable))))) (binop variable \">=\"))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args variable)))) (compound (functor \"memb\") (args (args variable))))",
+ "(clause (binop \"=\" (list (t \"[]\"))))",
+ "(clause (binop variable \">\") (compound (functor \"slowest_sort_ever\") (args (list (h variable)))))",
+ "(clause (compound (functor \"slowest_sort_ever\") (args (list (t variable)))) (binop \"=\" (list (t (list (t variable))))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (t (list (h variable))))))) (binop \">=\" variable))",
+ "(clause (binop variable \"=<\") (binop \"=\" (list (h variable))))",
+ "(clause (binop \"=\" (list (h variable))) (compound (functor \"memb\") (args variable)))",
+ "(clause (compound (functor \"is_sorted\") (args variable)) (binop variable \"=\"))",
+ "(clause (compound (functor \"del\") (args variable)) (binop \"=\" (list (h variable))))",
+ "(clause (compound (functor \"slowest_sort_ever\") (args (list (h variable)))) (binop \"=<\" variable))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args variable)))) (compound (functor \"sins\") (args (args (args variable)))))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args variable)))) (compound (functor \"append\") (args (args (args variable)))))"
+ ],
+ "rules": [
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"permute\") (args (args variable))) (compound (functor \"is_sorted\") (args variable)))",
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args variable)))) (compound (functor \"permute\") (args (args variable))))"
+ ],
+ "distribution": [
+ 1,
+ 128
+ ],
+ "quality": 0.977312994125087
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args variable)))))"
+ ],
+ "distribution": [
+ 33,
+ 0
+ ],
+ "quality": 0.9411313315204629
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"permute\") (args (args variable))) (compound (functor \"slowest_sort_ever\") (args variable)))"
+ ],
+ "distribution": [
+ 17,
+ 0
+ ],
+ "quality": 0.8866114188337576
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (compound (functor \"permute\") (args (args variable))) (compound (functor \"is_sorted\") (args variable)))"
+ ],
+ "distribution": [
+ 22,
+ 142
+ ],
+ "quality": 0.8544563360679102
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (t (list (h variable))))))) (compound (functor \"slowest_sort_ever\") (args (list (h variable)))))"
+ ],
+ "distribution": [
+ 12,
+ 0
+ ],
+ "quality": 0.8401627944197684
+ },
+ {
+ "class": true,
+ "condition": [
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (args variable)))) (compound (functor \"is_sorted\") (args variable)))"
+ ],
+ "distribution": [
+ 26,
+ 130
+ ],
+ "quality": 0.8198601268494158
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (t (list (t \"[]\")))) (args (list (t (list (h variable)))))))))"
+ ],
+ "distribution": [
+ 10,
+ 0
+ ],
+ "quality": 0.8064072034153157
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args (list (h variable))))) (compound (functor \"slowest_sort_ever\") (args (list (h variable)))))"
+ ],
+ "distribution": [
+ 8,
+ 0
+ ],
+ "quality": 0.7647521693776633
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"is_sorted\") (args variable)) (compound (functor \"permute\") (args (args variable))))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.7291291418494714
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args variable))))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.7291291418494714
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (head (compound (functor \"slowest_sort_ever\") (args variable))) (binop \"=\" variable))"
+ ],
+ "distribution": [
+ 7,
+ 0
+ ],
+ "quality": 0.7291291418494714
+ },
+ {
+ "class": false,
+ "condition": [
+ "(clause (compound (functor \"memb\") (args (args variable))) (compound (functor \"slowest_sort_ever\") (args (args variable))))"
+ ],
+ "distribution": [
+ 6,
+ 0
+ ],
+ "quality": 0.6915761303761268
+ }
+ ]
+} \ No newline at end of file