let n be non empty Nat; :: thesis: for J being non empty non void Signature
for T being non-empty MSAlgebra over J
for X being empty-yielding GeneratorSet of T
for S1 being non empty non void b1 -extension n PC-correct QC-correct QCLangSignature over Union X
for x0 being Element of Union (X extended_by ({}, the carrier of S1))
for L being non-empty Language of X extended_by ({}, the carrier of S1),S1
for G1 being QC-theory_with_equality of L
for s, s1 being SortSymbol of S1
for t being Element of L,s
for t1, t2 being Element of L,s1 st L is subst-eq-correct & x0 in X . s & t1 '=' (t2,L) in G1 holds
(t1 / (x0,t)) '=' ((t2 / (x0,t)),L) in G1

let J be non empty non void Signature; :: thesis: for T being non-empty MSAlgebra over J
for X being empty-yielding GeneratorSet of T
for S1 being non empty non void J -extension n PC-correct QC-correct QCLangSignature over Union X
for x0 being Element of Union (X extended_by ({}, the carrier of S1))
for L being non-empty Language of X extended_by ({}, the carrier of S1),S1
for G1 being QC-theory_with_equality of L
for s, s1 being SortSymbol of S1
for t being Element of L,s
for t1, t2 being Element of L,s1 st L is subst-eq-correct & x0 in X . s & t1 '=' (t2,L) in G1 holds
(t1 / (x0,t)) '=' ((t2 / (x0,t)),L) in G1

let T be non-empty MSAlgebra over J; :: thesis: for X being empty-yielding GeneratorSet of T
for S1 being non empty non void J -extension n PC-correct QC-correct QCLangSignature over Union X
for x0 being Element of Union (X extended_by ({}, the carrier of S1))
for L being non-empty Language of X extended_by ({}, the carrier of S1),S1
for G1 being QC-theory_with_equality of L
for s, s1 being SortSymbol of S1
for t being Element of L,s
for t1, t2 being Element of L,s1 st L is subst-eq-correct & x0 in X . s & t1 '=' (t2,L) in G1 holds
(t1 / (x0,t)) '=' ((t2 / (x0,t)),L) in G1

let X be empty-yielding GeneratorSet of T; :: thesis: for S1 being non empty non void J -extension n PC-correct QC-correct QCLangSignature over Union X
for x0 being Element of Union (X extended_by ({}, the carrier of S1))
for L being non-empty Language of X extended_by ({}, the carrier of S1),S1
for G1 being QC-theory_with_equality of L
for s, s1 being SortSymbol of S1
for t being Element of L,s
for t1, t2 being Element of L,s1 st L is subst-eq-correct & x0 in X . s & t1 '=' (t2,L) in G1 holds
(t1 / (x0,t)) '=' ((t2 / (x0,t)),L) in G1

let S1 be non empty non void J -extension n PC-correct QC-correct QCLangSignature over Union X; :: thesis: for x0 being Element of Union (X extended_by ({}, the carrier of S1))
for L being non-empty Language of X extended_by ({}, the carrier of S1),S1
for G1 being QC-theory_with_equality of L
for s, s1 being SortSymbol of S1
for t being Element of L,s
for t1, t2 being Element of L,s1 st L is subst-eq-correct & x0 in X . s & t1 '=' (t2,L) in G1 holds
(t1 / (x0,t)) '=' ((t2 / (x0,t)),L) in G1

let x0 be Element of Union (X extended_by ({}, the carrier of S1)); :: thesis: for L being non-empty Language of X extended_by ({}, the carrier of S1),S1
for G1 being QC-theory_with_equality of L
for s, s1 being SortSymbol of S1
for t being Element of L,s
for t1, t2 being Element of L,s1 st L is subst-eq-correct & x0 in X . s & t1 '=' (t2,L) in G1 holds
(t1 / (x0,t)) '=' ((t2 / (x0,t)),L) in G1

let L be non-empty Language of X extended_by ({}, the carrier of S1),S1; :: thesis: for G1 being QC-theory_with_equality of L
for s, s1 being SortSymbol of S1
for t being Element of L,s
for t1, t2 being Element of L,s1 st L is subst-eq-correct & x0 in X . s & t1 '=' (t2,L) in G1 holds
(t1 / (x0,t)) '=' ((t2 / (x0,t)),L) in G1

let G1 be QC-theory_with_equality of L; :: thesis: for s, s1 being SortSymbol of S1
for t being Element of L,s
for t1, t2 being Element of L,s1 st L is subst-eq-correct & x0 in X . s & t1 '=' (t2,L) in G1 holds
(t1 / (x0,t)) '=' ((t2 / (x0,t)),L) in G1

let s, s1 be SortSymbol of S1; :: thesis: for t being Element of L,s
for t1, t2 being Element of L,s1 st L is subst-eq-correct & x0 in X . s & t1 '=' (t2,L) in G1 holds
(t1 / (x0,t)) '=' ((t2 / (x0,t)),L) in G1

let t be Element of L,s; :: thesis: for t1, t2 being Element of L,s1 st L is subst-eq-correct & x0 in X . s & t1 '=' (t2,L) in G1 holds
(t1 / (x0,t)) '=' ((t2 / (x0,t)),L) in G1

let t1, t2 be Element of L,s1; :: thesis: ( L is subst-eq-correct & x0 in X . s & t1 '=' (t2,L) in G1 implies (t1 / (x0,t)) '=' ((t2 / (x0,t)),L) in G1 )
assume A1: L is subst-eq-correct ; :: thesis: ( not x0 in X . s or not t1 '=' (t2,L) in G1 or (t1 / (x0,t)) '=' ((t2 / (x0,t)),L) in G1 )
set Y = X extended_by ({}, the carrier of S1);
assume A2: x0 in X . s ; :: thesis: ( not t1 '=' (t2,L) in G1 or (t1 / (x0,t)) '=' ((t2 / (x0,t)),L) in G1 )
then A3: ( s in dom X & dom X = the carrier of J & dom (X extended_by ({}, the carrier of S1)) = the carrier of S1 ) by FUNCT_1:def 2, PARTFUN1:def 2;
then reconsider x = x0 as Element of Union X by A2, CARD_5:2;
A4: (X extended_by ({}, the carrier of S1)) . s = X . s by A3, Th1;
assume t1 '=' (t2,L) in G1 ; :: thesis: (t1 / (x0,t)) '=' ((t2 / (x0,t)),L) in G1
then ( \for (x,(t1 '=' (t2,L))) in G1 & (\for (x,(t1 '=' (t2,L)))) \imp ((t1 '=' (t2,L)) / (x0,t)) in G1 ) by A3, A4, A2, Def39;
then (t1 '=' (t2,L)) / (x0,t) in G1 by Def38;
hence (t1 / (x0,t)) '=' ((t2 / (x0,t)),L) in G1 by A1, A2; :: thesis: verum