ABSTRACT <A>          /sA..........$/
                  AND
                      { <p> [0 1 2 3 4 5 6 7 8 9]+ }
ABSTRACT <B> @<A> AND /s.B.........$/
                  AND
                      { <p> [0 1   3 4 5 6 7 8 9]+ }
         <C>          /s..C........$/
                  AND
                      { <p> [0 1 2   4 5 6 7 8 9]+ }
ABSTRACT <D> @<B> AND
             @<C> AND /s...D.......$/
                  AND
                      { <p> [0 1 2 3   5 6 7 8 9]+ }
ABSTRACT <E>          /s....E......$/
                  AND EXTENDS @<D>
                      { <p> [    2              ] }
         <F>          /s.....F.....$/
                  AND
                      { <p> [      3            ] }
ABSTRACT <G>          /s......G....$/
                  AND EXTENDS @<E> EXTENDS @<F>
                      { <p> [        4          ] }
ABSTRACT <H> @<G> AND /s.......H...$/
                  AND
                      { <p> [0 1 2 3 4 5     8 9]* }
         <I>          /s........I..$/
                  AND
                      { <q> [          5        ] }
         <J> @<H> AND /s.........J.$/
                  AND EXTENDS @<I>
                      { <q> [            6      ] }

# 0 1 2 3 4 5 6 7 8 9+                         
# 0 1   3 4 5 6 7 8 9+                         
#       -            +                         
# 0 1       5 6 7 8 9+                         
# 0 1 +     5 6 7 8 9+, p:2                    
#       +               p:3                    
# 0 1     + 5 6 7 8 9+, p:2, p:3, p:4          
# 0 1       5     8 9+, p:2, p:3, p:4          
#           +                          q:5     
# 0 1             8 9*, p:2, p:3, p:4, q:5, q:6

# ABSTRACT <A>           /sA..........$/ AND           { <p> [0 1 2 3 4 5 6 7 8 9]+}
# abstract <B> -<A>      /s.B.........$/ and           { <p> [0 1   3 4 5 6 7 8 9]+}
#          <C>           /s..C........$/ and           { <p> [0 1 2   4 5 6 7 8 9]+}
# abstract <D> -<B> -<C> /s...D.......$/ and           { <p> [0 1 2 3   5 6 7 8 9]+}
# abstract <E>           /s....E......$/ and &<D>      { <p> [    2              ] }
#          <F>           /s.....F.....$/ and           { <p> [      3            ] }
# abstract <G>           /s......G....$/ and &<E> &<F> { <p> [        4          ] }
# abstract <H> -<G>      /s.......H...$/ and           { <p> [0 1 2 3 4 5     8 9]*}
#          <I>           /s........I..$/ and           { <q> [          5        ] }
#          <J> -<H>      /s.........J.$/ and &<I>      { <q> [            6      ] }
