
'begin'
	'comment'
		ALGOL Praktikum, Dr. Karl Nickel, Karlsuhe 1964,
		page 113 (example 16).

		Montgomery Phister, Logical Design of Digital
		Computers (NewYork 1958, page 99 and 100).
	;


	'boolean' a, b, c, d;

	'for' a := 'true', 'false' 'do'
	'for' b := 'true', 'false' 'do'
	'for' c := 'true', 'false' 'do'
	'for' d := 'true', 'false' 'do'

	'begin' 'if' (a 'and' b 'and' c 'and' 'not' d)		
			'or' (a 'and' 'not' b 'and' 'not' c 'and' 'not' d)
			'or' ('not' a 'and' b 'and' 'not' c 'and' d)
		'then' 

		'else' 'if' ('not' a 'and' 'not' c)
				'or' (a 'and' b 'and' 'not' d)
				'or' ('not' a 'and' 'not' b 'and' c 'and' d)
				'or' (a 'and' b 'and' c 'and' d)
			'equiv'
				('not' c 'and' 'not' d)
				'or' (a 'and' b 'and' c)
				'or' ('not' a 'and' 'not' b 'and' d)
			'then'

			'else' 'begin'
				vprint (`the formula is wrong');
				'goto' fini
			'end';
	'end';

	vprint (`the formula is correct');
fini:

'end'
