
    /hZ                     L    S SK JrJrJrJrJrJrJrJrJ	r	J
r
JrJr  SS jrS rg)    )AllExpressionAndExpressionApplicationExpressionEqualityExpressionExistsExpressionIffExpressionImpExpressionNegatedExpressionOrExpressionVariableExpressionskolem_functionunique_variableNc           	      &   Uc
  [        5       nUc
  [        5       n[        U [        5      (       a]  [        U R                  XR
                  1-  X R
                  1-  5      nUR                  U R
                  [        [        US95      5      $ [        U [        5      (       a-  [        U R                  X5      [        U R                  X5      -  $ [        U [        5      (       a4  [        [        U R                  X5      [        U R                  X5      5      $ [        U [        5      (       a5  [        [        U R                  * X5      [        U R                  X5      5      $ [        U [        5      (       ak  [        [        U R                  * X5      [        U R                  X5      5      [        [        U R                  X5      [        U R                  * X5      5      -  $ [        U [         5      (       a  U $ [        U ["        5      (       Ga  U R                  n[        U[        5      (       a  [        UR                  * XUR
                  1-  5      nU(       a%  UR                  UR
                  [%        U5      5      $ [        [        US95      nUR                  UR
                  U5      $ [        U[        5      (       a6  [        [        UR                  * X5      [        UR                  * X5      5      $ [        U[        5      (       a/  [        UR                  * X5      [        UR                  * X5      -  $ [        U[        5      (       a.  [        UR                  X5      [        UR                  * X5      -  $ [        U[        5      (       ak  [        [        UR                  * X5      [        UR                  * X5      5      [        [        UR                  X5      [        UR                  X5      5      -  $ [        U[         5      (       a  U $ [        U["        5      (       a  [        UR                  X5      $ [        U[&        5      (       a^  [        UR                  * XR
                  1-  X$R
                  1-  5      nUR                  UR
                  [        [        US95      5      $ [        U[(        5      (       a  U $ [+        SU -  5      e[        U [&        5      (       a~  [        U R                  XU R
                  1-  5      nU(       a%  UR                  U R
                  [%        U5      5      $ [        [        US95      nUR                  U R
                  U5      $ [        U [(        5      (       a  U $ [+        SU -  5      e)zG
Skolemize the expression and convert to conjunctive normal form (CNF)
)ignorez'%s' cannot be skolemized)set
isinstancer   	skolemizetermvariablereplacer   r   r   firstsecondr   to_cnfr	   r   r   r
   r   r   r   	Exception)
expression
univ_scopeused_variablesr   negatedskolem_constants         J/var/www/auris/envauris/lib/python3.13/site-packages/nltk/sem/skolemize.pyr   r      s    U
*m,,OO--..1122

 ||nEF
 	
 
J	.	.)):FzJ
 
 	
 
J	-	-j&&
Cj''D
 	
 
J	.	.z'''Dj''D
 	
 
J	.	.z'''Dj''D
 j&&
Cz(((*E

 	
 
J 2	3	3	J 1	2	2//g}--zW=M=M<N+ND ||G$4$4oj6QRR"4#>:# ||G$4$4oFF//7==.*E7>>/:F  ..gmm^ZH9L   //W]]JG)K   //7==.*E7>>/:F '--D'..*E  !344!233W\\:FF!122..//"2"2!33D
 <<  "?.#IJ  !6777*DEE	J 0	1	1OOZ:;N;N:O)O
 <<
 3 3_Z5PQQ01WXO<<
 3 3_EE	J 5	6	63j@AA    c                    [        U [        5      (       a0  [        U R                  U5      n[        U R                  U5      nX#-  $ [        U[        5      (       a.  [        XR                  5      n[        XR                  5      nX#-  $ X-  $ )zA
Convert this split disjunction to conjunctive normal form (CNF)
)r   r   r   r   r   )r   r   r_firstr_seconds       r    r   r      st     %''f-%,,/!!	FM	*	*-%/!!~r!   )NN)nltk.sem.logicr   r   r   r   r   r   r	   r
   r   r   r   r   r   r    r!   r    <module>r'      s&       kB\r!   