John and all,
The theme of knowledge processing (KP) is so important.
We first need to classify a little what kind of KP we use in science, technology and everyday life.
And then which of them are now available through genAI, DL-reasoner, math-prover and other algorithms.
When we are problem solving, i.e. every time we have a goal, what kind of rules do we follow to get a solution?
Let me share my findings when investigating undirected graph tasks.
I just want to emphasize that the "inference" rules that we use when constructing a solution to a problem are very diverse. And this is not deduction, abduction and induction at all.
Here is a summary of the rules that I encountered, and in the basement there is a description for those who are interested.
I want to emphasize that the list of rules is not complete and it would be great to discuss what other rules there are.
We use theoretical knowledge to solve our problems.
Alex
There are many ways to get from one text to another or several others. It is assumed that the processing of the original text is replaced by the processing of those obtained from it, and we know how to process the received ones, i.e. having received their values, get the value of the original one. We will call such processing methods rules.
The texts resulting from applying the rules are called subtasks.
The following are descriptions of different rules.
A rule named “subtask” only indicates that this subtask is separated into a separate task, i.e. must have its own solution block, and if it exists, it is indicated in the “parameters” column (see below), and if the cell keeps "???", then the corresponding task has not yet been added to the framework! Strictly speaking, the task block has not been completed to the end.
This rule makes the transition from terms of theory to terms of structures.
For example, in "There exists x in U such that _e1 is incident to x." the term "incident" is introduced in the theories of Biria and used in Ugraphia for inc global variable. Knowing its “binding” with inc, we can interpret the statement as “There exists x in U such that (_e1 x) in inc.” where the term “incident” is not used.
It is important to emphasize that no terms of theories are used in the resulting statement!
This rule refers to the substitution of the definition of a term at the place of its use. Typically, a definition consists of a precondition formulated in a sentence beginning with the word “Let” and the definition itself, consisting of a phrase using the term, a syntactic connective (for example, “if and only if”) and a determinant - a phrase that specifies the meaning of the term. Definitions of terms are given in one theory or another - in our case, it is Ugraphia. From a programming point of view, a definition is a macro command, and a “substitution” is a macro substitution, and sometimes, the substituted text itself (preconditions and determinant) is modified.
The substitution comes down to the fact that the statements of the precondition form a linear block, and the determinant - a node of the decision tree.
For example, consider the statement
_e1 parallel to _e4.
It uses the term from Ugraphia - “parallel”.
Applying his definition:
We get two precondition statements:
_e1 is an edge.
_e4 is an edge.
which need to be checked for truth,
and a subtask:
_e1 and _e4 are different and _e1 has the same endpoints as _e4.
It is easy to see that the actual parameters of the place where the term is used, _e1 and _e4, are substituted in place of the formal parameters e1, e2 of the “macro command” of the definition.
A quantifier always runs over some set or sequence and is expanded by running into an operation on statements or phrases written for each element of the set - an excellent move to finitism.
For example, consider the expansion of the second quantifier "every" in
"every member of every pair of inc belongs to U."
we need to run by inc and, in our case, see the __inc block of the framework; we will get from inc for the first element:
"every member of (_e1 _v1) belongs to U."
etc., for each pair in inc.
Notes. For example, the finitistic way for the quantifier expansion in mathematical logic can be found in Esenin-Volpin's works. And it can be stated using an example like this
Let S is {e1 e2} and p() is an unary predicate on S. Then
"∀x:S p(x)" expands into "p(e1)∧p(e2)"
the generalization to the case of any finite number of elements in non-empty S is obvious.
Thus, the quantifier statement is expanded into several more specific statements and the meaning of the original statement is obtained by applying the operation ∧ or +, etc., to the expanded values.
This is a situation when a conjunction such as “and” or the words “equals”, “plus”, and the like is applied to two specific statements or phrases in the original statement.
For example, in
"_e1 and _e4 are different and _e1 has the same endpoints as _e4."
we split along the second “and”, obtaining two statements - subtasks:
"_e1 and _e4 are different."
"_e1 has the same end vertices as _e4."
According to this rule, various free texts in NL are converted into equivalent but more regular ones.
For example,
"_e1 is incident to some element from U."
becomes
"there exists x in U such that _e1 is incident to x."
Execution of a rule consists of SEARCHING in a set and determining the presence or absence of an element that satisfies a given condition.
For example, applying the "choice" rule to a statement
" there is x in U such that (_e1 x) in inc. "
consists of running through U and checking for the current element that it, paired with _e1, is present in inc. If such an element is found, then the statement is considered valid; otherwise - it is false.
A subset of elements is selected from a specific set according to some criterion.
for example, in the phrase
" number of elements of U such that it's an edge and simple and incident _v1."
Before counting the quantity, it is necessary to obtain a subset of U with the described elements, and then the phrase is converted into
" number of elements in list (_e1, _e2, _e4) ".
With text, the mental action of obtaining its value is performed.
For example, it is obvious that the following statements are true:
"_e1 and _e4 are different."
"_e1 is an element of U."
"(_e1 _v1) in inc."
However, you need to look at U and inc in the last two cases, respectively.
The calculation formulated in the phrase is performed in the mind.
For example,
counting "number of elements in list (_e1, _e2, _e4)" will give the result 3.
John,
A kind of knowledge processing genAI can do is not only abduction.
Look at this example [1] where I have talked with Gemini in Russian but asked to translate one part in English.
I am not about translation itself, though for me this is not abduction. I am about knowledge processing by Gemini.
Alex
[1] https://gemini.google.com/app/a59f16a9a7044419
THE TEXT IS GEMINI PRODUCTION
English Translation of the Problem and Solution
Problem: Let's work with only natural numbers. One number is 35 more than another number. A third number is such that, if it is subtracted from the first number and added to the second number, the first and second numbers become equal. What is the third number?