ó
    Óz	iê  ã                   óœ  • S r SSKJrJrJrJr  SSKJrJrJrJ	r	  SSKJ
r
JrJrJrJrJr  SSKJrJrJrJrJr  SSKJr  \R0                  (       aý  SSKrS \l        S	 \l        S
 \l        S \l        S \l        S \l        S \l        S \l        S \	l        S \	l        S \l        S \l        S \l        S \l        S \
l        S \
l        S \l        S \l        S \l        S \l        S \l        S \l        S \l        S \l        S  \l        S! \l        S" \l        S# \l        S$ \l        S% \l        S& \l        gg)'a|  
Dynamically extend Gate classes with functions required for the Hoare
optimizer, namely triviality-conditions and post-conditions.
If `_trivial_if` returns `True` and the qubit is in a classical state
then the gate is trivial.
If a gate has no `_trivial_if`, then is assumed to be non-trivial.
If a gate has no `_postconditions`, then is assumed to have unknown post-conditions.
é    )ÚIGateÚXGateÚYGateÚZGate)ÚCXGateÚCCXGateÚCYGateÚCZGate)ÚTGateÚTdgGateÚSGateÚSdgGateÚRZGateÚU1Gate)ÚSwapGateÚ	CSwapGateÚCRZGateÚCU1GateÚMCU1Gate)Ú	optionalsNc                 ó4   • U[         R                  " U5      :H  $ ©N©Úz3ÚNot©ÚselfÚx1Úy1s      Úo/home/james-whalen/.local/lib/python3.13/site-packages/qiskit/transpiler/passes/optimization/_gate_extension.pyÚ<lambda>r!       ó   € °´r·v²v¸b³zÒ1Aó    c                 ó4   • U[         R                  " U5      :H  $ r   r   r   s      r    r!   r!   !   ó   € °"¼¿º¸r»
Ò2Br#   c                 ó4   • U[         R                  " U5      :H  $ r   r   r   s      r    r!   r!   "   s   € °2¼¿ºÀ»Ò3Cr#   c                 ó4   • U[         R                  " U5      :H  $ r   r   r   s      r    r!   r!   %   r"   r#   c                 ó4   • U[         R                  " U5      :H  $ r   r   r   s      r    r!   r!   &   r%   r#   c                 ó
   • X!:H  $ r   © r   s      r    r!   r!   *   ó   € °²r#   c                 ó   • g©NTr*   ©r   r   s     r    r!   r!   -   ó   € ¨r#   c                 ó
   • X!:H  $ r   r*   r   s      r    r!   r!   .   r+   r#   c                 ó   • gr-   r*   r.   s     r    r!   r!   /   ó   € ¨$r#   c                 ó
   • X!:H  $ r   r*   r   s      r    r!   r!   0   ó   € °"²(r#   c                 ó   • gr-   r*   r.   s     r    r!   r!   3   r/   r#   c                 ó
   • X!:H  $ r   r*   r   s      r    r!   r!   4   r+   r#   c                 ó   • gr-   r*   r.   s     r    r!   r!   5   ó   € ¨4r#   c                 ó
   • X!:H  $ r   r*   r   s      r    r!   r!   6   ó   € °2²8r#   c                 ó   • gr-   r*   r.   s     r    r!   r!   9   r/   r#   c                 ó
   • X!:H  $ r   r*   r   s      r    r!   r!   :   r+   r#   c                 ó   • gr-   r*   r.   s     r    r!   r!   ;   r8   r#   c                 ó
   • X!:H  $ r   r*   r   s      r    r!   r!   <   r:   r#   c                 ó   • gr-   r*   r.   s     r    r!   r!   ?   r2   r#   c                 ó
   • X!:H  $ r   r*   r   s      r    r!   r!   @   r4   r#   c                 ó
   • X!:H  $ r   r*   r   s      r    r!   r!   A   r:   r#   c                 ó   • gr-   r*   r.   s     r    r!   r!   D   r2   r#   c                 ó
   • X!:H  $ r   r*   r   s      r    r!   r!   E   r4   r#   c                 ó   • gr-   r*   r.   s     r    r!   r!   F   r8   r#   c                 ó
   • X!:H  $ r   r*   r   s      r    r!   r!   G   r:   r#   c                 ó   • gr-   r*   r.   s     r    r!   r!   H   s   € ¨Dr#   c                 ó
   • X!:H  $ r   r*   r   s      r    r!   r!   I   s   € °B²Hr#   c                 ó
   • X:H  $ r   r*   ©r   r   Úx2s      r    r!   r!   M   s   € °²r#   c                 ó8   • [         R                  " X:H  X#:H  5      $ r   ©r   ÚAnd©r   r   rJ   r   Úy2s        r    r!   r!   N   s   € ¼B¿FºFÀ2Á8ÈRÉXÔ<Vr#   c                 ó
   • X:H  $ r   r*   rI   s      r    r!   r!   O   r+   r#   c                 ó8   • [         R                  " X:H  X#:H  5      $ r   rL   rN   s        r    r!   r!   P   s   € ¼R¿VºVÀBÁHÈbÉhÔ=Wr#   )Ú__doc__Ú%qiskit.circuit.library.standard_gatesr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   Úqiskit.utilsr   Ú
_optionalsÚHAS_Z3r   Ú_postconditionsÚ_trivial_ifr*   r#   r    Ú<module>rY      sF  ðñ÷ MÓ Lß QÓ Qß `× `ß aÕ aÝ 0à××Ûñ B€EÔÙB€FÔÙC€GÔñ B€EÔÙB€FÔñ :€EÔñ .€EÔÙ9€EÔÙ.€FÔÙ:€FÔñ .€EÔÙ9€EÔÙ/€GÔÙ;€GÔñ .€EÔÙ9€EÔÙ/€GÔÙ;€GÔñ /€FÔÙ:€FÔÙ;€GÔñ /€FÔÙ:€FÔÙ/€GÔÙ;€GÔÙ0€HÔÙ<€HÔñ 9€HÔÙV€HÔÙ9€IÔÙ W€IÕðk r#   