Adding some comments on top of Mario's:
>> Trying to find such a chain of substitution rules is essentially a tree search problem. If there are N theorems in the database then to answer the latter question comes down to searching a tree of size N^L. Is that somewhat right?
>
> This is a slightly overly restricted setting. You probably want to be able to add new theorems to the database and then use them to compress future proofs. That means that the branching factor can grow over time, roughly (N+L)^L if we say that adding a theorem counts as a step. This is actually how DreamCoder works (
https://arxiv.org/abs/2006.08381), you should take a look.
There are also the substitutions. Not all substitutions are bound by
the requirement to unify to the conclusion, eg modus ponens. Then
either you discard these proof steps (and I presume we have
theoretical results on this that show that it's possible to prove
things that way but your proof size explodes?) or you keep them and
your search space becomes enumerable at each step (assuming no
restriction on the length of the proof step which in practice you
would have, but it's still prohibitively huge even for one step).
Hence the motivation to use a language model such that we can sample
possible next steps from it and use that list as the branching for
each step in our search tree. I call these unbound substitutions or
terms required in proofs, "exogenous terms" (haven't found a standard
name for them?); Being capable of generating those is again a core
motivation of GPT-f.
The consequence is that the search tree is not "complete" and you
can't just get to a proof by searching forever. But the hope is that
as the language model gets better it is powerful enough to cover the
search space properly yet keeping it small enough to be practical.
>> Is it true that any AI system built on metamath will need these same foundations? For instance it will need a parser for the database, a verifier and also it will need a function which: for any statement returns the possible substitutions/theorems which could be applied.
Generally speaking you definitely need an "interactive" verifier
(which includes, for Metamath, a parser for the grammar defined by the
database). I don't think you necessarily need a system that
mechanically proposes possible substitutions, as an example with GPT-f
we let the model do that work. For other approaches based on ranking
possible actions, having something that proposes actions is definitely
useful.
Hope it's useful. Happy to answer any specific questions about GPT-f
and how we interface to Metamath.
-stan
> --
> You received this message because you are subscribed to the Google Groups "Metamath" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to
metamath+u...@googlegroups.com.
> To view this discussion on the web visit
https://groups.google.com/d/msgid/metamath/CAFXXJSuy4Cm%2BXwo%2Bn%3DiziRJ0hVJH34kgmBvrReJd2RK4KSWLHw%40mail.gmail.com.