From: Terrance S. <ts...@us...> - 2009-05-19 18:00:58
|
Update of /cvsroot/xsb/XSB/packages/altCDF/mknf In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv7054 Modified Files: mknf.P mknf_chkCon.P Log Message: Fixed bug in mknf that was not fully expanding class expressions that were within a negation (in one point of processing). Index: mknf.P =================================================================== RCS file: /cvsroot/xsb/XSB/packages/altCDF/mknf/mknf.P,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- mknf.P 17 May 2009 18:00:12 -0000 1.3 +++ mknf.P 19 May 2009 18:00:42 -0000 1.4 @@ -366,7 +366,9 @@ ; (Value = false -> true ; writeln('!!!failing'(sat_test(Id,true))))), set_debug_on(N), assert(debugging_mknf) - ; checkIdConsistency(Id)). + ; (checkIdConsistency(Id) -> + (Value = true -> true ; writeln('!!!failing'(sat_test(Id,false)))) + ; (Value = false -> true ; writeln('!!!failing'(sat_test(Id,true)))))). load_ex(Dir):- abolish_all_tables, Index: mknf_chkCon.P =================================================================== RCS file: /cvsroot/xsb/XSB/packages/altCDF/mknf/mknf_chkCon.P,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- mknf_chkCon.P 17 May 2009 18:00:12 -0000 1.4 +++ mknf_chkCon.P 19 May 2009 18:00:43 -0000 1.5 @@ -178,7 +178,6 @@ ; tp_writeln(1,recursivelyChecking(Context)), rec_tableConsChk(Context,[Context|AncList])). -% rec_tableConsChk(single,[context(Id,Context)],[[Id,Context]],Context). %---------- % no call has been made before to context. @@ -249,13 +248,30 @@ % This actually returns oids, rather than all unique cids %localClassExpr_1(Id,Expr,Expr):- !. +localClassExpr_1(not(not(Id)),ExprIn,ExprOut):- !, + localClassExpr_1(Id,ExprIn,ExprOut). +localClassExpr_1(not(Id),ExprIn,ExprOut):- + extractCDFidentifier(Id,Id1), + \+ topIdentifier(Id1),!, + getRelevantFacts(Id1,CDFList), + localClassExpr_2(CDFList,1,ExprMid), + negate_comma_list(ExprMid,ExprNew), + comma_append(ExprIn,ExprNew,ExprOut). localClassExpr_1(Id,ExprIn,ExprOut):- extractCDFidentifier(Id,Id1), \+ topIdentifier(Id1),!, getRelevantFacts(Id1,CDFList), localClassExpr_2(CDFList,1,ExprNew), comma_append(ExprIn,ExprNew,ExprOut). -localClassExpr_1(Id,_Expr,Id). +localClassExpr_1(Id,ExprIn,ExprIn):- + extractCDFidentifier(Id,Id1), + topIdentifier(Id1),!. +localClassExpr_1(Id,_Expr,Id):- + abort(['Unexpected Context in local class expression: ',Id]). + +negate_comma_list((H,T),(not(H),T1)):- !, + negate_comma_list(T,T1). +negate_comma_list(H,not(H)):- !. %------------------------- getRelevantFacts(Id,Facts):- |