Skip to content

Conversation

@gares
Copy link
Contributor

@gares gares commented Aug 16, 2025

TODO:

  • :nooc on pred
  • check if rule has _ and if/how it interacts
  • add a unsound_unif builtin/std
  • see if the determinacy checker can also track/infer groundness too hard
  • test if calling ground_term to ensure dynamically things are ok is sustainable. on the bench file, almost no overhead.

@gares gares changed the title wip: nooc attribute attribute to disable occur check Aug 16, 2025
@gares
Copy link
Contributor Author

gares commented Aug 18, 2025

Idea: attach nooc only to predicates, then statically error if an output arg contains _ or if a goal does.
This way the optimization should stay sound wrt _.

It could still create cyclic terms. For that one could do an analysis based on det check to track groundness of generated output, where ground_term is the original seed. Since nooc is opt-in, this is not mandatory.

@gares gares force-pushed the oc-opt-out branch 2 times, most recently from da759f2 to 0bc790b Compare October 26, 2025 17:04
"UserRule",
{
"rule_text": "main :- (print 1), (pi (c0 \\ (sigma (c1 \\ (fail => (true , fail)))))).",
"rule_text": "main :- (print 1), (pi c0 \\ (sigma (c0 \\ (fail => (true , fail))))).",
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

??

@gares gares marked this pull request as ready for review October 27, 2025 15:54
@gares gares merged commit 7e4220d into master Oct 27, 2025
9 of 10 checks passed
@gares gares deleted the oc-opt-out branch October 27, 2025 18:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants