Global Variables
 

These are variables which are visible in the whole program, not in one clause only. Syntactically these are the variables which begin with G_.

Global variables are very convenient as illustrated in the examples. Certainly you can do without them (when you need a value somewhere in the program, then you can assert it or you can get it passing it from clause to clause as an extra argument). In 90% of the cases by global variables and by := (evaluation resistant on backtracking) you can avoid the use of assert and make your program more readable..