
go5(F, G) :-
    see(F),
    tell(G),
    repeat,
    read(X),
    get_seconds(T1),
  % mini7(X,Y),
  % mini6(X,c,Y,_),
    mini5(X,Y,_),
    get_seconds(T2),
    T3 is T2 - T1,
    write('[ '), write(T3), write(' ,'), nl,
    write(Y), nl,
    write('].'), nl,
    X == end_of_file,
    seen,
    told,
    !.
go6(F, G) :-
    see(F),
    tell(G),
    repeat,
    read(X),
    get_seconds(T1),
  % mini7(X,Y),
    mini6(X,c,Y,_),
    get_seconds(T2),
    T3 is T2 - T1,
    write('[ '), write(T3), write(' ,'), nl,
    write(Y), nl,
    write('].'), nl,
    X == end_of_file,
    seen,
    told,
    !.

go7(F, G) :-
    see(F),
    tell(G),
    repeat,
    read(X),
    get_seconds(T1),
    mini7(X,Y),
  % mini6(X,c,Y,_),
    get_seconds(T2),
    T3 is T2 - T1,
    write('[ '), write(T3), write(' ,'), nl,
    write(Y), nl,
    write('].'), nl,
    X == end_of_file,
    seen,
    told,
    !.

go2(F, G) :-
    resest(uu,1000),
    see(F),
    read(X),
    get_forms(X,L1),
    seen,
    see(G),
    read(Y),
    get_forms(Y,L2),
    seen,
    do_forms(L1, L2),
    !.

do_forms([F|T1], [G|T2]) :-
    uqvars(F and G, F1 and G1),
  %  write(F1), nl,
  %  write(G1), nl,
    gensub(F1, G1),
    write('A -> B'), nl,
    gensub(G1, F1),
    !,
    write('B -> A, both ok'), nl,
    do_forms(T1, T2).
do_forms([F|T1], [G|T2]) :-
    !,
    write('One or both failed, here they are:'), nl,
    write(F), nl,
    write(G), nl,
    nl,
    do_forms(T1, T2).
do_forms([],[]).

get_forms(end_of_file,[]) :-
    !.
get_forms([_,F], [F|T]) :-
    read(G),
    get_forms(G, T).
