let X be ( ( ) ( ) set ) ; let A, B be ( ( ) ( ) List of X : ( ( ) ( ) set ) ) ; :: original: AND redefine funcA AND B -> ( ( ) ( ) List of X : ( ( ) ( ) 2-sorted ) ) ; :: original: OR redefine funcA OR B -> ( ( ) ( ) List of X : ( ( ) ( ) 2-sorted ) ) ; :: original: BUTNOT redefine funcA BUTNOT B -> ( ( ) ( ) List of X : ( ( ) ( ) 2-sorted ) ) ;