% Detect inconsistencies | #define poscontract (X) bel (p (neg (X), Pn), p (X, Pp), Pn > Pp). | #define negcontract (X) bel (p (neg (X), Pn), p (X, Pp), Pn < Pp). | % Contract all least preferred positive beliefs | listall C <- poscontract (X) do { | forall just (Y, S), member (Z, C), member (Z, S) do delete (just (Y, S)). | forall just (Y, ), member (Y, C) do delete (just (Y, _)). | forall member (Y, C), just (Y, S) bel (w (just (Y, S), Z)) do insert (contract (Z)). | forall member (Y, C) do delete (Y). | } | % Contract all least preferred negative beliefs | listall C <- negcontract (X) do { | forall just (Y, S), member (Z, C), member (Z, S) do delete (just (Y, s)). | forall just (Y, ), member (Y, C) do delete (just (Y, _)). | forall member (Y, C), just (Y, S) bel (w (just (Y, S), Z)) do insert (contract (Z)). | forall member (Y, C) do delete (Y). | } | % Recursive contraction | listall C <- contract (X) do { | forall just (Y, S), member (Z, C), member (Z, S) do delete (just (Y, S)). | forall just (Y, ), member (Y, C) do delete (just (Y, _)). | forall member (Y, C), just (Y, S) bel (w (just (Y, S), Z)) do insert (contract (Z)). | forall member (Y, C) do delete (Y). | } |
|