I am interested in the following problem that I would like to investigate. One problem I have is that I am not even sure what terms to search for for background information. I tried looking up grammar induction and similar techniques but they do not seem to address this problem.
Suppose I observe a set of logical rules over several small domains. I would like to infer a general rule from them which allows me to generate a similar rule for a larger domain which is still consistent with the smaller domains.
Example 1
Rule: (x_1 < x_2),
Domain: Z^2 (Pairs of integers)
Rule: (x_1 < x_2) and (x_2 < x_3),
Domain: Z^3
Rule: (x_1 < x_2) and (x_2 < x_3) and (x_3 < x_4),
Domain: Z^4
General rule: (x_i < x_(i+1)) for all i <= n, Domain: Z^n
So I would like to be able to observe the three instances and automatically infer the general rule using some algorithm.
As another example:
Rule: (x = 1, y = 2)
Rule: (x = 2, y = 4)
Rule: (x = 3, y = 6)
General Rule: (x = n, y = 2*n) for all n.
I know this second example can be solved easily by line fitting.
What I would like is some method that applies to both types of problems. Is there some some sort of machine learning for first order logic or arithmetic that can be applied? Is there some way to use pattern learning and pattern generation to accomplish this? I am open to any ideas.
A slightly different but sufficient solution would be to, instead of generating the general rule, to generate an algorithm, grammar, or function that, given the value n as input, generates the rule corresponding to rule n.