introduce logic