I am trying to create a context free grammar in [Extended Backus–Naur form][1], which starts with a non-empty sequence of `A`'s and is followed by a non-empty sequence of `B`'s. With the special condition that the number of `B`'s has to be **unequal** to the number of `A`'s.

Thus, the grammar should generate words like:

* `AAAABBB`
* `AAABB`
* `ABBB`

---

So basically I could do something like this:

$\ G=(N,T,P,Sequence)$

$\ N = \{Sequence\}$

$\ T = \{A,B\}$

$\ P = \{Sequence=AA(Sequence|\epsilon)B\}$

But then the words would always have $\ 2n$ `A`'s and n `B`'s:

* `AAB`
* `AAAABB`
* `AAAAAABBB`

So how is it possible to make the number of `A`'s **uncorrelated** of the number of `B`'s, without being equal?

# Update
[This question][2] was suggested as a duplicate. But it's not quite what I want. So I posted my own solution as an answer below.


  [1]: https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form
  [2]: https://cs.stackexchange.com/questions/9804/context-free-grammar-for-language-l-aibj-mid-i-j-ge-0-i-ne-2j