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 V3() GeneratorSet of T

for S1 being non empty non void b_{1} -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 V3() 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 V3() 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 V3() 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

for T being non-empty MSAlgebra over J

for X being V3() GeneratorSet of T

for S1 being non empty non void b

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 V3() 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 V3() 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 V3() 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