Skip to content
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

BUG: kbr-1 is ill-formed #97

Open
mereolog opened this issue Aug 7, 2024 · 4 comments
Open

BUG: kbr-1 is ill-formed #97

mereolog opened this issue Aug 7, 2024 · 4 comments
Assignees
Labels
bug Something isn't working FOL staged The FOL source has been updated, but not yet published

Comments

@mereolog
Copy link

mereolog commented Aug 7, 2024

Describe the bug
The CLIF axiom kbr-1 is ill-formed.

To Reproduce

(cl:comment "If a continuant-part-of b then if a is an instance of spatial-region then b is an instance of spatial-region, and vice-versa [kbr-1]"
(forall (p q t)
(if (continuant-part-of p q t)
(iff (instance-of p spatial-region t)
(and (instance-of q spatial-region t))))))

The syntax problem is with the conjunction, which as it is now, has only one argument, but I suspect that the whole axiom needs to be rewritten as it does not corresponds to its elucidation in the comment.

@mereolog mereolog added the bug Something isn't working label Aug 7, 2024
@michaelrabenberg
Copy link

I assume it should just be revised to get rid of the "and," as follows:

(cl:comment "If a continuant-part-of b then if a is an instance of spatial-region then b is an instance of spatial-region, and vice-versa [zzz-1]"
(forall (p q t)
(if (continuant-part-of p q t)
(iff (instance-of p spatial-region t)
(instance-of q spatial-region t)))))

That captures my reading of the comment.

@alanruttenberg
Copy link
Contributor

The and is unsightly but legal I believe:

boolsent = ( open, ('and' | 'or') , { sentence }, close ) | ( open, ('if' | 'iff') , sentence , sentence, close ) | ( open, 'not' , sentence, close ;

sentence is surrounded by curly braces which is zero or more in EBNF. also

6.1.1.14 A Boolean sentence has a type, called a connective, and a number of sentences called the components of the Boolean sentence. The number depends on the particular type. The abstract syntax distinguishes five types of Boolean sentences: conjunctions and disjunctions, which have any number of components,...

The semantics is harder for me to assess

I(E) = true if I(C1) = ... = I(Cn) = true; otherwise, I(E) = false

I'm not sure what this means if there's only c1 though it would be odd to allow a single conjunct but consider the conjunction false.

I did a pass at some point trying to remove the superfluous and/or which are a consequence of using macros to generate some of the formulas. I'll see about removing this one, though if we agree it is legal I won't prioritize it.

@alanruttenberg
Copy link
Contributor

In any case, fixed in the next release

@mereolog
Copy link
Author

mereolog commented Aug 8, 2024

You are right, CLIF does allow 1- and 0-arguments conjunctions, so syntactically kbr-1 is correct.

@alanruttenberg alanruttenberg added the FOL staged The FOL source has been updated, but not yet published label Sep 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working FOL staged The FOL source has been updated, but not yet published
Projects
None yet
Development

No branches or pull requests

4 participants