logic explanation