reserve G for non empty DTConstrStr,
  s for Symbol of G,
  n,m for String of G;
reserve n1,n2,n3 for String of G;
reserve a,b,c for set,
  D for non empty set,
  d for Element of D;

theorem
  a <> b implies Lang SingleGrammar(a,b) = {<*b*>}
proof
  set E = SingleGrammar(a,b);
A1: the InitialSym of E = a by Def8;
  the carrier of E = {a,b} by Def8;
  then reconsider x = a, y = b as Symbol of E by TARSKI:def 2;
A2: the Rules of E = {[a,<*b*>]} by Def8;
  then [a,<*b*>] in the Rules of E by TARSKI:def 1;
  then the InitialSym of E ==> <*y*> by A1;
  then
A3: <*y*> is_derivable_from <*the InitialSym of E*> by Th3,Th7;
  assume
A4: a <> b;
  then
A5: Terminals E = {b} by Th12;
  thus Lang E c= {<*b*>}
  proof
    let c be object;
    assume c in Lang E;
    then consider p being String of E such that
A6: c = p and
A7: rng p c= Terminals E and
A8: p is_derivable_from <*the InitialSym of E*>;
    consider q being FinSequence such that
A9: len q >= 1 and
A10: q.1 = <*the InitialSym of E*> and
A11: q.(len q) = p and
A12: for i being Element of NAT st i >= 1 & i < len q ex a,b being
    String of E st q.i = a & q.(i+1) = b & a ==> b by A8;
    now
      assume p = <*x*>;
      then rng p = {x} by FINSEQ_1:38;
      then x in rng p by TARSKI:def 1;
      hence contradiction by A4,A5,A7,TARSKI:def 1;
    end;
    then
A13: len q > 1 by A1,A9,A10,A11,XXREAL_0:1;
    then consider n, m being String of E such that
A14: q.1 = n and
A15: q.(1+1) = m and
A16: n ==> m by A12;
    x ==> m by A1,A10,A14,A16,Th4;
    then [x,m] in {[a,<*b*>]} by A2;
    then [x,m] = [a,<*b*>] by TARSKI:def 1;
    then
A17: m = <*b*> by XTUPLE_0:1;
A18: now
      assume 2 < len q;
      then consider k, l being String of E such that
A19:  q.2 = k and
      q.(2+1) = l and
A20:  k ==> l by A12;
      y ==> l by A15,A17,A19,A20,Th4;
      then [y,l] in {[a,<*b*>]} by A2;
      then [y,l] = [a,<*b*>] by TARSKI:def 1;
      hence contradiction by A4,XTUPLE_0:1;
    end;
    len q >= 1+1 by A13,NAT_1:13;
    then c = <*b*> by A6,A11,A15,A17,A18,XXREAL_0:1;
    hence thesis by TARSKI:def 1;
  end;
  let c be object;
  assume c in {<*b*>};
  then
A21: c = <*b*> by TARSKI:def 1;
  rng <*b*> = {b} by FINSEQ_1:38;
  hence thesis by A5,A21,A3;
end;
