Closed zhangyuanlin closed 6 years ago
Issue with P1
X in toasts where instance(X, names)
This effectively makes names a subsort of toasts without declaring it in the sort hierarchy. I can add permission for variables, but this seems like something a record sort, parameterized constant, or functor would better take care of.
Issue with P2
t(X) in toasts where instance(X)
This exception is caused by the lack of argument in the second position of the instance functions.
Issue 2 with P2
When names is added as the second hand argument, the program complains about s1(t(X)))
being an undefined function.
This directly plays into the Herbrand term on the right hand side. I will need to work on that. However we need to discuss how complex of a solution. Are we going to require a ground Herbrand term? Our last discussion was to basically turn off all checking and pass it through to SPARC. This gets increasingly complicated with the more nesting we allow in the Herbrand terms.
I am leaning heavily against using recursive definitions with attributes in this way and having a more coherent treatment of "records" or "functors" at the theory level that co-instantiates instances in related sorts. But this fundamental relationship really belongs in the theory.
I can add permission for variables, but this seems like something a record sort, parameterized constant, or functor would better take care of.
I don't see a reason to prevent such a use which might not be related to "record" we are discussing. for example, we might have
X in toasts where instance(X, names) PLUS other properties on X
This directly plays into the Herbrand term on the right hand side. I will need to work on that. However we need to discuss how complex of a solution. Are we going to require a ground Herbrand term?
I move comments on this to the Herbrand term thread #16.
Both P1 and P2 now have answersets with the latest calm.jar. Is this sufficient to close this issue as separate from other herbrand term related issues?
sure.
There is a syntax error complaint for (instantiation starts with X) the following code:
However, if I use t(X), i.e., introducing a Herbrand function in the code:
There is no syntax error BUT I got an exception.
Let the first program be P1 and second P2.
Error message for P1:
Exception info for P2: (not sure if it is because of oversimplification)
The program P1 (I tried to minimize the program)
Program P2: