IBM / LNN

A `Neural = Symbolic` framework for sound and complete weighted real-value logic
https://IBM.github.io/LNN/
Apache License 2.0
226 stars 438 forks source link

Clarification on bounds #65

Closed loc-trinh closed 1 year ago

loc-trinh commented 1 year ago

From the tutorial, it seems like a CONTRADICTION is when L > U: however, the results bellow happens quite often when L > U is considered APPROX TRUE.

Can someone help to clarify this?

Model before inference:


                            LNN Model

OPEN And: (A ∧ B) APPROX_TRUE (0.51, 0.52)

OPEN Proposition: B APPROX_TRUE (0.9, 0.99)

OPEN Proposition: A APPROX_TRUE (0.9, 0.99)


Model after inference:


                            LNN Model

OPEN And: (A ∧ B) APPROX_TRUE (0.8, 0.52)

OPEN Proposition: B APPROX_TRUE (0.9, 0.99)

OPEN Proposition: A APPROX_TRUE (0.9, 0.99)

loc-trinh commented 1 year ago

Specifically: OPEN And: (A ∧ B) APPROX_TRUE (0.8, 0.52)

NaweedAghmad commented 1 year ago

Hi there, thanks for bringing this to our attention. You are correct, there seems to be an error in the calculation of the state. The end result should be a contradiction.

loc-trinh commented 1 year ago

Hi again, sorry to re-ping this. I was wondering if you guys have a timeline on when this will be patched? Is the current version usable as a theorem prover?

NaweedAghmad commented 1 year ago

Is the current version usable as a theorem prover?

  • There is a subset of FOL problems (primarily theorems without functions or equality) that the LNN should be able to solve. However certain problems with negations on bindings are known to not work here due to the complexity of grounding management having to compute set complements.