r : int -> goalstack
# g `(HD[1;2;3] = 1) /\ (TL[1;2;3] = [2;3]) /\ (HD (TL[1;2;3]) = 2)`;; val it : goalstack = 1 subgoal (1 total) `HD [1; 2; 3] = 1 /\ TL [1; 2; 3] = [2; 3] /\ HD (TL [1; 2; 3]) = 2` # e (REPEAT CONJ_TAC);; val it : goalstack = 3 subgoals (3 total) `HD (TL [1; 2; 3]) = 2` `TL [1; 2; 3] = [2; 3]` `HD [1; 2; 3] = 1` # r 1;; val it : goalstack = 1 subgoal (3 total) `TL [1; 2; 3] = [2; 3]` # r 1;; val it : goalstack = 1 subgoal (3 total) `HD (TL [1; 2; 3]) = 2`