JL iZJddlmZmZmZmZmZmZmZmZm Z m Z m Z m Z ddZ dZy)) AllExpression AndExpressionApplicationExpressionEqualityExpressionExistsExpression IffExpression ImpExpressionNegatedExpression OrExpressionVariableExpressionskolem_functionunique_variableNc  | t}| t}t|trbt|j||j hz||j hz}|j |j tt|St|tr/t|j||t|j||zSt|tr6tt|j||t|j||St|tr7tt|j ||t|j||St|trott|j ||t|j||tt|j||t|j ||zSt|t r|St|t"r|j}t|tr~t|j |||j hz}|r%|j |j t%|Stt|}|j |j |St|tr8tt|j ||t|j ||St|tr1t|j ||t|j ||zSt|tr0t|j||t|j ||zSt|trott|j ||t|j ||tt|j||t|j||zSt|t r|St|t"rt|j||St|t&rct|j ||j hz||j hz}|j |j tt|St|t(r|St+d|zt|t&r}t|j|||j hz}|r%|j |j t%|Stt|}|j |j |St|t(r|St+d|z)zO Skolemize the expression and convert to conjunctive normal form (CNF) )ignorez'%s' cannot be skolemized)set isinstancer skolemizetermvariablereplacer rrfirstsecondr to_cnfr rrr r rr Exception) expression univ_scopeused_variablesrnegatedskolem_constants X/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/nltk/sem/skolemize.pyrrsU *m, OO *--. . j112 2  ||    nE F   J .)):~F   z>J    J - j&& N C j''^ D   J . z'''^ D j''^ D   J . z'''^ D j''^ D   j&& N C z(((*n E    J 2 3 J 1 2// g} - z>W=M=M:#||G$4$4oFF  /7==.*nE7>>/:~F  .gmm^ZH9^L  /W]]JG)^K  /7==.*nE7>>/:~F'--^D'..*nE !3 4  !2 3W\\:~F F !1 2 g..//'"2"2!33D <<  "?.#IJ !6 7 7*DE E J 0 1 OOZ:;N;N:O)O  << 3 3_Z5PQ Q01WXO<< 3 3_E E J 5 63j@AAct|tr1t|j|}t|j|}||zSt|tr1t||j}t||j}||zS||zS)zI Convert this split disjunction to conjunctive normal form (CNF) )rrrrr)rrr_firstr_seconds r rrsx%'f-%,,/!! FM * -%/!!v~r!)NN)nltk.sem.logicrrrrrrr r r r r rrrr!r r's&     kB\ r!