/* Triangular numbers http://www.research.att.com/~njas/sequences/A000217 a(n) = C(n+1,2) = n(n+1)/2 = 0+1+2+...+n make_point_seq([1,3,6,10,15,21],Data,Unknown,Vars), Solutions: [program = (1 + A) * (A / 2 / 1),res = 28.0,count = 3] [program = (1 + A) * (A / 2),res = 28.0,count = 3] [program = A / 2 + A * A / 2,res = 28.0,count = 2] [program = (1 + A) / 2 * A,res = 28.0,count = 2] resultMap = [28.0 = 4] As recursion: make_seq([1,3,6,10,15,21],2,Data,Unknown,Vars), [program = 2 - A + (B - 1 + B),res = 28,count = 9] [program = B + (1 - A + B),res = 28,count = 6] [program = (B - 1) / (A * 1 / B),res = 28.0,count = 3] Cf http://hakank.org/jgap/triangular_numbers.conf */ data(triangular,Data,Vars,Unknown,Ops,Constants,MaxSize,Params) :- make_point_seq([1,3,6,10,15,21],Data,Unknown,Vars), % make_seq([1,3,6,10,15,21],2,Data,Unknown,Vars), Ops = [+,-,*,/], Constants = 1..2, MaxSize = 5, Params = new_map().