summaryrefslogtreecommitdiff
path: root/prolog/problems/lists_advanced
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 /prolog/problems/lists_advanced
parent320f6db34b5da13e259c3a55db9996a456bf8839 (diff)
Prolog: add bugs files for the first six groups
Diffstat (limited to 'prolog/problems/lists_advanced')
-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
9 files changed, 4298 insertions, 0 deletions
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