[
https://issues.jboss.org/browse/DROOLS-24?page=com.atlassian.jira.plugin....
]
Davide Sottara commented on DROOLS-24:
--------------------------------------
Remember the semantics of "not" and "forall" in Drools. The former is
actually "not exists", while
forall( $x:A() B($x) C($x) )
reads as "for all $x such that A($x), there exists $b,$c : $b : B($x) and $c :
C($x)"
which, by deMorgan, is equivalent to : "there is no $x such that, at the same time,
A($x) and neither exists $b:B($x) nor exists $c:C($x)".
in DRL-like : not( $x:A() and not( B($x) and C($x) ) ) --> not( $x:A() and ( not B($x)
or not C($x) ) )
So, while a bit cryptic, I think that the documentation is correct.
One might argue whether FOL is captured appropriately or not, but that's a different
question
forall( p1 p2 p3...) --> not forall
-----------------------------------
Key: DROOLS-24
URL:
https://issues.jboss.org/browse/DROOLS-24
Project: Drools
Issue Type: Task
Security Level: Public(Everyone can see)
Affects Versions: 5.5.0.Final
Environment: all
Reporter: Marc Dzaebel
Assignee: Mark Proctor
Priority: Trivial
Labels: documentation
Expert guide:
"As a side note, forall( p1 p2 p3...) is equivalent to writing:
not(p1 and not(and p2 p3...))"
--> insert not
"As a side note, not forall ..."
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira