
    NgZ                     L    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dS )    )AllExpressionAndExpressionApplicationExpressionEqualityExpressionExistsExpressionIffExpressionImpExpressionNegatedExpressionOrExpressionVariableExpressionskolem_functionunique_variableNc           	         |t                      }|t                      }t          | t                    r^t          | j        || j        hz  || j        hz            }|                    | j        t          t          |                              S t          | t                    r-t          | j
        ||          t          | j        ||          z  S t          | t                    r8t          t          | j
        ||          t          | j        ||                    S t          | t                    r9t          t          | j
         ||          t          | j        ||                    S t          | t                    rst          t          | j
         ||          t          | j        ||                    t          t          | j
        ||          t          | j         ||                    z  S t          | t                     r| S t          | t"                    r| j        }t          |t                    rt          |j         |||j        hz            }|r(|                    |j        t%          |                    S t          t          |                    }|                    |j        |          S t          |t                    r:t          t          |j
         ||          t          |j         ||                    S t          |t                    r/t          |j
         ||          t          |j         ||          z  S t          |t                    r.t          |j
        ||          t          |j         ||          z  S t          |t                    rst          t          |j
         ||          t          |j         ||                    t          t          |j
        ||          t          |j        ||                    z  S t          |t                     r| S t          |t"                    rt          |j        ||          S t          |t&                    r_t          |j         ||j        hz  ||j        hz            }|                    |j        t          t          |                              S t          |t(                    r| S t+          d| z            t          | t&                    rt          | j        ||| j        hz            }|r(|                    | j        t%          |                    S t          t          |                    }|                    | j        |          S t          | t(                    r| S t+          d| z            )zO
    Skolemize the expression and convert to conjunctive normal form (CNF)
    N)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         N/var/www/html/ai-engine/env/lib/python3.11/site-packages/nltk/sem/skolemize.pyr   r      s    UU
*m,, bBO*-..j122
 

 ||nEEEFF
 
 	
 
J	.	. XB):~FFz>J
 J
 
 	
 
J	-	- TBj&
NCCj'^DD
 
 	
 
J	.	. OBz''^DDj'^DD
 
 	
 
J	.	. JBz''^DDj'^DD
 
 j&
NCCz((*nEE
 

 	
 
J 2	3	3 BB	J 1	2	2 @B/g}-- 1	Fz>W=M<N+N D  G||G$4oj6Q6QRRR"4#>:::# # ||G$4oFFF// &	F7=.*nEE7>/:~FF   .. !	Fgm^ZHH9^L L   // 	FW]JGG)^K K   // 	F7=.*nEE7>/:~FF  '-^DD'.*nEE   !344 	F!233 	FW\:~FFF!122 	Fg.//'"2!33 D
 << "?.#I#I#IJJ   !677 	F7*DEEE	J 0	1	1 BOZ:;N:O)O
 
  	F<<
 3_Z5P5PQQQ01W1W1WXXO<<
 3_EEE	J 5	6	6 B3j@AAA    c                    t          | t                    r/t          | j        |          }t          | j        |          }||z  S t          |t                    r/t          | |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      s     %'' 	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 kB kB kB\    r!   