reserve G for non empty DTConstrStr,
  s for Symbol of G,
  n,m for String of G;

theorem
  Terminals(G) \/ NonTerminals(G) = the carrier of G
proof
  thus Terminals G \/ NonTerminals G c= the carrier of G
  proof
    let a be object;
    assume a in Terminals G \/ NonTerminals G;
    then a in Terminals G or a in NonTerminals G by XBOOLE_0:def 3;
    then
    (ex s st a = s & not ex n being FinSequence st s ==> n) or ex s st a =
    s & ex n being FinSequence st s ==> n;
    hence thesis;
  end;
  let a be object;
  assume a in the carrier of G;
  then reconsider s = a as Symbol of G;
  not (ex n being FinSequence st s ==> n) or ex n being FinSequence st s ==> n;
  then a in Terminals G or a in NonTerminals G;
  hence thesis by XBOOLE_0:def 3;
end;
