Logic and common sense do not always fit well together,
and that's why fallacies plague discussions and argumentations...
When we say "forall..." we typically mean "forall... and exists..."
and we take the latter for granted, which can't be implicitly
assumed e.g. by the rule engine.
Likewise, think of vacuous implications :
"if donkeys could fly then (anything you want here)"
these are trivially true, too....
Davide
On 01/08/2014 09:28 AM, Wolfgang Laun wrote:
On 08/01/2014, Davide Sottara <dsotty(a)gmail.com> wrote:
> Indeed it is true by convention, see also
>
http://en.wikipedia.org/wiki/Universal_quantification
>
> The only other alternative is to deprecate quantifiers altogether ;)
>
Ah, *by convention*, yes. One should exercise some care with "vacuous
truths", however. Uttering statements such as "All the little green
men in my room are from Mars" may not brand you as a liar, but you
could be called "batty". ;-)
-W
> Davide
>
> On 01/07/2014 11:53 AM, Wolfgang Laun wrote:
>> Please comment on
>>
http://en.wikipedia.org/wiki/First-order_logic#Empty_domains
>> -W
>>
>> On 07/01/2014, Davide Sottara <dsotty(a)gmail.com> wrote:
>>> First order logic does permit empty domains, and the universal
>>> quantifier evaluates to true in that case.
>>> Davide
>>>
>>> On 01/07/2014 11:11 AM, Wolfgang Laun wrote:
>>>> It is true that first-order logic usually assumes that the domain of a
>>>> formula
>>>> be a nonempty set. As so often, things aren't quite so simple when
>>>> formulae
>>>> are evaluated on a computer. What should be done in this case, forall
>>>> with an empty domain? Throw an exception? Not very convenient, since
>>>> there's no reasonable way of handling exceptions thrown on the LHS.
>>>> Return false? That doesn't make sense, because you can't inspect
what
>>>> isn't there. Return true? If it isn't false - what else?
>>>>
>>>> If first-order logic does permit empty domains, it must be treated as
>>>> a special case.
>>>>
>>>> -W
>>>>
>>>> On 07/01/2014, Sonata <plz.write.to(a)gmail.com> wrote:
>>>>> Hi, I am using the "forall" keyword on the LHS and it seems
the
>>>>> condition
>>>>> is
>>>>> satisfied when there is nothing to match. e.g. "forall
(MyClass(value
>>>>> ==
>>>>> "test"))" fires the rule when there is no MyClass()
object in the
>>>>> working
>>>>> memory. My workaround is add "exists (MyClass())".
>>>>>
>>>>> Also, same for "not (exists (MyClass(value !=
"test")))", but I can
>>>>> understand this, as there is no MyClass() object, it doesn't
exists
>>>>> and
>>>>> hence "not" gives true.
>>>>>
>>>>> But for "forall", it doesnt sound right to me. I wonder if
"forall" is
>>>>> actually implemented as "not exists" in the engine.
>>>>>
>>>>> Please clarify if this is by design or a bug. Build is 5.5.0.Final
>>>>>
>>>>> Thank you
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>>
http://drools.46999.n3.nabble.com/forall-is-satisfied-when-there-is-nothi...
>>>>> Sent from the Drools: User forum mailing list archive at
Nabble.com.
>>>>> _______________________________________________
>>>>> rules-users mailing list
>>>>> rules-users(a)lists.jboss.org
>>>>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>>>>
>>>> _______________________________________________
>>>> rules-users mailing list
>>>> rules-users(a)lists.jboss.org
>>>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>>>
>>> _______________________________________________
>>> rules-users mailing list
>>> rules-users(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users