```    1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2% Pretty portrayal of literals
3% for the Michalski trains problem
4
5aleph_portray(eastbound(T)):-
6	write('Train '), write(T), write(' is eastbound').
7aleph_portray(short(C)):-
8	write('car '), write(C), write(' is short').
9aleph_portray(closed(C)):-
10	write('car '), write(C), write(' is closed').
11aleph_portray(long(C)):-
12	write('car '), write(C), write(' is long').
13aleph_portray(open_car(C)):-
14	write('car '), write(C), write(' is open').
15aleph_portray(double(C)):-
16	write('car '), write(C), write(' is double-walled').
17aleph_portray(jagged(C)):-
18	write('car '), write(C), write(' has a jagged roof').
19aleph_portray(shape(C,S)):-
20	write('car '), write(C), write(' is '), write(S), write('-shaped').
22	write('car '), write(C), write(' has '), write(N),
23	write(' '), write(S),
25aleph_portray(wheels(C,N)):-
26	write('car '), write(C), write(' has '), write(N), write(' wheels').
27aleph_portray(has_car(T,C)):-
28	write(T), write(' has a car '), write(C)```