impl add[AS, A, BS, B, CS, C, K; Singleton[AS, K, A], Singleton[BS, K, B], Singleton[CS, K, C], Add[A, B, C]]: Add[AS, BS, CS];
impl sub[AS, A, BS, B, CS, C, K; Singleton[AS, K, A], Singleton[BS, K, B], Singleton[CS, K, C], Sub[A, B, C]]: Sub[AS, BS, CS];
impl mul[AS, A, BS, B, CS, C, K; Singleton[AS, K, A], Singleton[BS, K, B], Singleton[CS, K, C], Mul[A, B, C]]: Mul[AS, BS, CS];
impl div[AS, A, BS, B, CS, C, K; Singleton[AS, K, A], Singleton[BS, K, B], Singleton[CS, K, C], Div[A, B, C]]: Div[AS, BS, CS];
impl rem[AS, A, BS, B, CS, C, K; Singleton[AS, K, A], Singleton[BS, K, B], Singleton[CS, K, C], Rem[A, B, C]]: Rem[AS, BS, CS];
impl pow[AS, A, BS, B, CS, C, K; Singleton[AS, K, A], Singleton[BS, K, B], Singleton[CS, K, C], Pow[A, B, C]]: Pow[AS, BS, CS];
impl bit_and[AS, A, BS, B, CS, C, K; Singleton[AS, K, A], Singleton[BS, K, B], Singleton[CS, K, C], BitAnd[A, B, C]]: BitAnd[AS, BS, CS];
impl bit_or[AS, A, BS, B, CS, C, K; Singleton[AS, K, A], Singleton[BS, K, B], Singleton[CS, K, C], BitOr[A, B, C]]: BitOr[AS, BS, CS];
impl bit_xor[AS, A, BS, B, CS, C, K; Singleton[AS, K, A], Singleton[BS, K, B], Singleton[CS, K, C], BitXor[A, B, C]]: BitXor[AS, BS, CS];