You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently we treat cycles (i.e. seeing the same clause twice) as Ambiguous. However, this is not desirable as in the presence of tautologies like (u8: Foo) :- (u8: Foo) (which may appear while elaborating clauses à la #12), Chalk will answer Ambiguous to the query u8: Foo when u8 does not implement Foo, whereas we would prefer an error.
We can't treat cycles as errors or else the following query:
would return Unique; substitution [?0 := i32] whereas it should be ambiguous because there is an infinite family of solutions.
A possible strategy for handling cycles would be to use tabling in order to feed back the cycles and possibly produce new answers until we reach a fixed point, in which case we know that we have all the answers.
The text was updated successfully, but these errors were encountered:
Currently we treat cycles (i.e. seeing the same clause twice) as
Ambiguous
. However, this is not desirable as in the presence of tautologies like(u8: Foo) :- (u8: Foo)
(which may appear while elaborating clauses à la #12), Chalk will answerAmbiguous
to the queryu8: Foo
whenu8
does not implementFoo
, whereas we would prefer an error.We can't treat cycles as errors or else the following query:
would return
Unique; substitution [?0 := i32]
whereas it should be ambiguous because there is an infinite family of solutions.A possible strategy for handling cycles would be to use tabling in order to feed back the cycles and possibly produce new answers until we reach a fixed point, in which case we know that we have all the answers.
The text was updated successfully, but these errors were encountered: