
    gZ                     J    d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZmZ ddZd Zy)    )AllExpressionAndExpressionApplicationExpressionEqualityExpressionExistsExpressionIffExpressionImpExpressionNegatedExpressionOrExpressionVariableExpressionskolem_functionunique_variableNc           	      
   |
t               }|
t               }t        | t              rbt        | j                  || j
                  hz  || j
                  hz        }|j                  | j
                  t        t        |                  S t        | t              r/t        | j                  ||      t        | j                  ||      z  S t        | t              r6t        t        | j                  ||      t        | j                  ||            S t        | t              r7t        t        | j                   ||      t        | j                  ||            S t        | t              rot        t        | j                   ||      t        | j                  ||            t        t        | j                  ||      t        | j                   ||            z  S t        | t               r| S t        | t"              r| j                  }t        |t              r~t        |j                   |||j
                  hz        }|r%|j                  |j
                  t%        |            S t        t        |            }|j                  |j
                  |      S t        |t              r8t        t        |j                   ||      t        |j                   ||            S t        |t              r1t        |j                   ||      t        |j                   ||      z  S t        |t              r0t        |j                  ||      t        |j                   ||      z  S t        |t              rot        t        |j                   ||      t        |j                   ||            t        t        |j                  ||      t        |j                  ||            z  S t        |t               r| S t        |t"              rt        |j                  ||      S t        |t&              rct        |j                   ||j
                  hz  ||j
                  hz        }|j                  |j
                  t        t        |                  S t        |t(              r| S t+        d| z        t        | t&              r}t        | j                  ||| j
                  hz        }|r%|j                  | j
                  t%        |            S t        t        |            }|j                  | j
                  |      S t        | t(              r| S t+        d| z        )zO
    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         G/var/www/openai/venv/lib/python3.12/site-packages/nltk/sem/skolemize.pyr   r      s    U
*m,OO*--..j1122

 ||nE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<N+ND ||G$4$4oj6QRR"4#>:# ||G$4$4oFF/7==.*nE7>>/:~F  .gmm^ZH9^L   /W]]JG)^K   /7==.*nE7>>/:~F '--^D'..*nE  !34!23W\\:~FF!12g..//'"2"2!33D
 <<  "?.#IJ  !677*DEE	J 0	1OOZ:;N;N:O)O
 <<
 3 3_Z5PQQ01WXO<<
 3 3_EE	J 5	63j@AA    c                    t        | t              r1t        | j                  |      }t        | j                  |      }||z  S t        |t              r1t        | |j                        }t        | |j                        }||z  S | |z  S )zI
    Convert this split disjunction to conjunctive normal form (CNF)
    )r   r   r   r   r   )r   r   r_firstr_seconds       r    r   r      sx     %'f-%,,/!!	FM	*-%/!!v~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!   