2

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.

user10108
  • 21
  • 1
  • This has some resemblance to "programming by example", where you try to find the function or method that will produce the transformations between input and output provided as examples. – Leandro Caniglia Oct 30 '15 at 02:43
  • Yes, I found some references on programming by example, but I couldn't find anything directly applicable. – user10108 Oct 30 '15 at 18:10
  • This appears to be an example of [Inductive logic programming](https://en.wikipedia.org/wiki/Inductive_logic_programming). – Anderson Green Sep 19 '18 at 19:46

0 Answers0