Extensional logic