-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Explain the rule of resolution using boolean logic #8
base: main
Are you sure you want to change the base?
Conversation
The notation is introduced in the previous page: https://pubgrub-rs-guide.netlify.app/internals/terms#definition |
I've moved the rust translation over to terms#definition. I think explicitly stating the |
Remark that I took the symbol "¬" from the literature, https://en.wikipedia.org/wiki/Literal_(mathematical_logic). So I've been abusing a bit the notation. Because saying "x is not inside set A" is linked to saying "x is inside the complement of A". But maybe I should not have mixed the two notations. I'm not sure what is the most correct way to say all of this. |
I think "¬" should not appear except for literal definition. |
I have to admit that i only got the mathematics-for-computer-scientist version, where |
I tried to make it clear that a CDNL terms is a conjunction of negations of conjunctions by desugaring them into boolean expressions. I'm having trouble making what's going on sufficiently clear since we need to write the negations out to apply transformation rules to them, but then they are not incompatibilities anymore but constraints that must be satisfied.
Yeah it's not correct to use that symbol when dealing with the terms, and not at the literal level. However, if it isn't clear enough for the programming side of the brain, we might need to make it clearer indeed. |
dafa92e
to
dec5d77
Compare
Split out of pubgrub-rs#8 for separate discussion, I tried to make it clearer what the operations means for someone who knows rust but doesn't have an academic math education otherwise.
I've split the PRs, this is now only about using the full boolean expression |
Actually, I might have got it backwards. While forcing set notation on terms, which intrinsically are propositions. So maybe it should be "¬" all the way. And complements should never appear, except when explaining the equivalence between terms and ranges sets, and how we use that equivalence to evaluate terms intersection (conjunction). |
I'd like to re-up this for review, i've moved the contentious part to #9, this PR itself should be easy to merge. |
Right sorry forgot about this. I remember wanting to change a thing. I'll be back on sunday and can provide more context for what I had in mind then. |
I've updated the explanation and added a reference, i hope i didn't mix up the symbols again |
I tried to make it clear that a CDNL terms is a conjunction of negations of conjunctions by desugaring them into boolean expressions.