fomodel3.miz
    
    begin
    
    reserve A,B,C,X,Y,Z,x,x1,x2,y,z for
    set, 
    
U,U1,U2,U3 for non
    empty  
    set, 
    
u,u1,u2 for
    Element of U, 
    
P,Q,R for
    Relation, 
    
f,g for
    Function, 
    
k,m,n for
    Nat, 
    
m1,n1 for non
    zero  
    Nat, 
    
kk,mm,nn for
    Element of 
    NAT , 
    
p,p1,p2 for
    FinSequence, 
    
q,q1,q2 for U
    -valued  
    FinSequence;
    
    reserve S,S1,S2 for
    Language, 
    
s,s1,s2 for
    Element of S, 
    
l,l1,l2 for
    literal  
    Element of S, 
    
a for
    ofAtomicFormula  
    Element of S, 
    
r for
    relational  
    Element of S, 
    
w,w1,w2 for
    string of S, 
    
t,t1,t2 for
    termal  
    string of S; 
    
    reserve phi0 for
    0wff  
    string of S, 
    
psi,psi1,psi2,phi,phi1,phi2 for
    wff  
    string of S, 
    
I for S, U
    -interpreter-like  
    Function;
    
    reserve tt,tt0,tt1,tt2 for
    Element of ( 
    AllTermsOf S); 
    
    definition
    
      let S, s;
    
      let V be
    Element of (((( 
    AllSymbolsOf S) 
    * ) 
    \  
    {
    {} }) 
    * ); 
    
      :: 
    
    FOMODEL3:def1
    
      func s
    
    -compound (V) -> 
    string of S equals ( 
    <*s*>
    ^ ((S 
    -multiCat ) 
    . V)); 
    
      coherence
    
      proof
    
        set SS = (
    AllSymbolsOf S), C = (S 
    -multiCat ); 
    
        reconsider header =
    <*s*> as
    Element of (SS 
    * ); 
    
        reconsider tailer = (C
    . V) as 
    FinSequence of SS by 
    FINSEQ_1:def 11;
    
        reconsider IT = (header
    ^ tailer) as 
    FinSequence of SS; 
    
        IT
    in (SS 
    * ) & not IT 
    in  
    {
    {} }; 
    
        hence (
    <*s*>
    ^ (C 
    . V)) is 
    string of S by 
    XBOOLE_0:def 5;
    
      end;
    
    end
    
    registration
    
      let S, mm;
    
      let s be
    termal  
    Element of S; 
    
      let V be
    |.(
    ar s).| 
    -element  
    Element of (((S 
    -termsOfMaxDepth ) 
    . mm) 
    * ); 
    
      cluster (s 
    -compound V) -> (mm 
    + 1) 
    -termal;
    
      coherence
    
      proof
    
        set C = (S
    -multiCat ), t = (s 
    -compound V), T = (S 
    -termsOfMaxDepth ), L = ( 
    LettersOf S), SS = ( 
    AllSymbolsOf S), n = 
    |.(
    ar s).|, A = ( 
    AtomicTermsOf S), fam = { ( 
    Compound (u,(T 
    . mm))) where u be 
    ofAtomicFormula  
    Element of S : u is 
    operational };
    
        
    
        
    
    A1: V is 
    FinSequence of (T 
    . mm) by 
    FINSEQ_1:def 11;
    
        reconsider Ss = ((SS
    * ) 
    \  
    {
    {} }) as 
    Subset of (SS 
    * ); 
    
        V
    in (Ss 
    * ); 
    
        then
    
        reconsider VV = V as
    Element of ((SS 
    * ) 
    * ); 
    
        t
    = ( 
    <*s*>
    ^ (C 
    . VV)) & ( 
    rng VV) 
    c= (T 
    . mm) by 
    A1,
    FINSEQ_1:def 4;
    
        then
    
        
    
    A2: t 
    in ( 
    Compound (s,(T 
    . mm))); 
    
        per cases ;
    
          suppose s is
    literal;
    
          then
    
          reconsider v = s as
    literal  
    Element of S; 
    
          reconsider vv = v as
    Element of L by 
    FOMODEL1:def 14;
    
          (
    ar v) 
    =  
    0 ; 
    
          then n
    =  
    0 ; 
    
          then
    
          reconsider VVV = V as
    0  
    -element  
    FinSequence;
    
          t
    = ( 
    <*s*>
    ^ VVV) 
    
          .=
    <*vv*>;
    
          then t
    in ( 
    AtomicTermsOf S) by 
    FINSEQ_2: 98;
    
          then (T
    .  
    0 ) 
    c= (T 
    . ( 
    0  
    + (mm 
    + 1))) & t 
    in (T 
    .  
    0 ) by 
    FOMODEL1:def 30,
    FOMODEL1: 4;
    
          hence thesis;
    
        end;
    
          suppose not s is
    literal;
    
          then (
    Compound (s,(T 
    . mm))) 
    in fam; 
    
          then t
    in ( 
    union fam) by 
    A2,
    TARSKI:def 4;
    
          then t
    in (( 
    union fam) 
    \/ (T 
    . mm)) by 
    XBOOLE_0:def 3;
    
          then t
    in (T 
    . (mm 
    + 1)) by 
    FOMODEL1:def 30;
    
          hence thesis;
    
        end;
    
      end;
    
    end
    
    
    
    
    
    Lm1: not x 
    in ((S 
    -termsOfMaxDepth ) 
    . (m 
    + n)) implies not x 
    in ((S 
    -termsOfMaxDepth ) 
    . m) 
    
    proof
    
      set T = (S
    -termsOfMaxDepth ); 
    
      
    
      
    
    A1: (T 
    . m) 
    c= (T 
    . (m 
    + n)) by 
    FOMODEL1: 4;
    
      assume not x
    in (T 
    . (m 
    + n)); 
    
      hence thesis by
    A1;
    
    end;
    
    
    
    
    
    Lm2: x 
    in ((S 
    -termsOfMaxDepth ) 
    . n) implies { mm : not x 
    in ((S 
    -termsOfMaxDepth ) 
    . mm) } 
    c= n 
    
    proof
    
      set T = (S
    -termsOfMaxDepth ), A = { mm : not x 
    in (T 
    . mm) }; 
    
      assume
    
      
    
    A1: x 
    in (T 
    . n); 
    
      now
    
        let y be
    object;
    
        assume y
    in A; 
    
        then
    
        consider mm such that
    
        
    
    A2: y 
    = mm & not x 
    in (T 
    . mm); 
    
        now
    
          assume mm
    >= n; 
    
          then
    
          consider k such that
    
          
    
    A3: mm 
    = (n 
    + k) by 
    NAT_1: 10;
    
          thus contradiction by
    A1,
    A2,
    A3,
    Lm1;
    
        end;
    
        hence y
    in ( 
    Segm n) by 
    A2,
    NAT_1: 44;
    
      end;
    
      hence thesis by
    TARSKI:def 3;
    
    end;
    
    
    
    
    
    Lm3: for V be 
    Element of (( 
    AllTermsOf S) 
    * ) holds ex mm be 
    Element of 
    NAT st V is 
    Element of (((S 
    -termsOfMaxDepth ) 
    . mm) 
    * ) 
    
    proof
    
      set TT = (
    AllTermsOf S), T = (S 
    -termsOfMaxDepth ); 
    
      let V be
    Element of (TT 
    * ); 
    
      deffunc
    
    F(
    object) = { mm : not (V
    . $1) 
    in (T 
    . mm) }; 
    
      set B = {
    F(nn) : nn
    in ( 
    dom V) }; 
    
      
    
      
    
    A1: ( 
    dom V) is 
    finite;
    
      reconsider TF = T as
    Function;
    
      
    
    A2: 
    
      now
    
        let x;
    
        assume x
    in B; 
    
        then
    
        consider nn such that
    
        
    
    A3: x 
    = { mm : not (V 
    . nn) 
    in (T 
    . mm) } & nn 
    in ( 
    dom V); 
    
        reconsider D = (
    dom V) as non 
    empty  
    set by 
    A3;
    
        (
    rng V) 
    c= TT by 
    RELAT_1:def 19;
    
        then
    
        reconsider VV = V as
    Function of D, TT by 
    FUNCT_2: 2;
    
        reconsider nnn = nn as
    Element of D by 
    A3;
    
        consider kk be
    Element of 
    NAT such that 
    
        
    
    A4: (VV 
    . nnn) 
    in (TF 
    . kk) by 
    FOMODEL1: 5;
    
        x
    c= kk by 
    Lm2,
    A3,
    A4;
    
        hence x is
    finite;
    
      end;
    
      B is
    finite from 
    FRAENKEL:sch 21(
    A1);
    
      then
    
      reconsider BB = B as
    finite
    finite-membered  
    set by 
    A2,
    FINSET_1:def 6;
    
      reconsider C = (
    union BB) as 
    finite  
    set;
    
      consider x be
    object such that 
    
      
    
    A5: x 
    in ( 
    NAT  
    \ C) by 
    XBOOLE_0:def 1;
    
      reconsider mm = x as
    Element of 
    NAT by 
    A5;
    
      now
    
        let i be
    object;
    
        assume
    
        
    
    A6: i 
    in ( 
    dom V); 
    
        then
    
        reconsider ii = i as
    Element of 
    NAT ; 
    
         not (V
    . i) 
    in (T 
    . mm) implies mm 
    in C 
    
        proof
    
          assume not (V
    . i) 
    in (T 
    . mm); 
    
          then mm
    in  
    F(i) &
    F(ii)
    in B by 
    A6;
    
          hence mm
    in C by 
    TARSKI:def 4;
    
        end;
    
        hence (V
    . i) 
    in (T 
    . mm) by 
    A5,
    XBOOLE_0:def 5;
    
      end;
    
      then V is
    Function of ( 
    dom V), (T 
    . mm) by 
    FUNCT_2: 3;
    
      then V is
    FinSequence of (T 
    . mm) by 
    FOMODEL0: 26;
    
      hence thesis;
    
    end;
    
    registration
    
      let S;
    
      let s be
    termal  
    Element of S; 
    
      let V be
    |.(
    ar s).| 
    -element  
    Element of (( 
    AllTermsOf S) 
    * ); 
    
      cluster (s 
    -compound V) -> 
    termal;
    
      coherence
    
      proof
    
        set T = (S
    -termsOfMaxDepth ), n = 
    |.(
    ar s).|; 
    
        consider mm such that
    
        
    
    A1: V is 
    Element of ((T 
    . mm) 
    * ) by 
    Lm3;
    
        reconsider VV = V as n
    -element  
    Element of ((T 
    . mm) 
    * ) by 
    A1;
    
        (s
    -compound VV) is (mm 
    + 1) 
    -termal  
    string of S; 
    
        hence thesis;
    
      end;
    
    end
    
    registration
    
      let S;
    
      let s be
    relational  
    Element of S; 
    
      let V be
    |.(
    ar s).| 
    -element  
    Element of (( 
    AllTermsOf S) 
    * ); 
    
      cluster (s 
    -compound V) -> 
    0wff;
    
      coherence ;
    
    end
    
    definition
    
      let S, s;
    
      :: 
    
    FOMODEL3:def2
    
      func s
    
    -compound -> 
    Function of (((( 
    AllSymbolsOf S) 
    * ) 
    \  
    {
    {} }) 
    * ), ((( 
    AllSymbolsOf S) 
    * ) 
    \  
    {
    {} }) means 
    
      :
    
    Def2: for V be 
    Element of (((( 
    AllSymbolsOf S) 
    * ) 
    \  
    {
    {} }) 
    * ) holds (it 
    . V) 
    = (s 
    -compound V); 
    
      existence
    
      proof
    
        set SS = (
    AllSymbolsOf S); 
    
        deffunc
    
    F(
    Element of (((SS 
    * ) 
    \  
    {
    {} }) 
    * )) = (s 
    -compound $1); 
    
        consider f be
    Function of (((SS 
    * ) 
    \  
    {
    {} }) 
    * ), ((SS 
    * ) 
    \  
    {
    {} }) such that 
    
        
    
    A1: for x be 
    Element of (((SS 
    * ) 
    \  
    {
    {} }) 
    * ) holds (f 
    . x) 
    =  
    F(x) from
    FUNCT_2:sch 4;
    
        take f;
    
        thus thesis by
    A1;
    
      end;
    
      uniqueness
    
      proof
    
        set SS = (
    AllSymbolsOf S); 
    
        let IT1,IT2 be
    Function of (((SS 
    * ) 
    \  
    {
    {} }) 
    * ), ((SS 
    * ) 
    \  
    {
    {} }); 
    
        assume that
    
        
    
    A2: for V be 
    Element of (((SS 
    * ) 
    \  
    {
    {} }) 
    * ) holds (IT1 
    . V) 
    = (s 
    -compound V) and 
    
        
    
    A3: for V be 
    Element of (((SS 
    * ) 
    \  
    {
    {} }) 
    * ) holds (IT2 
    . V) 
    = (s 
    -compound V); 
    
        now
    
          let V be
    Element of (((SS 
    * ) 
    \  
    {
    {} }) 
    * ); 
    
          
    
          thus (IT1
    . V) 
    = (s 
    -compound V) by 
    A2
    
          .= (IT2
    . V) by 
    A3;
    
        end;
    
        hence IT1
    = IT2 by 
    FUNCT_2:def 8;
    
      end;
    
    end
    
    registration
    
      let S;
    
      let s be
    termal  
    Element of S; 
    
      cluster ((s 
    -compound ) 
    | ( 
    |.(
    ar s).| 
    -tuples_on ( 
    AllTermsOf S))) -> ( 
    AllTermsOf S) 
    -valued;
    
      coherence
    
      proof
    
        set SS = (
    AllSymbolsOf S), A = ( 
    AllTermsOf S), n = 
    |.(
    ar s).|, D = (n 
    -tuples_on A), f = (s 
    -compound ), IT = (f 
    | D); 
    
        now
    
          let y be
    object;
    
          assume y
    in ( 
    rng IT); 
    
          then y
    in (f 
    .: D); 
    
          then
    
          consider x be
    object such that 
    
          
    
    A1: x 
    in ( 
    dom f) & x 
    in D & y 
    = (f 
    . x) by 
    FUNCT_1:def 6;
    
          reconsider V = x as n
    -element  
    FinSequence of A by 
    FOMODEL0: 12,
    A1;
    
          reconsider VV = V as n
    -element  
    Element of (A 
    * ); 
    
          reconsider Ss = ((SS
    * ) 
    \  
    {
    {} }) as 
    Subset of (SS 
    * ); 
    
          VV is
    Element of (Ss 
    * ); 
    
          then (s
    -compound VV) is 
    termal  
    string of S & VV is 
    Element of ((SS 
    * ) 
    * ); 
    
          then (f
    . VV) is 
    termal  
    string of S by 
    Def2;
    
          hence y
    in A by 
    FOMODEL1:def 32,
    A1;
    
        end;
    
        hence thesis by
    RELAT_1:def 19,
    TARSKI:def 3;
    
      end;
    
    end
    
    registration
    
      let S;
    
      let s be
    relational  
    Element of S; 
    
      cluster ((s 
    -compound ) 
    | ( 
    |.(
    ar s).| 
    -tuples_on ( 
    AllTermsOf S))) -> ( 
    AtomicFormulasOf S) 
    -valued;
    
      coherence
    
      proof
    
        set SS = (
    AllSymbolsOf S), A = ( 
    AllTermsOf S), n = 
    |.(
    ar s).|, D = (n 
    -tuples_on A), f = (s 
    -compound ), IT = (f 
    | D), AF = ( 
    AtomicFormulasOf S); 
    
        now
    
          let y be
    object;
    
          assume y
    in ( 
    rng IT); 
    
          then y
    in (f 
    .: D); 
    
          then
    
          consider x be
    object such that 
    
          
    
    A1: x 
    in ( 
    dom f) & x 
    in D & y 
    = (f 
    . x) by 
    FUNCT_1:def 6;
    
          reconsider V = x as n
    -element  
    FinSequence of A by 
    FOMODEL0: 12,
    A1;
    
          reconsider VV = V as n
    -element  
    Element of (A 
    * ); 
    
          reconsider Ss = ((SS
    * ) 
    \  
    {
    {} }) as 
    Subset of (SS 
    * ); 
    
          VV is
    Element of (Ss 
    * ); 
    
          then (s
    -compound VV) is 
    0wff  
    string of S & VV is 
    Element of ((SS 
    * ) 
    * ); 
    
          then (f
    . VV) is 
    0wff  
    string of S by 
    Def2;
    
          hence y
    in AF by 
    A1;
    
        end;
    
        hence thesis by
    RELAT_1:def 19,
    TARSKI:def 3;
    
      end;
    
    end
    
    definition
    
      let S;
    
      let s be
    ofAtomicFormula  
    Element of S; 
    
      let X be
    set;
    
      :: 
    
    FOMODEL3:def3
    
      func X
    
    -freeInterpreter (s) -> 
    set equals 
    
      :
    
    Def3: ((s 
    -compound ) 
    | ( 
    |.(
    ar s).| 
    -tuples_on ( 
    AllTermsOf S))) if not s is 
    relational
    
      otherwise (((s
    -compound ) 
    | ( 
    |.(
    ar s).| 
    -tuples_on ( 
    AllTermsOf S))) 
    * ( 
    chi (X,( 
    AtomicFormulasOf S))) qua 
    Relation);
    
      coherence ;
    
      consistency ;
    
    end
    
    definition
    
      let S;
    
      let s be
    ofAtomicFormula  
    Element of S; 
    
      let X be
    set;
    
      :: original:
    -freeInterpreter
    
      redefine
    
      func X
    
    -freeInterpreter (s) -> 
    Interpreter of s, ( 
    AllTermsOf S) ; 
    
      coherence
    
      proof
    
        set A = (
    AllTermsOf S), n = 
    |.(
    ar s).|, SS = ( 
    AllSymbolsOf S), XF = (X 
    -freeInterpreter s), AF = ( 
    AtomicFormulasOf S); 
    
        reconsider Ss = ((SS
    * ) 
    \  
    {
    {} }) as 
    Subset of (SS 
    * ); 
    
        (n
    -tuples_on A) 
    c= (A 
    * ) by 
    FINSEQ_2: 142;
    
        then (n
    -tuples_on A) 
    c= (Ss 
    * ) by 
    XBOOLE_1: 1;
    
        then
    
        reconsider f = ((s
    -compound ) 
    | (n 
    -tuples_on A)) as 
    Function of (n 
    -tuples_on A), ((SS 
    * ) 
    \  
    {
    {} }) by 
    FUNCT_2: 32;
    
        per cases ;
    
          suppose
    
          
    
    A1: s is 
    relational;
    
          then
    
          reconsider ss = s as
    relational  
    Element of S; 
    
          ((ss
    -compound ) 
    | ( 
    |.(
    ar ss).| 
    -tuples_on A)) is AF 
    -valued;
    
          then (
    rng f) 
    c= AF by 
    RELAT_1:def 19;
    
          then
    
          reconsider ff = f as
    Function of (n 
    -tuples_on A), AF by 
    RELSET_1: 6;
    
          reconsider g = (
    chi (X,AF)) as 
    Function of AF, 
    BOOLEAN ; 
    
          (g
    * ff) is 
    Function of (n 
    -tuples_on A), 
    BOOLEAN ; 
    
          then XF is
    Function of (n 
    -tuples_on A), 
    BOOLEAN by 
    A1,
    Def3;
    
          hence thesis by
    A1,
    FOMODEL2:def 2;
    
        end;
    
          suppose
    
          
    
    A2: not s is 
    relational;
    
          then
    
          reconsider ss = s as non
    relational
    ofAtomicFormula  
    Element of S; 
    
          ((ss
    -compound ) 
    | ( 
    |.(
    ar ss).| 
    -tuples_on A)) is A 
    -valued;
    
          then (
    rng f) 
    c= A by 
    RELAT_1:def 19;
    
          then f is
    Function of (n 
    -tuples_on A), A by 
    RELSET_1: 6;
    
          then XF is
    Function of (n 
    -tuples_on A), A by 
    A2,
    Def3;
    
          hence thesis by
    A2,
    FOMODEL2:def 2;
    
        end;
    
      end;
    
    end
    
    definition
    
      let S, X;
    
      :: 
    
    FOMODEL3:def4
    
      func (S,X)
    
    -freeInterpreter -> 
    Function means 
    
      :
    
    Def4: ( 
    dom it ) 
    = ( 
    OwnSymbolsOf S) & for s be 
    own  
    Element of S holds (it 
    . s) 
    = (X 
    -freeInterpreter s); 
    
      existence
    
      proof
    
        set O = (
    OwnSymbolsOf S), SS = ( 
    AllSymbolsOf S); 
    
        defpred
    
    P[
    object, 
    object] means for s be
    own  
    Element of S st $1 
    = s holds $2 
    = (X 
    -freeInterpreter s); 
    
        
    
        
    
    A1: for x,y1,y2 be 
    object st x 
    in O & 
    P[x, y1] &
    P[x, y2] holds y1
    = y2 
    
        proof
    
          let x,y1,y2 be
    object;
    
          assume x
    in O; 
    
          then
    
          reconsider s = x as
    own  
    Element of S by 
    FOMODEL1:def 19;
    
          assume
    P[x, y1];
    
          then
    
          
    
    A2: y1 
    = (X 
    -freeInterpreter s); 
    
          assume
    P[x, y2];
    
          hence thesis by
    A2;
    
        end;
    
        
    
        
    
    A3: for x be 
    object st x 
    in O holds ex y be 
    object st 
    P[x, y]
    
        proof
    
          let x be
    object;
    
          assume x
    in O; 
    
          then
    
          reconsider s = x as
    own  
    Element of S by 
    FOMODEL1:def 19;
    
          take yy = (X
    -freeInterpreter s); 
    
          thus for ss be
    own  
    Element of S st x 
    = ss holds yy 
    = (X 
    -freeInterpreter ss); 
    
        end;
    
        consider f be
    Function such that 
    
        
    
    A4: ( 
    dom f) 
    = O & for x be 
    object st x 
    in O holds 
    P[x, (f
    . x)] from 
    FUNCT_1:sch 2(
    A1,
    A3);
    
        take f;
    
        thus (
    dom f) 
    = O by 
    A4;
    
        thus for s be
    own  
    Element of S holds (f 
    . s) 
    = (X 
    -freeInterpreter s) by 
    A4,
    FOMODEL1:def 19;
    
      end;
    
      uniqueness
    
      proof
    
        set O = (
    OwnSymbolsOf S), SS = ( 
    AllSymbolsOf S); 
    
        let IT1,IT2 be
    Function;
    
        assume
    
        
    
    A5: ( 
    dom IT1) 
    = O & for s be 
    own  
    Element of S holds (IT1 
    . s) 
    = (X 
    -freeInterpreter s); 
    
        assume
    
        
    
    A6: ( 
    dom IT2) 
    = O & for s be 
    own  
    Element of S holds (IT2 
    . s) 
    = (X 
    -freeInterpreter s); 
    
        now
    
          thus (
    dom IT1) 
    = ( 
    dom IT2) by 
    A5,
    A6;
    
          let x be
    object;
    
          assume x
    in ( 
    dom IT1); 
    
          then
    
          reconsider s = x as
    own  
    Element of S by 
    FOMODEL1:def 19,
    A5;
    
          (IT1
    . s) 
    = (X 
    -freeInterpreter s) by 
    A5
    
          .= (IT2
    . s) by 
    A6;
    
          hence (IT1
    . x) 
    = (IT2 
    . x); 
    
        end;
    
        hence thesis by
    FUNCT_1: 2;
    
      end;
    
    end
    
    registration
    
      let S, X;
    
      cluster ((S,X) 
    -freeInterpreter ) -> 
    Function-yielding;
    
      coherence
    
      proof
    
        set O = (
    OwnSymbolsOf S), IT = ((S,X) 
    -freeInterpreter ); 
    
        now
    
          let x be
    object;
    
          assume x
    in ( 
    dom IT); 
    
          then x
    in O by 
    Def4;
    
          then
    
          reconsider s = x as
    own  
    Element of S by 
    FOMODEL1:def 19;
    
          (X
    -freeInterpreter s) is 
    Function;
    
          hence (IT
    . x) is 
    Function by 
    Def4;
    
        end;
    
        hence thesis by
    FUNCOP_1:def 6;
    
      end;
    
    end
    
    definition
    
      let S, X;
    
      :: original:
    -freeInterpreter
    
      redefine
    
      func (S,X)
    
    -freeInterpreter -> 
    Interpreter of S, ( 
    AllTermsOf S) ; 
    
      coherence
    
      proof
    
        set IT = ((S,X)
    -freeInterpreter ), A = ( 
    AllTermsOf S); 
    
        for s be
    own  
    Element of S holds (IT 
    . s) is 
    Interpreter of s, A 
    
        proof
    
          let s be
    own  
    Element of S; 
    
          (X
    -freeInterpreter s) is 
    Interpreter of s, A; 
    
          hence thesis by
    Def4;
    
        end;
    
        hence thesis by
    FOMODEL2:def 3;
    
      end;
    
    end
    
    registration
    
      let S, X;
    
      cluster ((S,X) 
    -freeInterpreter ) -> S, ( 
    AllTermsOf S) 
    -interpreter-like;
    
      coherence ;
    
    end
    
    definition
    
      let S, X;
    
      :: original:
    -freeInterpreter
    
      redefine
    
      func (S,X)
    
    -freeInterpreter -> 
    Element of (( 
    AllTermsOf S) 
    -InterpretersOf S) ; 
    
      coherence
    
      proof
    
        set f = ((S,X)
    -freeInterpreter ), U = ( 
    AllTermsOf S), O = ( 
    OwnSymbolsOf S); 
    
        (
    dom f) 
    c= O by 
    Def4;
    
        then (f
    | O) 
    = f by 
    RELAT_1: 68;
    
        hence thesis by
    FOMODEL2: 2;
    
      end;
    
    end
    
    definition
    
      let X,Y be non
    empty  
    set;
    
      let R be
    Relation of X, Y; 
    
      let n be
    Nat;
    
      :: 
    
    FOMODEL3:def5
    
      func n
    
    -placesOf R -> 
    Relation of (n 
    -tuples_on X), (n 
    -tuples_on Y) equals { 
    [p, q] where p be
    Element of (n 
    -tuples_on X), q be 
    Element of (n 
    -tuples_on Y) : for j be 
    set st j 
    in ( 
    Seg n) holds 
    [(p
    . j), (q 
    . j)] 
    in R }; 
    
      coherence
    
      proof
    
        set Xn = (n
    -tuples_on X), Yn = (n 
    -tuples_on Y), IT = { 
    [p, q] where p be
    Element of (n 
    -tuples_on X), q be 
    Element of (n 
    -tuples_on Y) : for j be 
    set st j 
    in ( 
    Seg n) holds 
    [(p
    . j), (q 
    . j)] 
    in R }; 
    
        now
    
          let x be
    object;
    
          assume x
    in IT; 
    
          then
    
          consider p be
    Element of Xn, q be 
    Element of Yn such that 
    
          
    
    A1: x 
    =  
    [p, q] & for j be
    set st j 
    in ( 
    Seg n) holds 
    [(p
    . j), (q 
    . j)] 
    in R; 
    
          thus x
    in  
    [:Xn, Yn:] by
    A1;
    
        end;
    
        hence thesis by
    TARSKI:def 3;
    
      end;
    
    end
    
    
    
    
    
    Lm4: for n be 
    zero  
    Nat, X,Y be non 
    empty  
    set, R be 
    Relation of X, Y holds (n 
    -placesOf R) 
    =  
    {
    [
    {} , 
    {} ]} 
    
    proof
    
      let n be
    zero  
    Nat;
    
      let X,Y be non
    empty  
    set;
    
      let R be
    Relation of X, Y; 
    
      set RR = (n
    -placesOf R); 
    
      
    
      
    
    A1: 
    [:(n
    -tuples_on X), (n 
    -tuples_on Y):] 
    =  
    [:
    {
    {} }, ( 
    0  
    -tuples_on Y):] by 
    FOMODEL0: 10
    
      .=
    [:
    {
    {} }, 
    {
    {} }:] by 
    FOMODEL0: 10
    
      .=
    {
    [
    {} , 
    {} ]} by 
    ZFMISC_1: 29;
    
      
    {}  
    in  
    {
    {} } by 
    TARSKI:def 1;
    
      then
    
      reconsider p =
    {} as 
    Element of (n 
    -tuples_on X) by 
    FOMODEL0: 10;
    
      
    {}  
    in  
    {
    {} } by 
    TARSKI:def 1;
    
      then
    
      reconsider q =
    {} as 
    Element of (n 
    -tuples_on Y) by 
    FOMODEL0: 10;
    
      for j be
    set st j 
    in ( 
    Seg  
    0 ) holds 
    [(p
    . j), (q 
    . j)] 
    in R; 
    
      then
    [p, q]
    in RR; 
    
      then
    {
    [
    {} , 
    {} ]} 
    c= RR by 
    ZFMISC_1: 31;
    
      hence RR
    =  
    {
    [
    {} , 
    {} ]} by 
    A1;
    
    end;
    
    registration
    
      let X,Y be non
    empty  
    set;
    
      let R be
    total  
    Relation of X, Y; 
    
      let n be non
    zero  
    Nat;
    
      cluster (n 
    -placesOf R) -> 
    total;
    
      coherence
    
      proof
    
        set RR = (n
    -placesOf R), XX = (n 
    -tuples_on X); 
    
        
    
        
    
    A1: ( 
    dom R) 
    = X by 
    PARTFUN1:def 2;
    
        reconsider nn = n as
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
        now
    
          let x be
    object;
    
          assume x
    in XX; 
    
          then
    
          reconsider xx = x as
    Element of XX; 
    
          reconsider xxx = xx as
    Element of ( 
    Funcs (( 
    Seg n),X)) by 
    FOMODEL0: 11;
    
          defpred
    
    P[
    set, 
    set] means
    [(xx
    . $1), $2] 
    in R; 
    
          
    
          
    
    A2: for m st m 
    in ( 
    Seg n) holds ex d be 
    Element of Y st 
    P[m, d]
    
          proof
    
            let m;
    
            assume m
    in ( 
    Seg n); 
    
            then
    
            reconsider mm = m as
    Element of ( 
    Seg n); 
    
            (xxx
    . mm) 
    in ( 
    dom R) by 
    A1;
    
            then
    
            consider y be
    object such that 
    
            
    
    A3: 
    [(xx
    . m), y] 
    in R by 
    XTUPLE_0:def 12;
    
            reconsider yy = y as
    Element of Y by 
    ZFMISC_1: 87,
    A3;
    
            take yy;
    
            thus thesis by
    A3;
    
          end;
    
          consider f be
    FinSequence of Y such that 
    
          
    
    A4: ( 
    len f) 
    = n & for m st m 
    in ( 
    Seg n) holds 
    P[m, (f
    /. m)] from 
    FINSEQ_4:sch 1(
    A2);
    
          reconsider ff = f as
    Element of (nn 
    -tuples_on Y) by 
    FINSEQ_2: 133,
    A4;
    
          reconsider fff = ff as
    Element of ( 
    Funcs (( 
    Seg nn),Y)) by 
    FOMODEL0: 11;
    
          
    
          
    
    A5: ( 
    dom fff) 
    = ( 
    Seg nn) by 
    FUNCT_2:def 1;
    
          now
    
            let j be
    set;
    
            assume
    
            
    
    A6: j 
    in ( 
    Seg n); 
    
            then
    
            reconsider jj = j as
    Element of 
    NAT ; 
    
            jj
    in ( 
    dom ff) & 
    P[jj, (f
    /. jj)] by 
    A6,
    A4,
    A5;
    
            hence
    [(xx
    . j), (ff 
    . j)] 
    in R by 
    PARTFUN1:def 6;
    
          end;
    
          then
    [xx, ff]
    in RR; 
    
          hence x
    in ( 
    dom RR) by 
    XTUPLE_0:def 12;
    
        end;
    
        then XX
    c= ( 
    dom RR) & ( 
    dom RR) 
    c= XX by 
    TARSKI:def 3;
    
        hence thesis by
    PARTFUN1:def 2,
    XBOOLE_0:def 10;
    
      end;
    
    end
    
    registration
    
      let X,Y be non
    empty  
    set;
    
      let R be
    total  
    Relation of X, Y; 
    
      let n be
    Nat;
    
      cluster (n 
    -placesOf R) -> 
    total;
    
      coherence
    
      proof
    
        set RR = (n
    -placesOf R); 
    
        per cases ;
    
          suppose n is non
    zero;
    
          then
    
          reconsider nn = n as non
    zero  
    Nat;
    
          (nn
    -placesOf R) is 
    total;
    
          hence thesis;
    
        end;
    
          suppose n is
    zero;
    
          then
    
          reconsider nn = n as
    zero  
    Nat;
    
          (nn
    -placesOf R) 
    =  
    {
    [
    {} , 
    {} ]} by 
    Lm4;
    
          
    
          then (
    dom RR) 
    =  
    {
    {} } by 
    RELAT_1: 9
    
          .= (nn
    -tuples_on X) by 
    FOMODEL0: 10;
    
          hence thesis by
    PARTFUN1:def 2;
    
        end;
    
      end;
    
    end
    
    registration
    
      let X,Y be non
    empty  
    set;
    
      let R be
    Relation of X, Y; 
    
      let n be
    zero  
    Nat;
    
      cluster (n 
    -placesOf R) -> 
    Function-like;
    
      coherence
    
      proof
    
        set IT = (n
    -placesOf R); 
    
        reconsider f =
    {
    [
    {} , 
    {} ]} as 
    Function;
    
        now
    
          let x be
    object;
    
          assume x
    in IT; 
    
          then
    
          consider p be
    Element of (n 
    -tuples_on X), q be 
    Element of (n 
    -tuples_on Y) such that 
    
          
    
    A1: x 
    =  
    [p, q] & for j be
    set st j 
    in ( 
    Seg n) holds 
    [(p
    . j), (q 
    . j)] 
    in R; 
    
          p
    =  
    {} & q 
    =  
    {} ; 
    
          hence x
    in f by 
    TARSKI:def 1,
    A1;
    
        end;
    
        then
    
        reconsider ITT = IT as
    Subset of f by 
    TARSKI:def 3;
    
        ITT is
    Function-like;
    
        hence thesis;
    
      end;
    
    end
    
    definition
    
      let X be non
    empty  
    set;
    
      let R be
    Relation of X; 
    
      let n be
    Nat;
    
      :: 
    
    FOMODEL3:def6
    
      func n
    
    -placesOf R -> 
    Relation of (n 
    -tuples_on X) equals (n 
    -placesOf R qua 
    Relation of X, X); 
    
      coherence ;
    
    end
    
    definition
    
      let X be non
    empty  
    set;
    
      let R be
    Relation of X; 
    
      let n be
    zero  
    Nat;
    
      :: original:
    -placesOf
    
      redefine
    
      :: 
    
    FOMODEL3:def7
    
      func n
    
    -placesOf R -> 
    Relation of (n 
    -tuples_on X) equals 
    {
    [
    {} , 
    {} ]}; 
    
      coherence ;
    
      compatibility by
    Lm4;
    
    end
    
    
    
    
    
    Lm5: for n be non 
    zero  
    Nat, X be non 
    empty  
    set, x,y be 
    Element of ( 
    Funcs (( 
    Seg n),X)), R be 
    Relation of X holds ( 
    [x, y]
    in (n 
    -placesOf R) iff for j be 
    Element of ( 
    Seg n) holds 
    [(x
    . j), (y 
    . j)] 
    in R) 
    
    proof
    
      let n be non
    zero  
    Nat, X be non 
    empty  
    set, x,y be 
    Element of ( 
    Funcs (( 
    Seg n),X)), R be 
    Relation of X; 
    
      reconsider xa = x as
    Element of (n 
    -tuples_on X) by 
    FINSEQ_2: 93;
    
      reconsider ya = y as
    Element of (n 
    -tuples_on X) by 
    FINSEQ_2: 93;
    
      thus
    [x, y]
    in (n 
    -placesOf R) implies for j be 
    Element of ( 
    Seg n) holds 
    [(x
    . j), (y 
    . j)] 
    in R 
    
      proof
    
        assume
    [x, y]
    in (n 
    -placesOf R); 
    
        then
    
        consider p,q be
    Element of (n 
    -tuples_on X) such that 
    
        
    
    A1: 
    [x, y]
    =  
    [p, q] & for j be
    set st j 
    in ( 
    Seg n) holds 
    [(p
    . j), (q 
    . j)] 
    in R; 
    
        x
    = p & y 
    = q by 
    A1,
    XTUPLE_0: 1;
    
        hence thesis by
    A1;
    
      end;
    
      thus (for j be
    Element of ( 
    Seg n) holds 
    [(x
    . j), (y 
    . j)] 
    in R) implies 
    [x, y]
    in (n 
    -placesOf R) 
    
      proof
    
        assume for j be
    Element of ( 
    Seg n) holds 
    [(x
    . j), (y 
    . j)] 
    in R; 
    
        then for j be
    set st j 
    in ( 
    Seg n) holds 
    [(xa
    . j), (ya 
    . j)] 
    in R; 
    
        hence thesis;
    
      end;
    
    end;
    
    
    
    
    
    Lm6: for n be non 
    zero  
    Nat, X be non 
    empty  
    set, r be 
    total
    symmetric  
    Relation of X holds (n 
    -placesOf r) is 
    symmetric
    total  
    Relation of (n 
    -tuples_on X) 
    
    proof
    
      let n be non
    zero  
    Nat, X be non 
    empty  
    set, r be 
    total
    symmetric  
    Relation of X; 
    
      
    
      
    
    A1: ( 
    field r) 
    = X by 
    ORDERS_1: 12;
    
      set R = (n
    -placesOf r); 
    
      
    
      
    
    A2: ( 
    field R) 
    = (n 
    -tuples_on X) by 
    ORDERS_1: 12;
    
      now
    
        let x,y be
    object;
    
        assume x
    in (n 
    -tuples_on X); 
    
        then
    
        reconsider xa = x as
    Element of ( 
    Funcs (( 
    Seg n),X)) by 
    FINSEQ_2: 93;
    
        assume y
    in (n 
    -tuples_on X); 
    
        then
    
        reconsider ya = y as
    Element of ( 
    Funcs (( 
    Seg n),X)) by 
    FINSEQ_2: 93;
    
        assume
    
        
    
    A3: 
    [x, y]
    in R; 
    
        now
    
          let j be
    Element of ( 
    Seg n); 
    
          (xa
    . j) 
    in X & (ya 
    . j) 
    in X & 
    [(xa
    . j), (ya 
    . j)] 
    in r by 
    Lm5,
    A3;
    
          hence
    [(ya
    . j), (xa 
    . j)] 
    in r by 
    RELAT_2:def 11,
    A1,
    RELAT_2:def 3;
    
        end;
    
        hence
    [y, x]
    in R by 
    Lm5;
    
      end;
    
      hence thesis by
    RELAT_2:def 3,
    RELAT_2:def 11,
    A2;
    
    end;
    
    
    
    
    
    Lm7: for n be non 
    zero  
    Nat, X be non 
    empty  
    set, r be 
    transitive
    total  
    Relation of X holds (n 
    -placesOf r) is 
    transitive
    total  
    Relation of (n 
    -tuples_on X) 
    
    proof
    
      let n be non
    zero  
    Nat, X be non 
    empty  
    set, r be 
    transitive
    total  
    Relation of X; 
    
      
    
      
    
    A1: ( 
    field r) 
    = X by 
    ORDERS_1: 12;
    
      set R = (n
    -placesOf r); 
    
      
    
      
    
    A2: ( 
    field R) 
    = (n 
    -tuples_on X) by 
    ORDERS_1: 12;
    
      now
    
        let x,y,z be
    object;
    
        assume x
    in (n 
    -tuples_on X); 
    
        then
    
        reconsider xa = x as
    Element of ( 
    Funcs (( 
    Seg n),X)) by 
    FINSEQ_2: 93;
    
        assume y
    in (n 
    -tuples_on X); 
    
        then
    
        reconsider ya = y as
    Element of ( 
    Funcs (( 
    Seg n),X)) by 
    FINSEQ_2: 93;
    
        assume z
    in (n 
    -tuples_on X); 
    
        then
    
        reconsider za = z as
    Element of ( 
    Funcs (( 
    Seg n),X)) by 
    FINSEQ_2: 93;
    
        assume
    
        
    
    A3: 
    [x, y]
    in R; 
    
        assume
    
        
    
    A4: 
    [y, z]
    in R; 
    
        now
    
          let j be
    Element of ( 
    Seg n); 
    
          (xa
    . j) 
    in X & (ya 
    . j) 
    in X & (za 
    . j) 
    in X & 
    [(xa
    . j), (ya 
    . j)] 
    in r & 
    [(ya
    . j), (za 
    . j)] 
    in r by 
    Lm5,
    A3,
    A4;
    
          hence
    [(xa
    . j), (za 
    . j)] 
    in r by 
    A1,
    RELAT_2:def 8,
    RELAT_2:def 16;
    
        end;
    
        hence
    [x, z]
    in R by 
    Lm5;
    
      end;
    
      hence thesis by
    RELAT_2:def 8,
    RELAT_2:def 16,
    A2;
    
    end;
    
    
    
    
    
    Lm8: for n be 
    zero  
    Nat, X be non 
    empty  
    set, r be 
    Relation of X holds (n 
    -placesOf r) is 
    total
    symmetric
    transitive
    
    proof
    
      let n be
    zero  
    Nat;
    
      let X be non
    empty  
    set;
    
      let r be
    Relation of X; 
    
      set R = (n
    -placesOf r); 
    
      now
    
        let x be
    object;
    
        assume x
    in (n 
    -tuples_on X); 
    
        then x
    =  
    {} ; 
    
        then
    [x, x]
    in R by 
    TARSKI:def 1;
    
        hence ex y be
    object st 
    [x, y]
    in R; 
    
      end;
    
      then (
    dom R) 
    = (n 
    -tuples_on X) by 
    RELSET_1: 9;
    
      hence R is
    total by 
    PARTFUN1:def 2;
    
      then
    
      
    
    A1: ( 
    field R) 
    = (n 
    -tuples_on X) by 
    ORDERS_1: 12;
    
      thus R is
    symmetric
    
      proof
    
        let x,y be
    object;
    
        assume x
    in ( 
    field R); 
    
        then
    
        
    
    A2: x 
    =  
    {} by 
    A1;
    
        assume y
    in ( 
    field R); 
    
        then
    
        
    
    A3: y 
    =  
    {} by 
    A1;
    
        assume
    [x, y]
    in R; 
    
        thus
    [y, x]
    in R by 
    TARSKI:def 1,
    A2,
    A3;
    
      end;
    
      
    
      
    
    A4: for x,y,z be 
    object st x 
    in (n 
    -tuples_on X) & y 
    in (n 
    -tuples_on X) & z 
    in (n 
    -tuples_on X) & 
    [x, y]
    in R & 
    [y, z]
    in R holds 
    [x, z]
    in R; 
    
      thus thesis by
    A4,
    A1,
    RELAT_2:def 8;
    
    end;
    
    registration
    
      let X be non
    empty  
    set;
    
      let R be
    symmetric
    total  
    Relation of X; 
    
      let n;
    
      cluster (n 
    -placesOf R) -> 
    total;
    
      coherence ;
    
    end
    
    registration
    
      let X be non
    empty  
    set;
    
      let R be
    symmetric
    total  
    Relation of X; 
    
      let n;
    
      cluster (n 
    -placesOf R) -> 
    symmetric;
    
      coherence
    
      proof
    
        per cases ;
    
          suppose n is
    zero;
    
          hence thesis by
    Lm8;
    
        end;
    
          suppose not n is
    zero;
    
          hence thesis by
    Lm6;
    
        end;
    
      end;
    
    end
    
    registration
    
      let X be non
    empty  
    set;
    
      let R be
    symmetric
    total  
    Relation of X; 
    
      let n;
    
      cluster (n 
    -placesOf R) -> 
    symmetric;
    
      coherence ;
    
    end
    
    registration
    
      let X be non
    empty  
    set;
    
      let R be
    transitive
    total  
    Relation of X; 
    
      let n;
    
      cluster (n 
    -placesOf R) -> 
    transitive;
    
      coherence
    
      proof
    
        per cases ;
    
          suppose n is
    zero;
    
          hence thesis by
    Lm8;
    
        end;
    
          suppose not n is
    zero;
    
          hence thesis by
    Lm7;
    
        end;
    
      end;
    
    end
    
    registration
    
      let X be non
    empty  
    set;
    
      let R be
    Equivalence_Relation of X; 
    
      let n;
    
      cluster (n 
    -placesOf R) -> 
    total;
    
      coherence ;
    
    end
    
    definition
    
      let X,Y be non
    empty  
    set;
    
      let E be
    Equivalence_Relation of X; 
    
      let F be
    Equivalence_Relation of Y; 
    
      let R be
    Relation;
    
      :: 
    
    FOMODEL3:def8
    
      func R
    
    quotient (E,F) -> 
    set equals { 
    [e, f] where e be
    Element of ( 
    Class E), f be 
    Element of ( 
    Class F) : ex x,y be 
    set st x 
    in e & y 
    in f & 
    [x, y]
    in R }; 
    
      coherence ;
    
    end
    
    definition
    
      let X,Y be non
    empty  
    set;
    
      let E be
    Equivalence_Relation of X; 
    
      let F be
    Equivalence_Relation of Y; 
    
      let R be
    Relation;
    
      :: original:
    quotient
    
      redefine
    
      func R
    
    quotient (E,F) -> 
    Relation of ( 
    Class E), ( 
    Class F) ; 
    
      coherence
    
      proof
    
        set IT = (R
    quotient (E,F)); 
    
        now
    
          let x be
    object;
    
          assume x
    in IT; 
    
          then
    
          consider e be
    Element of ( 
    Class E), f be 
    Element of ( 
    Class F) such that 
    
          
    
    A1: x 
    =  
    [e, f] & ex x,y be
    set st x 
    in e & y 
    in f & 
    [x, y]
    in R; 
    
          thus x
    in  
    [:(
    Class E), ( 
    Class F):] by 
    A1;
    
        end;
    
        hence thesis by
    TARSKI:def 3;
    
      end;
    
    end
    
    definition
    
      let E be
    Relation;
    
      let F be
    Relation;
    
      let f be
    Function;
    
      :: 
    
    FOMODEL3:def9
    
      attr f is E,F
    
    -respecting means 
    
      :
    
    Def9: for x1,x2 be 
    set holds ( 
    [x1, x2]
    in E) implies 
    [(f
    . x1), (f 
    . x2)] 
    in F; 
    
    end
    
    definition
    
      let S, U;
    
      let s be
    ofAtomicFormula  
    Element of S; 
    
      let E be
    Relation of U; 
    
      let f be
    Interpreter of s, U; 
    
      :: 
    
    FOMODEL3:def10
    
      attr f is E
    
    -respecting means 
    
      :
    
    Def10: f is ( 
    |.(
    ar s).| 
    -placesOf E), E 
    -respecting if not s is 
    relational
    
      otherwise f is (
    |.(
    ar s).| 
    -placesOf E), ( 
    id  
    BOOLEAN ) 
    -respecting;
    
      consistency ;
    
    end
    
    registration
    
      let X,Y be non
    empty  
    set;
    
      let E be
    Equivalence_Relation of X; 
    
      let F be
    Equivalence_Relation of Y; 
    
      cluster E, F 
    -respecting for 
    Function of X, Y; 
    
      existence
    
      proof
    
        consider y be
    object such that 
    
        
    
    A1: y 
    in Y by 
    XBOOLE_0: 7;
    
        set R = (X
    --> y); 
    
        
    {y}
    c= Y & ( 
    dom R) 
    = X & ( 
    rng R) 
    c=  
    {y} by
    ZFMISC_1: 31,
    A1;
    
        then
    
        reconsider f = R as
    Function of X, Y by 
    FUNCT_2: 2;
    
        now
    
          let x1,x2 be
    set;
    
          assume
    [x1, x2]
    in E; 
    
          then x1
    in X & x2 
    in X by 
    ZFMISC_1: 87;
    
          then
    
          
    
    A2: (f 
    . x1) 
    = y & (f 
    . x2) 
    = y by 
    FUNCOP_1: 7;
    
          thus
    [(f
    . x1), (f 
    . x2)] 
    in F by 
    A2,
    A1,
    EQREL_1: 5;
    
        end;
    
        then f is E, F
    -respecting;
    
        hence thesis;
    
      end;
    
    end
    
    registration
    
      let S, U;
    
      let s be
    ofAtomicFormula  
    Element of S; 
    
      let E be
    Equivalence_Relation of U; 
    
      cluster E 
    -respecting for 
    Interpreter of s, U; 
    
      existence
    
      proof
    
        set n =
    |.(
    ar s).|; 
    
        reconsider EE = (n
    -placesOf E) as 
    Equivalence_Relation of (n 
    -tuples_on U); 
    
        set f = the (n
    -placesOf E), E 
    -respecting  
    Function of (n 
    -tuples_on U), U; 
    
        set g = the (n
    -placesOf E), ( 
    id  
    BOOLEAN ) 
    -respecting  
    Function of (n 
    -tuples_on U), 
    BOOLEAN ; 
    
        per cases ;
    
          suppose
    
          
    
    A1: s is 
    relational;
    
          then
    
          reconsider gg = g as
    Interpreter of s, U by 
    FOMODEL2:def 2;
    
          gg is E
    -respecting by 
    Def10,
    A1;
    
          hence thesis;
    
        end;
    
          suppose
    
          
    
    A2: not s is 
    relational;
    
          then
    
          reconsider ff = f as
    Interpreter of s, U by 
    FOMODEL2:def 2;
    
          ff is E
    -respecting by 
    Def10,
    A2;
    
          hence thesis;
    
        end;
    
      end;
    
    end
    
    registration
    
      let X,Y be non
    empty  
    set;
    
      let E be
    Equivalence_Relation of X; 
    
      let F be
    Equivalence_Relation of Y; 
    
      cluster E, F 
    -respecting for 
    Function;
    
      existence
    
      proof
    
        take the E, F
    -respecting  
    Function of X, Y; 
    
        thus thesis;
    
      end;
    
    end
    
    definition
    
      let X be non
    empty  
    set;
    
      let E be
    Equivalence_Relation of X; 
    
      let n;
    
      :: original:
    -placesOf
    
      redefine
    
      func n
    
    -placesOf E -> 
    Equivalence_Relation of (n 
    -tuples_on X) ; 
    
      coherence ;
    
    end
    
    definition
    
      let X be non
    empty  
    set, x be 
    Element of ( 
    SmallestPartition X); 
    
      :: 
    
    FOMODEL3:def11
    
      func
    
    DeTrivial (x) -> 
    Element of X means 
    
      :
    
    Def11: x 
    =  
    {it }; 
    
      existence
    
      proof
    
        set XX = (
    SmallestPartition X); 
    
        consider y be
    object such that 
    
        
    
    A1: x 
    =  
    {y} & y
    in X by 
    RELSET_2: 1;
    
        reconsider yy = y as
    Element of X by 
    A1;
    
        take yy;
    
        thus thesis by
    A1;
    
      end;
    
      uniqueness by
    ZFMISC_1: 3;
    
    end
    
    definition
    
      let X be non
    empty  
    set;
    
      :: 
    
    FOMODEL3:def12
    
      func
    
    peeler (X) -> 
    Function of ( 
    SmallestPartition X), X means 
    
      :
    
    Def12: for x be 
    Element of ( 
    SmallestPartition X) holds (it 
    . x) 
    = ( 
    DeTrivial x); 
    
      existence
    
      proof
    
        deffunc
    
    F(
    Element of ( 
    SmallestPartition X)) = ( 
    DeTrivial $1); 
    
        consider f be
    Function of ( 
    SmallestPartition X), X such that 
    
        
    
    A1: for x be 
    Element of ( 
    SmallestPartition X) holds (f 
    . x) 
    =  
    F(x) from
    FUNCT_2:sch 4;
    
        take f;
    
        thus thesis by
    A1;
    
      end;
    
      uniqueness
    
      proof
    
        let IT1,IT2 be
    Function of ( 
    SmallestPartition X), X; 
    
        assume that
    
        
    
    A2: for x be 
    Element of ( 
    SmallestPartition X) holds (IT1 
    . x) 
    = ( 
    DeTrivial x) and 
    
        
    
    A3: for x be 
    Element of ( 
    SmallestPartition X) holds (IT2 
    . x) 
    = ( 
    DeTrivial x); 
    
        now
    
          let x be
    Element of ( 
    SmallestPartition X); 
    
          
    
          thus (IT1
    . x) 
    = ( 
    DeTrivial x) by 
    A2
    
          .= (IT2
    . x) by 
    A3;
    
        end;
    
        hence thesis by
    FUNCT_2: 63;
    
      end;
    
    end
    
    registration
    
      let X be non
    empty  
    set, EqR be 
    Equivalence_Relation of X; 
    
      cluster -> non 
    empty for 
    Element of ( 
    Class EqR); 
    
      coherence ;
    
    end
    
    
    
    
    
    Lm9: for X be non 
    empty  
    set, E be 
    Equivalence_Relation of X, x,y be 
    set, C be 
    Element of ( 
    Class E) st x 
    in C & y 
    in C holds 
    [x, y]
    in E 
    
    proof
    
      let X be non
    empty  
    set, E be 
    Equivalence_Relation of X, x,y be 
    set, C be 
    Element of ( 
    Class E); 
    
      assume
    
      
    
    A1: x 
    in C & y 
    in C; 
    
      reconsider EE = E as
    transitive  
    Tolerance of X; 
    
      consider xe be
    object such that 
    
      
    
    A2: xe 
    in X & C 
    = ( 
    Class (E,xe)) by 
    EQREL_1:def 3;
    
      thus thesis by
    EQREL_1: 22,
    A1,
    A2;
    
    end;
    
    
    
    
    
    Lm10: for X be non 
    empty  
    set, E be 
    Equivalence_Relation of X, C1,C2 be 
    Element of ( 
    Class E), x1,x2 be 
    set st x1 
    in C1 & x2 
    in C2 & 
    [x1, x2]
    in E holds C1 
    = C2 
    
    proof
    
      let X be non
    empty  
    set, E be 
    Equivalence_Relation of X, C1,C2 be 
    Element of ( 
    Class E), x1,x2 be 
    set;
    
      reconsider EE = E as
    Tolerance of X; 
    
      assume
    
      
    
    A1: x1 
    in C1; 
    
      then
    
      reconsider x11 = x1 as
    Element of X; 
    
      x11
    in X; 
    
      then x1
    in ( 
    Class (EE,x1)) by 
    EQREL_1: 20;
    
      then
    
      
    
    A2: C1 
    = ( 
    EqClass (E,x11)) by 
    EQREL_1:def 4,
    A1,
    XBOOLE_0: 3;
    
      assume
    
      
    
    A3: x2 
    in C2; 
    
      then
    
      reconsider x22 = x2 as
    Element of X; 
    
      x22
    in X; 
    
      then x2
    in ( 
    Class (EE,x2)) by 
    EQREL_1: 20;
    
      then
    
      
    
    A4: C2 
    = ( 
    EqClass (E,x22)) by 
    EQREL_1:def 4,
    A3,
    XBOOLE_0: 3;
    
      assume
    [x1, x2]
    in E; 
    
      hence thesis by
    A2,
    A4,
    EQREL_1: 35;
    
    end;
    
    registration
    
      let X,Y be non
    empty  
    set;
    
      let E be
    Equivalence_Relation of X; 
    
      let F be
    Equivalence_Relation of Y; 
    
      let f be E, F
    -respecting  
    Function;
    
      cluster (f 
    quotient (E,F)) -> 
    Function-like;
    
      coherence
    
      proof
    
        set IT = (f
    quotient (E,F)); 
    
        reconsider P = (
    Class E) as 
    a_partition of X; 
    
        reconsider EEE = E as
    Relation of X, X; 
    
        now
    
          let e,f1,f2 be
    object;
    
          assume
    [e, f1]
    in IT; 
    
          then
    
          consider ee1 be
    Element of ( 
    Class E), ff1 be 
    Element of ( 
    Class F) such that 
    
          
    
    A1: 
    [e, f1]
    =  
    [ee1, ff1] & ex x1,y1 be
    set st x1 
    in ee1 & y1 
    in ff1 & 
    [x1, y1]
    in f; 
    
          consider x1,y1 be
    set such that 
    
          
    
    A2: x1 
    in ee1 & y1 
    in ff1 & 
    [x1, y1]
    in f by 
    A1;
    
          assume
    [e, f2]
    in IT; 
    
          then
    
          consider ee2 be
    Element of ( 
    Class E), ff2 be 
    Element of ( 
    Class F) such that 
    
          
    
    A3: 
    [e, f2]
    =  
    [ee2, ff2] & ex x2,y2 be
    set st x2 
    in ee2 & y2 
    in ff2 & 
    [x2, y2]
    in f; 
    
          
    
          
    
    A4: ee1 
    = e & ee2 
    = e & ff1 
    = f1 & ff2 
    = f2 by 
    A1,
    A3,
    XTUPLE_0: 1;
    
          consider x2,y2 be
    set such that 
    
          
    
    A5: x2 
    in ee2 & y2 
    in ff2 & 
    [x2, y2]
    in f by 
    A3;
    
          
    
          
    
    A6: 
    [x1, x2]
    in E by 
    Lm9,
    A2,
    A5,
    A4;
    
          y2
    = (f 
    . x2) & y1 
    = (f 
    . x1) by 
    A5,
    A2,
    FUNCT_1: 1;
    
          then
    [y1, y2]
    in F by 
    Def9,
    A6;
    
          hence f1
    = f2 by 
    A4,
    A2,
    A5,
    Lm10;
    
        end;
    
        hence thesis by
    FUNCT_1:def 1;
    
      end;
    
    end
    
    registration
    
      let X,Y be non
    empty  
    set;
    
      let E be
    Equivalence_Relation of X; 
    
      let F be
    Equivalence_Relation of Y; 
    
      let R be
    total  
    Relation of X, Y; 
    
      cluster (R 
    quotient (E,F)) -> 
    total;
    
      coherence
    
      proof
    
        set RR = (R
    quotient (E,F)); 
    
        reconsider Q = (
    Class F) as 
    a_partition of Y; 
    
        now
    
          let e be
    object;
    
          reconsider ee = e as
    set by 
    TARSKI: 1;
    
          assume e
    in ( 
    Class E); 
    
          then
    
          reconsider ee = e as
    Element of ( 
    Class E); 
    
          set xx = the
    Element of ee; 
    
          reconsider x = xx as
    Element of X; 
    
          (
    dom R) 
    = X by 
    PARTFUN1:def 2;
    
          then
    
          consider y be
    object such that 
    
          
    
    A1: 
    [x, y]
    in R by 
    XTUPLE_0:def 12;
    
          reconsider yy = y as
    Element of Y by 
    ZFMISC_1: 87,
    A1;
    
          reconsider f = (
    EqClass (yy,Q)) as 
    Element of ( 
    Class F); 
    
          
    [e, f]
    =  
    [e, f] & x
    in ee & y 
    in f & 
    [x, y]
    in R by 
    A1,
    EQREL_1:def 6;
    
          then
    [e, f]
    in RR; 
    
          hence e
    in ( 
    dom RR) by 
    XTUPLE_0:def 12;
    
        end;
    
        then (
    Class E) 
    c= ( 
    dom RR) by 
    TARSKI:def 3;
    
        hence thesis by
    PARTFUN1:def 2,
    XBOOLE_0:def 10;
    
      end;
    
    end
    
    definition
    
      let X,Y be non
    empty  
    set;
    
      let E be
    Equivalence_Relation of X; 
    
      let F be
    Equivalence_Relation of Y; 
    
      let f be E, F
    -respecting  
    Function of X, Y; 
    
      :: original:
    quotient
    
      redefine
    
      func f
    
    quotient (E,F) -> 
    Function of ( 
    Class E), ( 
    Class F) ; 
    
      coherence
    
      proof
    
        thus (f
    quotient (E,F)) is 
    Function of ( 
    Class E), ( 
    Class F); 
    
      end;
    
    end
    
    definition
    
      let X be non
    empty  
    set, E be 
    Equivalence_Relation of X; 
    
      :: 
    
    FOMODEL3:def13
    
      func E
    
    -class -> 
    Function of X, ( 
    Class E) means 
    
      :
    
    Def13: for x be 
    Element of X holds (it 
    . x) 
    = ( 
    EqClass (E,x)); 
    
      existence
    
      proof
    
        deffunc
    
    F(
    Element of X) = ( 
    EqClass (E,$1)); 
    
        consider f be
    Function of X, ( 
    Class E) such that 
    
        
    
    A1: for x be 
    Element of X holds (f 
    . x) 
    =  
    F(x) from
    FUNCT_2:sch 4;
    
        take f;
    
        thus thesis by
    A1;
    
      end;
    
      uniqueness
    
      proof
    
        let IT1,IT2 be
    Function of X, ( 
    Class E); 
    
        assume
    
        
    
    A2: for x be 
    Element of X holds (IT1 
    . x) 
    = ( 
    EqClass (E,x)); 
    
        assume
    
        
    
    A3: for x be 
    Element of X holds (IT2 
    . x) 
    = ( 
    EqClass (E,x)); 
    
        now
    
          let x be
    Element of X; 
    
          
    
          thus (IT1
    . x) 
    = ( 
    EqClass (E,x)) by 
    A2
    
          .= (IT2
    . x) by 
    A3;
    
        end;
    
        hence thesis by
    FUNCT_2: 63;
    
      end;
    
    end
    
    registration
    
      let X be non
    empty  
    set, E be 
    Equivalence_Relation of X; 
    
      cluster (E 
    -class ) -> 
    onto;
    
      coherence
    
      proof
    
        set P = (E
    -class ); 
    
        now
    
          let c be
    object;
    
          assume
    
          
    
    A1: c 
    in ( 
    Class E); 
    
          then
    
          reconsider cc = c as
    Subset of X; 
    
          consider x be
    object such that 
    
          
    
    A2: x 
    in X & cc 
    = ( 
    Class (E,x)) by 
    EQREL_1:def 3,
    A1;
    
          reconsider xx = x as
    Element of X by 
    A2;
    
          (P
    . xx) 
    = cc by 
    A2,
    Def13;
    
          hence c
    in ( 
    rng P) by 
    FUNCT_2: 4;
    
        end;
    
        then (
    Class E) 
    c= ( 
    rng P) & ( 
    rng P) 
    c= ( 
    Class E) by 
    RELAT_1:def 19,
    TARSKI:def 3;
    
        hence thesis by
    FUNCT_2:def 3,
    XBOOLE_0:def 10;
    
      end;
    
    end
    
    registration
    
      let X,Y be non
    empty  
    set;
    
      cluster 
    onto for 
    Relation of X, Y; 
    
      existence
    
      proof
    
        
    [:X, Y:]
    c=  
    [:X, Y:];
    
        then
    
        reconsider R =
    [:X, Y:] as
    Relation of X, Y; 
    
        (
    rng R) 
    = Y; 
    
        then R is
    onto by 
    FUNCT_2:def 3;
    
        hence thesis;
    
      end;
    
    end
    
    registration
    
      let Y be non
    empty  
    set;
    
      cluster 
    onto for Y 
    -valued  
    Relation;
    
      existence
    
      proof
    
        take the
    onto  
    Relation of Y, Y; 
    
        thus thesis;
    
      end;
    
    end
    
    registration
    
      let Y be non
    empty  
    set, R be Y 
    -valued  
    Relation;
    
      cluster (R 
    ~ ) -> Y 
    -defined;
    
      coherence
    
      proof
    
        (
    rng R) 
    c= Y & ( 
    dom (R 
    ~ )) 
    = ( 
    rng R) by 
    RELAT_1: 20;
    
        hence thesis by
    RELAT_1:def 18;
    
      end;
    
    end
    
    registration
    
      let Y be non
    empty  
    set, R be 
    ontoY
    -valued  
    Relation;
    
      cluster (R 
    ~ ) -> 
    total;
    
      coherence
    
      proof
    
        (
    dom (R 
    ~ )) 
    = ( 
    rng R) by 
    RELAT_1: 20
    
        .= Y by
    FUNCT_2:def 3;
    
        hence thesis by
    PARTFUN1:def 2;
    
      end;
    
    end
    
    registration
    
      let X,Y be non
    empty  
    set, R be 
    onto  
    Relation of X, Y; 
    
      cluster (R 
    ~ ) -> 
    total;
    
      coherence ;
    
    end
    
    registration
    
      let Y be non
    empty  
    set;
    
      let R be
    ontoY
    -valued  
    Relation;
    
      cluster (R 
    ~ ) -> 
    total;
    
      coherence ;
    
    end
    
    
    
    
    
    Lm11: for E be 
    Equivalence_Relation of U, n be non 
    zero  
    Nat holds ((n 
    -placesOf ((E 
    -class ) qua 
    Relation of U, ( 
    Class E) 
    ~ )) 
    * ((n 
    -placesOf E) 
    -class )) is 
    Function-like
    
    proof
    
      let E be
    Equivalence_Relation of U, n be non 
    zero  
    Nat;
    
      set En = (n
    -placesOf E); 
    
      reconsider f1 = (E
    -class ) as 
    Function of U, ( 
    Class E); 
    
      reconsider r1 = (E
    -class ) as 
    Relation of U, ( 
    Class E); 
    
      reconsider r2 = (r1
    ~ ) as 
    Relation of ( 
    Class E), U; 
    
      reconsider r3 = (n
    -placesOf r2) as 
    Relation of (n 
    -tuples_on ( 
    Class E)), (n 
    -tuples_on U); 
    
      reconsider f4 = (En
    -class ) as 
    Function of (n 
    -tuples_on U), ( 
    Class (n 
    -placesOf E)); 
    
      reconsider r4 = f4 as
    Relation of (n 
    -tuples_on U), ( 
    Class (n 
    -placesOf E)); 
    
      now
    
        let x,z1,z2 be
    object;
    
        assume
    
        
    
    A1: 
    [x, z1]
    in (r3 
    * r4) & 
    [x, z2]
    in (r3 
    * r4); 
    
        consider y1 be
    object such that 
    
        
    
    A2: 
    [x, y1]
    in r3 & 
    [y1, z1]
    in r4 by 
    A1,
    RELAT_1:def 8;
    
        consider y2 be
    object such that 
    
        
    
    A3: 
    [x, y2]
    in r3 & 
    [y2, z2]
    in r4 by 
    A1,
    RELAT_1:def 8;
    
        
    
        
    
    A4: (f4 
    . y1) 
    = z1 & (f4 
    . y2) 
    = z2 by 
    FUNCT_1: 1,
    A2,
    A3;
    
        reconsider y11 = y1, y22 = y2 as
    Element of (n 
    -tuples_on U) by 
    ZFMISC_1: 87,
    A2,
    A3;
    
        consider p1 be
    Element of (n 
    -tuples_on ( 
    Class E)), q1 be 
    Element of (n 
    -tuples_on U) such that 
    
        
    
    A5: 
    [x, y1]
    =  
    [p1, q1] & for j be
    set st j 
    in ( 
    Seg n) holds 
    [(p1
    . j), (q1 
    . j)] 
    in r2 by 
    A2;
    
        consider p2 be
    Element of (n 
    -tuples_on ( 
    Class E)), q2 be 
    Element of (n 
    -tuples_on U) such that 
    
        
    
    A6: 
    [x, y2]
    =  
    [p2, q2] & for j be
    set st j 
    in ( 
    Seg n) holds 
    [(p2
    . j), (q2 
    . j)] 
    in r2 by 
    A3;
    
        
    
        
    
    A7: x 
    = p1 & y1 
    = q1 & x 
    = p2 & y2 
    = q2 by 
    XTUPLE_0: 1,
    A5,
    A6;
    
        reconsider q11 = q1 as
    Element of ( 
    Funcs (( 
    Seg n),U)) by 
    FOMODEL0: 11;
    
        reconsider q22 = q2 as
    Element of ( 
    Funcs (( 
    Seg n),U)) by 
    FOMODEL0: 11;
    
        now
    
          let j be
    set;
    
          assume
    
          
    
    A8: j 
    in ( 
    Seg n); 
    
          then
    
          reconsider jj = j as
    Element of ( 
    Seg n); 
    
          
    [(p1
    . j), (q1 
    . j)] 
    in r2 & 
    [(p2
    . j), (q2 
    . j)] 
    in r2 by 
    A5,
    A6,
    A8;
    
          then
    [(q1
    . j), (p1 
    . j)] 
    in f1 & 
    [(q2
    . j), (p2 
    . j)] 
    in f1 by 
    RELAT_1:def 7;
    
          then (f1
    . (q1 
    . jj)) 
    = (p1 
    . jj) & (f1 
    . (q2 
    . jj)) 
    = (p2 
    . jj) by 
    FUNCT_1: 1;
    
          then (
    Class (E,(q11 
    . jj))) 
    = (p1 
    . jj) & ( 
    Class (E,(q22 
    . jj))) 
    = (p2 
    . jj) by 
    Def13;
    
          hence
    [(q1
    . j), (q2 
    . j)] 
    in E by 
    A7,
    EQREL_1: 35;
    
        end;
    
        then
    
        
    
    A9: 
    [y1, y2]
    in (n 
    -placesOf E) by 
    A7;
    
        ((En
    -class ) 
    . y11) 
    = ( 
    Class (En,y11)) & ((En 
    -class ) 
    . y22) 
    = ( 
    Class (En,y22)) by 
    Def13;
    
        hence z1
    = z2 by 
    A9,
    EQREL_1: 35,
    A4;
    
      end;
    
      hence thesis by
    FUNCT_1:def 1;
    
    end;
    
    definition
    
      let U, n;
    
      let E be
    Equivalence_Relation of U; 
    
      :: 
    
    FOMODEL3:def14
    
      func n
    
    -tuple2Class E -> 
    Relation of (n 
    -tuples_on ( 
    Class E)), ( 
    Class (n 
    -placesOf E)) equals ((n 
    -placesOf ((E 
    -class ) qua 
    Relation of U, ( 
    Class E) 
    ~ )) 
    * ((n 
    -placesOf E) 
    -class )); 
    
      coherence ;
    
    end
    
    registration
    
      let U, n;
    
      let E be
    Equivalence_Relation of U; 
    
      cluster (n 
    -tuple2Class E) -> 
    Function-like;
    
      coherence
    
      proof
    
        per cases ;
    
          suppose n is non
    zero;
    
          hence thesis by
    Lm11;
    
        end;
    
          suppose n is
    zero;
    
          then
    
          reconsider m = n as
    zero  
    Nat;
    
          set En = (n
    -placesOf E); 
    
          reconsider f1 = (E
    -class ) as 
    Function of U, ( 
    Class E); 
    
          reconsider r1 = (E
    -class ) as 
    Relation of U, ( 
    Class E); 
    
          reconsider r2 = (r1
    ~ ) as 
    Relation of ( 
    Class E), U; 
    
          reconsider f3 = (m
    -placesOf r2) as 
    PartFunc of (m 
    -tuples_on ( 
    Class E)), (m 
    -tuples_on U); 
    
          reconsider f4 = (En
    -class ) as 
    Function of (n 
    -tuples_on U), ( 
    Class (n 
    -placesOf E)); 
    
          (f3
    * f4) is 
    Function-like;
    
          hence thesis;
    
        end;
    
      end;
    
    end
    
    registration
    
      let U, n;
    
      let E be
    Equivalence_Relation of U; 
    
      cluster (n 
    -tuple2Class E) -> 
    total;
    
      coherence ;
    
    end
    
    definition
    
      let U, n;
    
      let E be
    Equivalence_Relation of U; 
    
      :: original:
    -tuple2Class
    
      redefine
    
      func n
    
    -tuple2Class E -> 
    Function of (n 
    -tuples_on ( 
    Class E)), ( 
    Class (n 
    -placesOf E)) ; 
    
      coherence ;
    
    end
    
    definition
    
      let S, U;
    
      let s be
    ofAtomicFormula  
    Element of S; 
    
      let E be
    Equivalence_Relation of U; 
    
      let f be
    Interpreter of s, U; 
    
      :: 
    
    FOMODEL3:def15
    
      func f
    
    quotient E -> 
    set equals 
    
      :
    
    Def15: (( 
    |.(
    ar s).| 
    -tuple2Class E) 
    * (f 
    quotient (( 
    |.(
    ar s).| 
    -placesOf E),E))) if not s is 
    relational
    
      otherwise (((
    |.(
    ar s).| 
    -tuple2Class E) 
    * (f 
    quotient (( 
    |.(
    ar s).| 
    -placesOf E),( 
    id  
    BOOLEAN )))) 
    * ( 
    peeler  
    BOOLEAN )); 
    
      coherence ;
    
      consistency ;
    
    end
    
    definition
    
      let S, U;
    
      let s be
    ofAtomicFormula  
    Element of S; 
    
      let E be
    Equivalence_Relation of U; 
    
      let f be E
    -respecting  
    Interpreter of s, U; 
    
      :: original:
    quotient
    
      redefine
    
      func f
    
    quotient E -> 
    Interpreter of s, ( 
    Class E) ; 
    
      coherence
    
      proof
    
        set n =
    |.(
    ar s).|, D = (n 
    -tuples_on U), h = (n 
    -tuple2Class E), IT = (f 
    quotient E); 
    
        reconsider EE = (n
    -placesOf E) as 
    Equivalence_Relation of D; 
    
        reconsider hr = h as
    Relation;
    
        per cases ;
    
          suppose
    
          
    
    A1: not s is 
    relational;
    
          then
    
          reconsider g = f as EE, E
    -respecting  
    Function of D, U by 
    Def10,
    FOMODEL2:def 2;
    
          reconsider e = (g
    quotient (EE,E)) as 
    Function of ( 
    Class EE), ( 
    Class E); 
    
          reconsider er = e as
    Relation;
    
          reconsider gr = g as
    Relation;
    
          IT
    = (e 
    * h) by 
    Def15,
    A1;
    
          hence thesis by
    A1,
    FOMODEL2:def 2;
    
        end;
    
          suppose
    
          
    
    A2: s is 
    relational;
    
          then
    
          reconsider g = f as EE, (
    id  
    BOOLEAN ) 
    -respecting  
    Function of D, 
    BOOLEAN by 
    Def10,
    FOMODEL2:def 2;
    
          reconsider pr = (
    peeler  
    BOOLEAN ) as 
    Relation;
    
          reconsider e = (g
    quotient (EE,( 
    id  
    BOOLEAN ))) as 
    Function of ( 
    Class EE), 
    {_{
    BOOLEAN }_}; 
    
          reconsider er = e as
    Relation;
    
          reconsider gr = g as
    Relation;
    
          IT
    = (( 
    peeler  
    BOOLEAN ) 
    * (e 
    * h)) by 
    A2,
    Def15;
    
          hence thesis by
    A2,
    FOMODEL2:def 2;
    
        end;
    
      end;
    
    end
    
    theorem :: 
    
    FOMODEL3:1
    
    for X be non
    empty  
    set, E be 
    Equivalence_Relation of X, C1,C2 be 
    Element of ( 
    Class E) st C1 
    meets C2 holds C1 
    = C2 by 
    EQREL_1:def 4;
    
    registration
    
      let S;
    
      cluster -> 
    own for 
    Element of ( 
    OwnSymbolsOf S); 
    
      coherence ;
    
      cluster -> 
    ofAtomicFormula for 
    Element of ( 
    OwnSymbolsOf S); 
    
      coherence ;
    
    end
    
    registration
    
      let S, U;
    
      let o be non
    relational
    ofAtomicFormula  
    Element of S; 
    
      let E be
    Relation of U; 
    
      cluster E 
    -respecting -> ( 
    |.(
    ar o).| 
    -placesOf E), E 
    -respecting for 
    Interpreter of o, U; 
    
      coherence by
    Def10;
    
    end
    
    registration
    
      let S, U;
    
      let r be
    relational  
    Element of S; 
    
      let E be
    Relation of U; 
    
      cluster E 
    -respecting -> ( 
    |.(
    ar r).| 
    -placesOf E), ( 
    id  
    BOOLEAN ) 
    -respecting for 
    Interpreter of r, U; 
    
      coherence by
    Def10;
    
    end
    
    registration
    
      let n;
    
      let U1,U2 be non
    empty  
    set;
    
      let f be
    Function-like  
    Relation of U1, U2; 
    
      cluster (n 
    -placesOf f) -> 
    Function-like;
    
      coherence
    
      proof
    
        set IT = (n
    -placesOf f); 
    
        per cases ;
    
          suppose n
    =  
    0 ; 
    
          hence thesis;
    
        end;
    
          suppose n
    <>  
    0 ; 
    
          then
    
          reconsider n as non
    zero  
    Nat;
    
          now
    
            let x,y1,y2 be
    object;
    
            assume
    [x, y1]
    in IT; 
    
            then
    
            consider p1 be
    Element of (n 
    -tuples_on U1), q1 be 
    Element of (n 
    -tuples_on U2) such that 
    
            
    
    A1: 
    [x, y1]
    =  
    [p1, q1] & for j be
    set st j 
    in ( 
    Seg n) holds 
    [(p1
    . j), (q1 
    . j)] 
    in f; 
    
            assume
    [x, y2]
    in IT; 
    
            then
    
            consider p2 be
    Element of (n 
    -tuples_on U1), q2 be 
    Element of (n 
    -tuples_on U2) such that 
    
            
    
    A2: 
    [x, y2]
    =  
    [p2, q2] & for j be
    set st j 
    in ( 
    Seg n) holds 
    [(p2
    . j), (q2 
    . j)] 
    in f; 
    
            
    
            
    
    A3: x 
    = p1 & y1 
    = q1 & x 
    = p2 & y2 
    = q2 by 
    A1,
    A2,
    XTUPLE_0: 1;
    
            reconsider xx = x as
    Function by 
    A2,
    XTUPLE_0: 1;
    
            reconsider qq1 = q1, qq2 = q2 as
    Element of ( 
    Funcs (( 
    Seg n),U2)) by 
    FOMODEL0: 11;
    
            now
    
              let j be
    Element of ( 
    Seg n); 
    
              
    [(xx
    . j), (q1 
    . j)] 
    in f & 
    [(xx
    . j), (q2 
    . j)] 
    in f by 
    A1,
    A2,
    A3;
    
              hence (qq1
    . j) 
    = (qq2 
    . j) by 
    FUNCT_1:def 1;
    
            end;
    
            hence y1
    = y2 by 
    A3,
    FUNCT_2: 63;
    
          end;
    
          hence thesis by
    FUNCT_1:def 1;
    
        end;
    
      end;
    
    end
    
    registration
    
      let U1, U2;
    
      let n be
    zero  
    Nat, R be 
    Relation of U1, U2; 
    
      cluster ((n 
    -placesOf R) 
    \+\ ( 
    id  
    {
    {} })) -> 
    empty;
    
      coherence
    
      proof
    
        set A =
    {
    [
    {} , 
    {} ]}; 
    
        (A
    \+\ ( 
    id  
    {
    {} })) 
    =  
    {} & (n 
    -placesOf R) 
    = A by 
    Lm4;
    
        hence thesis;
    
      end;
    
    end
    
    registration
    
      let X;
    
      let Y be
    functional  
    set;
    
      cluster (X 
    /\ Y) -> 
    functional;
    
      coherence ;
    
    end
    
    theorem :: 
    
    FOMODEL3:2
    
    for V be
    Element of (( 
    AllTermsOf S) 
    * ) holds ex mm be 
    Element of 
    NAT st V is 
    Element of (((S 
    -termsOfMaxDepth ) 
    . mm) 
    * ) by 
    Lm3;
    
    definition
    
      let S, U;
    
      let E be
    Equivalence_Relation of U; 
    
      let I be S, U
    -interpreter-like  
    Function;
    
      :: 
    
    FOMODEL3:def16
    
      attr I is E
    
    -respecting means 
    
      :
    
    Def16: for s be 
    own  
    Element of S holds (I 
    . s) qua 
    Interpreter of s, U is E 
    -respecting;
    
    end
    
    definition
    
      let S, U;
    
      let E be
    Equivalence_Relation of U; 
    
      let I be S, U
    -interpreter-like  
    Function;
    
      :: 
    
    FOMODEL3:def17
    
      func I
    
    quotient E -> 
    Function means 
    
      :
    
    Def17: ( 
    dom it ) 
    = ( 
    OwnSymbolsOf S) & for o be 
    Element of ( 
    OwnSymbolsOf S) holds (it 
    . o) 
    = ((I 
    . o) 
    quotient E); 
    
      existence
    
      proof
    
        set O = (
    OwnSymbolsOf S), AT = ( 
    AllTermsOf S); 
    
        deffunc
    
    F(
    Element of O) = ((I 
    . $1) 
    quotient E); 
    
        consider f be
    Function such that 
    
        
    
    A1: ( 
    dom f) 
    = O & for d be 
    Element of O holds (f 
    . d) 
    =  
    F(d) from
    FUNCT_1:sch 4;
    
        take f;
    
        thus (
    dom f) 
    = O & for o be 
    Element of O holds (f 
    . o) 
    = ((I 
    . o) 
    quotient E) by 
    A1;
    
      end;
    
      uniqueness
    
      proof
    
        set O = (
    OwnSymbolsOf S), AT = ( 
    AllTermsOf S); 
    
        let IT1,IT2 be
    Function;
    
        deffunc
    
    F(
    Element of O) = ((I 
    . $1) 
    quotient E); 
    
        assume
    
        
    
    A2: ( 
    dom IT1) 
    = O & for o be 
    Element of O holds (IT1 
    . o) 
    =  
    F(o);
    
        assume
    
        
    
    A3: ( 
    dom IT2) 
    = O & for o be 
    Element of O holds (IT2 
    . o) 
    =  
    F(o);
    
        (
    dom IT1) 
    = ( 
    dom IT2) & for x be 
    object st x 
    in ( 
    dom IT1) holds (IT1 
    . x) 
    = (IT2 
    . x) 
    
        proof
    
          thus (
    dom IT1) 
    = ( 
    dom IT2) by 
    A2,
    A3;
    
          let x be
    object;
    
          assume x
    in ( 
    dom IT1); 
    
          then
    
          reconsider o = x as
    Element of O by 
    A2;
    
          (IT1
    . o) 
    =  
    F(o) by
    A2
    
          .= (IT2
    . o) by 
    A3;
    
          hence thesis;
    
        end;
    
        hence thesis by
    FUNCT_1: 2;
    
      end;
    
    end
    
    definition
    
      let S, U;
    
      let E be
    Equivalence_Relation of U; 
    
      let I be S, U
    -interpreter-like  
    Function;
    
      :: original:
    quotient
    
      redefine
    
      :: 
    
    FOMODEL3:def18
    
      func I
    
    quotient E means 
    
      :
    
    Def18: ( 
    dom it ) 
    = ( 
    OwnSymbolsOf S) & for o be 
    own  
    Element of S holds (it 
    . o) 
    = ((I 
    . o) 
    quotient E); 
    
      compatibility
    
      proof
    
        set O = (
    OwnSymbolsOf S), IT0 = (I 
    quotient E); 
    
        defpred
    
    P[
    Function] means (
    dom $1) 
    = O & for o be 
    own  
    Element of S holds ($1 
    . o) 
    = ((I 
    . o) 
    quotient E); 
    
        let IT be
    Function;
    
        thus IT
    = IT0 implies 
    P[IT]
    
        proof
    
          assume
    
          
    
    A1: IT 
    = IT0; 
    
          hence (
    dom IT) 
    = O by 
    Def17;
    
          now
    
            let o be
    own  
    Element of S; 
    
            reconsider oo = o as
    Element of O by 
    FOMODEL1:def 19;
    
            (IT0
    . oo) 
    = ((I 
    . oo) 
    quotient E) by 
    Def17;
    
            hence (IT
    . o) 
    = ((I 
    . o) 
    quotient E) by 
    A1;
    
          end;
    
          hence thesis;
    
        end;
    
        assume
    
        
    
    A2: 
    P[IT];
    
        for o be
    Element of O holds (IT 
    . o) 
    = ((I 
    . o) 
    quotient E) by 
    A2;
    
        hence IT
    = IT0 by 
    A2,
    Def17;
    
      end;
    
    end
    
    registration
    
      let S, U;
    
      let I be S, U
    -interpreter-like  
    Function;
    
      let E be
    Equivalence_Relation of U; 
    
      cluster (I 
    quotient E) -> ( 
    OwnSymbolsOf S) 
    -defined;
    
      coherence
    
      proof
    
        set II = (I
    quotient E), O = ( 
    OwnSymbolsOf S); 
    
        (
    dom II) 
    c= O by 
    Def17;
    
        hence thesis by
    RELAT_1:def 18;
    
      end;
    
    end
    
    registration
    
      let S, U;
    
      let E be
    Equivalence_Relation of U; 
    
      cluster E 
    -respecting for 
    Element of (U 
    -InterpretersOf S); 
    
      existence
    
      proof
    
        set O = (
    OwnSymbolsOf S), C = ( 
    PFuncs ((U 
    * ),(U 
    \/  
    BOOLEAN ))), II = (U 
    -InterpretersOf S); 
    
        deffunc
    
    F(
    Element of O) = the E 
    -respecting  
    Interpreter of $1, U; 
    
        consider f be
    Function such that 
    
        
    
    A1: ( 
    dom f) 
    = O & for d be 
    Element of O holds (f 
    . d) 
    =  
    F(d) from
    FUNCT_1:sch 4;
    
        
    
    A2: 
    
        now
    
          let x be
    object;
    
          assume x
    in ( 
    dom f); 
    
          then
    
          reconsider o = x as
    Element of O by 
    A1;
    
          (f
    . o) 
    =  
    F(o) by
    A1;
    
          hence (f
    . x) is 
    Function;
    
        end;
    
        for s be
    own  
    Element of S holds (f 
    . s) is 
    Interpreter of s, U 
    
        proof
    
          let s be
    own  
    Element of S; 
    
          reconsider o = s as
    Element of O by 
    FOMODEL1:def 19;
    
          (f
    . o) 
    =  
    F(o) by
    A1;
    
          hence thesis;
    
        end;
    
        then
    
        reconsider ff = f as
    Interpreter of S, U by 
    FOMODEL2:def 3;
    
        reconsider fff = ff as S, U
    -interpreter-like  
    Function by 
    A2,
    FUNCOP_1:def 6,
    FOMODEL2:def 4;
    
        reconsider ffff = fff as O
    -defined  
    Function by 
    A1,
    RELAT_1:def 18;
    
        (fff
    | O) is C 
    -valued & (ffff 
    | O) 
    = (ffff 
    null O); 
    
        then fff
    = fff & ( 
    dom fff) 
    = O & ( 
    rng fff) 
    c= C by 
    RELAT_1:def 19,
    A1;
    
        then
    
        reconsider IT = fff as
    Element of ( 
    Funcs (O,C)) by 
    FUNCT_2:def 2;
    
        IT
    in II; 
    
        then
    
        reconsider ITT = IT as
    Element of II; 
    
        take ITT;
    
        now
    
          let s be
    own  
    Element of S; 
    
          reconsider o = s as
    Element of O by 
    FOMODEL1:def 19;
    
          (fff
    . o) 
    =  
    F(o) by
    A1;
    
          hence (ITT
    . s) is E 
    -respecting;
    
        end;
    
        hence thesis;
    
      end;
    
    end
    
    registration
    
      let S, U;
    
      let E be
    Equivalence_Relation of U; 
    
      cluster E 
    -respecting for S, U 
    -interpreter-like  
    Function;
    
      existence
    
      proof
    
        take IT = the E
    -respecting  
    Element of (U 
    -InterpretersOf S); 
    
        thus thesis;
    
      end;
    
    end
    
    registration
    
      let S, U;
    
      let E be
    Equivalence_Relation of U; 
    
      let o be
    own  
    Element of S; 
    
      let I be E
    -respectingS, U
    -interpreter-like  
    Function;
    
      cluster (I 
    . o) -> E 
    -respecting;
    
      coherence by
    Def16;
    
    end
    
    registration
    
      let S, U;
    
      let E be
    Equivalence_Relation of U; 
    
      let I be E
    -respectingS, U
    -interpreter-like  
    Function;
    
      cluster (I 
    quotient E) -> S, ( 
    Class E) 
    -interpreter-like;
    
      coherence
    
      proof
    
        set IT = (I
    quotient E), O = ( 
    OwnSymbolsOf S); 
    
        
    
        
    
    A1: for o be 
    Element of O holds (IT 
    . o) is 
    Interpreter of o, ( 
    Class E) & (IT 
    . o) is 
    Function
    
        proof
    
          let o be
    Element of O; 
    
          reconsider i = (I
    . o) as E 
    -respecting  
    Interpreter of o, U; 
    
          
    
          
    
    A2: (i 
    quotient E) is 
    Interpreter of o, ( 
    Class E); 
    
          hence (IT
    . o) is 
    Interpreter of o, ( 
    Class E) by 
    Def17;
    
          thus (IT
    . o) is 
    Function by 
    A2,
    Def17;
    
        end;
    
        
    
        
    
    A3: for x be 
    object st x 
    in ( 
    dom IT) holds (IT 
    . x) is 
    Function by 
    A1;
    
        now
    
          let o be
    own  
    Element of S; 
    
          reconsider oo = o as
    Element of O by 
    FOMODEL1:def 19;
    
          (IT
    . oo) is 
    Interpreter of oo, ( 
    Class E) by 
    A1;
    
          hence (IT
    . o) is 
    Interpreter of o, ( 
    Class E); 
    
        end;
    
        then IT is
    Interpreter of S, ( 
    Class E) by 
    FOMODEL2:def 3;
    
        hence thesis by
    A3,
    FUNCOP_1:def 6;
    
      end;
    
    end
    
    definition
    
      let S, U;
    
      let E be
    Equivalence_Relation of U; 
    
      let I be E
    -respectingS, U
    -interpreter-like  
    Function;
    
      :: original:
    quotient
    
      redefine
    
      func I
    
    quotient E -> 
    Element of (( 
    Class E) 
    -InterpretersOf S) ; 
    
      coherence
    
      proof
    
        set J = (I
    quotient E), O = ( 
    OwnSymbolsOf S), II = (( 
    Class E) 
    -InterpretersOf S); 
    
        (J
    null O) 
    in II by 
    FOMODEL2: 2;
    
        hence thesis;
    
      end;
    
    end
    
    
    
    
    
    Lm12: for R be 
    Relation of U1, U2 holds (n 
    -placesOf R) 
    = { 
    [p, q] where p be
    Element of (n 
    -tuples_on U1), q be 
    Element of (n 
    -tuples_on U2) : q 
    c= (p 
    * R) } 
    
    proof
    
      let R be
    Relation of U1, U2; 
    
      deffunc
    
    F(
    set, 
    set) =
    [$1, $2];
    
      defpred
    
    P[
    Function, 
    Function] means for j be
    set st j 
    in ( 
    Seg n) holds 
    [($1
    . j), ($2 
    . j)] 
    in R; 
    
      defpred
    
    Q[
    Relation, 
    set] means $2
    c= ($1 
    * R); 
    
      set N1 = (n
    -tuples_on U1), N2 = (n 
    -tuples_on U2), D = ( 
    Seg n), LH = { 
    F(p,q) where p be
    Element of N1, q be 
    Element of N2 : 
    P[p, q] }, RH = {
    F(p,q) where p be
    Element of N1, q be 
    Element of N2 : 
    Q[p, q] };
    
      
    
      
    
    A1: for u be 
    Element of N1, v be 
    Element of N2 holds 
    P[u, v] iff
    Q[u, v]
    
      proof
    
        let u be
    Element of N1, v be 
    Element of N2; 
    
        
    
        
    
    A2: ( 
    len u) 
    = n & ( 
    len v) 
    = n by 
    CARD_1:def 7;
    
        then (
    dom u) 
    = D & ( 
    dom v) 
    = D by 
    FINSEQ_1:def 3;
    
        then
    
        
    
    A3: u 
    = { 
    [x, (u
    . x)] where x be 
    Element of D : x 
    in D } & v 
    = { 
    [x, (v
    . x)] where x be 
    Element of D : x 
    in D } by 
    FOMODEL0: 20;
    
        thus
    P[u, v] implies
    Q[u, v]
    
        proof
    
          assume
    
          
    
    A4: 
    P[u, v];
    
          now
    
            let z be
    object;
    
            assume z
    in v; 
    
            then
    
            consider x be
    Element of D such that 
    
            
    
    A5: z 
    =  
    [x, (v
    . x)] & x 
    in D by 
    A3;
    
            
    
            
    
    A6: 
    [(u
    . x), (v 
    . x)] 
    in R by 
    A4,
    A5;
    
            
    [x, (u
    . x)] 
    in u by 
    A3,
    A5;
    
            hence z
    in (u 
    * R) by 
    A5,
    A6,
    RELAT_1:def 8;
    
          end;
    
          hence thesis by
    TARSKI:def 3;
    
        end;
    
        assume
    
        
    
    A7: 
    Q[u, v];
    
        now
    
          let j be
    set;
    
          assume
    
          
    
    A8: j 
    in D; 
    
          then
    
          reconsider x = j as
    Element of D; 
    
          
    [x, (v
    . x)] 
    in v by 
    A3,
    A8;
    
          then
    
          consider z be
    object such that 
    
          
    
    A9: 
    [x, z]
    in u & 
    [z, (v
    . x)] 
    in R by 
    A7,
    RELAT_1:def 8;
    
          
    
          
    
    A10: z is 
    set by 
    TARSKI: 1;
    
          x
    in ( 
    dom u) by 
    A2,
    FINSEQ_1:def 3,
    A8;
    
          then z
    = (u 
    . x) by 
    A9,
    FUNCT_1:def 2,
    A10;
    
          hence
    [(u
    . j), (v 
    . j)] 
    in R by 
    A9;
    
        end;
    
        hence thesis;
    
      end;
    
      LH
    = RH from 
    FRAENKEL:sch 4(
    A1);
    
      hence thesis;
    
    end;
    
    
    
    
    
    Lm13: for U be non 
    empty  
    Subset of U2, P be 
    Relation of U1, U, Q be 
    Relation of U2, U3 holds ((n 
    -placesOf P) 
    * (n 
    -placesOf Q)) 
    c= (n 
    -placesOf (P 
    * Q)) 
    
    proof
    
      let U be non
    empty  
    Subset of U2; 
    
      let P be
    Relation of U1, U, Q be 
    Relation of U2, U3; 
    
      set R = (P
    * Q), LH = (n 
    -placesOf R), Pn = (n 
    -placesOf P), Qn = (n 
    -placesOf Q), RH = (Pn 
    * Qn), N = (n 
    -tuples_on U), N1 = (n 
    -tuples_on U1), N2 = (n 
    -tuples_on U2), N3 = (n 
    -tuples_on U3); 
    
      
    
      
    
    A1: LH 
    = { 
    [p, q] where p be
    Element of N1, q be 
    Element of N3 : q 
    c= (p 
    * R) } & Pn 
    = { 
    [p, q] where p be
    Element of N1, q be 
    Element of N : q 
    c= (p 
    * P) } & Qn 
    = { 
    [p, q] where p be
    Element of N2, q be 
    Element of N3 : q 
    c= (p 
    * Q) } by 
    Lm12;
    
      now
    
        let t be
    object;
    
        assume
    
        
    
    A2: t 
    in RH; 
    
        then
    
        consider x,z be
    object such that 
    
        
    
    A3: t 
    =  
    [x, z] by
    RELAT_1:def 1;
    
        consider y be
    object such that 
    
        
    
    A4: 
    [x, y]
    in Pn & 
    [y, z]
    in Qn by 
    A3,
    A2,
    RELAT_1:def 8;
    
        consider p1 be
    Element of N1, p2 be 
    Element of N such that 
    
        
    
    A5: 
    [p1, p2]
    =  
    [x, y] & p2
    c= (p1 
    * P) by 
    A1,
    A4;
    
        consider q1 be
    Element of N2, q2 be 
    Element of N3 such that 
    
        
    
    A6: 
    [q1, q2]
    =  
    [y, z] & q2
    c= (q1 
    * Q) by 
    A1,
    A4;
    
        
    
        
    
    A7: (p2 
    * Q) 
    c= ((p1 
    * P) 
    * Q) & p1 
    = x & p2 
    = y & q1 
    = y & q2 
    = z by 
    XTUPLE_0: 1,
    RELAT_1: 30,
    A5,
    A6;
    
        then q2
    c= ((p1 
    * P) 
    * Q) by 
    XBOOLE_1: 1,
    A6;
    
        then
    [p1, q2]
    =  
    [p1, q2] & q2
    c= (p1 
    * R) by 
    RELAT_1: 36;
    
        hence t
    in LH by 
    A3,
    A7,
    A1;
    
      end;
    
      hence thesis by
    TARSKI:def 3;
    
    end;
    
    
    
    
    
    Lm14: for U be non 
    empty  
    Subset of U2, P be 
    Relation of U1, U, Q be 
    Relation of U2, U3 holds (n 
    -placesOf (P 
    * Q)) 
    c= ((n 
    -placesOf P) 
    * (n 
    -placesOf Q)) 
    
    proof
    
      let U be non
    empty  
    Subset of U2; 
    
      let P be
    Relation of U1, U, Q be 
    Relation of U2, U3; 
    
      set R = (P
    * Q), LH = (n 
    -placesOf R), Pn = (n 
    -placesOf P), Qn = (n 
    -placesOf Q), RH = (Pn 
    * Qn), N = (n 
    -tuples_on U), N1 = (n 
    -tuples_on U1), N2 = (n 
    -tuples_on U2), N3 = (n 
    -tuples_on U3); 
    
      reconsider nn = n as
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
      now
    
        let x be
    object;
    
        assume x
    in LH; 
    
        then
    
        consider p be
    Element of N1, q be 
    Element of N3 such that 
    
        
    
    A1: x 
    =  
    [p, q] & for j be
    set st j 
    in ( 
    Seg n) holds 
    [(p
    . j), (q 
    . j)] 
    in R; 
    
        defpred
    
    Z[
    set, 
    set] means
    [(p
    . $1), $2] 
    in P & 
    [$2, (q
    . $1)] 
    in Q; 
    
        
    
        
    
    A2: for k be 
    Nat st k 
    in ( 
    Seg n) holds ex y be 
    Element of U st 
    Z[k, y]
    
        proof
    
          let k be
    Nat;
    
          assume k
    in ( 
    Seg n); 
    
          then
    [(p
    . k), (q 
    . k)] 
    in R by 
    A1;
    
          then
    
          consider y be
    object such that 
    
          
    
    A3: 
    [(p
    . k), y] 
    in P & 
    [y, (q
    . k)] 
    in Q by 
    RELAT_1:def 8;
    
          y
    in ( 
    rng P) & ( 
    rng P) 
    c= U by 
    A3,
    XTUPLE_0:def 13;
    
          then
    
          reconsider yy = y as
    Element of U; 
    
          take yy;
    
          thus thesis by
    A3;
    
        end;
    
        consider r be
    FinSequence of U such that 
    
        
    
    A4: ( 
    dom r) 
    = ( 
    Seg n) & for k be 
    Nat st k 
    in ( 
    Seg n) holds 
    Z[k, (r
    . k)] from 
    FINSEQ_1:sch 5(
    A2);
    
        (
    len r) 
    = nn by 
    FINSEQ_1:def 3,
    A4;
    
        then
    
        reconsider rr = r as n
    -element  
    FinSequence of U by 
    CARD_1:def 7;
    
        reconsider rrr = rr as
    Element of N by 
    FOMODEL0: 16;
    
        reconsider rrrr = rrr as
    Element of N2 by 
    FOMODEL0: 16;
    
        
    [p, rrr]
    =  
    [p, rrr] & for j be
    set st j 
    in ( 
    Seg n) holds 
    [(p
    . j), (rrr 
    . j)] 
    in P by 
    A4;
    
        then
    
        
    
    A5: 
    [p, rrr]
    in Pn; 
    
        
    [rrrr, q]
    =  
    [rrrr, q] & for j be
    set st j 
    in ( 
    Seg n) holds 
    [(rrrr
    . j), (q 
    . j)] 
    in Q by 
    A4;
    
        then
    [rrrr, q]
    in Qn; 
    
        hence x
    in RH by 
    A1,
    A5,
    RELAT_1:def 8;
    
      end;
    
      hence thesis by
    TARSKI:def 3;
    
    end;
    
    
    
    
    
    Lm15: for U be non 
    empty  
    Subset of U2, P be 
    Relation of U1, U, Q be 
    Relation of U2, U3 holds (n 
    -placesOf (P 
    * Q)) 
    = ((n 
    -placesOf P) 
    * (n 
    -placesOf Q)) by 
    Lm13,
    Lm14;
    
    
    
    
    
    Lm16: for P be 
    Relation of U1, U2, Q be 
    Relation of U2, U3 holds (n 
    -placesOf (P 
    * Q)) 
    = ((n 
    -placesOf P) 
    * (n 
    -placesOf Q)) 
    
    proof
    
      reconsider U = (U2
    /\ U2) as non 
    empty  
    Subset of U2; 
    
      let P be
    Relation of U1, U2, Q be 
    Relation of U2, U3; 
    
      reconsider PP = P as
    Relation of U1, U; 
    
      (n
    -placesOf (PP 
    * Q)) 
    = ((n 
    -placesOf PP) 
    * (n 
    -placesOf Q)) by 
    Lm15;
    
      hence thesis;
    
    end;
    
    
    
    
    
    Lm17: for R be 
    Relation of U1, U2 holds (n 
    -placesOf (R 
    ~ )) 
    = ((n 
    -placesOf R) 
    ~ ) 
    
    proof
    
      let R be
    Relation of U1, U2; 
    
      set N1 = (n
    -tuples_on U1), N2 = (n 
    -tuples_on U2), IT = { 
    [q, p] where p be
    Element of N1, q be 
    Element of N2 : for j be 
    set st j 
    in ( 
    Seg n) holds 
    [(p
    . j), (q 
    . j)] 
    in R }; 
    
      reconsider Q = (R
    ~ ) as 
    Relation of U2, U1; 
    
      reconsider Rn = (n
    -placesOf R) as 
    Relation of (n 
    -tuples_on U1), (n 
    -tuples_on U2); 
    
      reconsider LH = (n
    -placesOf Q) as 
    Relation of (n 
    -tuples_on U2), (n 
    -tuples_on U1); 
    
      reconsider RH = (Rn
    ~ ) as 
    Relation of (n 
    -tuples_on U2), (n 
    -tuples_on U1); 
    
      now
    
        let x be
    object;
    
        assume x
    in LH; 
    
        then
    
        consider p be
    Element of N2, q be 
    Element of N1 such that 
    
        
    
    A1: x 
    =  
    [p, q] & for j be
    set st j 
    in ( 
    Seg n) holds 
    [(p
    . j), (q 
    . j)] 
    in (R 
    ~ ); 
    
        for j be
    set st j 
    in ( 
    Seg n) holds 
    [(q
    . j), (p 
    . j)] 
    in R 
    
        proof
    
          let j be
    set;
    
          assume j
    in ( 
    Seg n); 
    
          then
    [(p
    . j), (q 
    . j)] 
    in (R 
    ~ ) by 
    A1;
    
          hence thesis by
    RELAT_1:def 7;
    
        end;
    
        then
    [q, p]
    in Rn; 
    
        hence x
    in RH by 
    RELAT_1:def 7,
    A1;
    
      end;
    
      then
    
      
    
    A2: LH 
    c= RH by 
    TARSKI:def 3;
    
      now
    
        let x be
    object;
    
        assume x
    in (RH 
    ~ ); 
    
        then
    
        consider p be
    Element of N1, q be 
    Element of N2 such that 
    
        
    
    A3: x 
    =  
    [p, q] & for j be
    set st j 
    in ( 
    Seg n) holds 
    [(p
    . j), (q 
    . j)] 
    in R; 
    
        for j be
    set st j 
    in ( 
    Seg n) holds 
    [(q
    . j), (p 
    . j)] 
    in (R 
    ~ ) 
    
        proof
    
          let j be
    set;
    
          assume j
    in ( 
    Seg n); 
    
          then
    [(p
    . j), (q 
    . j)] 
    in R by 
    A3;
    
          hence thesis by
    RELAT_1:def 7;
    
        end;
    
        then
    [q, p]
    in LH; 
    
        hence x
    in (LH 
    ~ ) by 
    A3,
    RELAT_1:def 7;
    
      end;
    
      then (RH
    ~ ) 
    c= (LH 
    ~ ) by 
    TARSKI:def 3;
    
      then ((RH
    ~ ) 
    \ (LH 
    ~ )) 
    =  
    {} ; 
    
      then ((RH
    \ LH) 
    ~ ) 
    =  
    {} by 
    RELAT_1: 24;
    
      then (((RH
    \ LH) 
    ~ ) 
    ~ ) 
    =  
    {} ; 
    
      then RH
    c= LH by 
    XBOOLE_1: 37;
    
      hence thesis by
    A2;
    
    end;
    
    
    
    
    
    Lm18: for X,Y be non 
    empty  
    set, E be 
    Equivalence_Relation of X, F be 
    Equivalence_Relation of Y, g be E, F 
    -respecting  
    Function of X, Y holds ((F 
    -class ) 
    * g) 
    = ((g 
    quotient (E,F)) 
    * (E 
    -class )) 
    
    proof
    
      let X,Y be non
    empty  
    set;
    
      let E be
    Equivalence_Relation of X; 
    
      let F be
    Equivalence_Relation of Y; 
    
      let g be E, F
    -respecting  
    Function of X, Y; 
    
      set G = (g
    quotient (E,F)); 
    
      
    
      
    
    A1: ( 
    dom G) 
    = ( 
    Class E) by 
    FUNCT_2:def 1;
    
      reconsider LH = ((F
    -class ) 
    * g), RH = (G 
    * (E 
    -class )) as 
    Function of X, ( 
    Class F); 
    
      
    
      
    
    A2: ( 
    dom LH) 
    = X & ( 
    dom RH) 
    = X by 
    FUNCT_2:def 1;
    
      now
    
        let x be
    Element of X; 
    
        reconsider F1 = (LH
    . x), F2 = (RH 
    . x) as 
    Element of ( 
    Class F); 
    
        
    
        
    
    A3: F1 
    = ((F 
    -class ) 
    . (g 
    . x)) & F2 
    = (G 
    . ((E 
    -class ) 
    . x)) by 
    A2,
    FUNCT_1: 12;
    
        then F2
    = (G 
    . ( 
    EqClass (E,x))) by 
    Def13;
    
        then
    [(
    EqClass (E,x)), F2] 
    in G by 
    A1,
    FUNCT_1: 1;
    
        then
    
        consider e be
    Element of ( 
    Class E), f be 
    Element of ( 
    Class F) such that 
    
        
    
    A4: 
    [(
    EqClass (E,x)), F2] 
    =  
    [e, f] & ex a,b be
    set st a 
    in e & b 
    in f & 
    [a, b]
    in g; 
    
        consider a,b be
    set such that 
    
        
    
    A5: a 
    in e & b 
    in f & 
    [a, b]
    in g by 
    A4;
    
        
    
        
    
    A6: ( 
    EqClass (E,x)) 
    = e & F2 
    = f by 
    A4,
    XTUPLE_0: 1;
    
        then
    
        
    
    A7: a 
    in ( 
    EqClass (E,x)) & 
    [a, x]
    in E & b 
    in F2 by 
    A5,
    EQREL_1: 19;
    
        a
    in X by 
    A5;
    
        then a
    in ( 
    dom g) by 
    FUNCT_2:def 1;
    
        then b
    = (g 
    . a) by 
    A5,
    FUNCT_1:def 2;
    
        then
    [b, (g
    . x)] 
    in F by 
    A7,
    Def9;
    
        then b
    in ( 
    EqClass (F,(g 
    . x))) by 
    EQREL_1: 19;
    
        then b
    in F1 by 
    A3,
    Def13;
    
        hence (LH
    . x) 
    = (RH 
    . x) by 
    EQREL_1:def 4,
    A5,
    A6,
    XBOOLE_0: 3;
    
      end;
    
      hence thesis by
    FUNCT_2: 63;
    
    end;
    
    
    
    
    
    Lm19: for p be m 
    -elementU1
    -valued  
    FinSequence, f be 
    Function of U1, U2 holds (f 
    * p) 
    = ((m 
    -placesOf f) 
    . p) 
    
    proof
    
      let p be m
    -elementU1
    -valued  
    FinSequence;
    
      let f be
    Function of U1, U2; 
    
      set F = (m
    -placesOf f); 
    
      
    
      
    
    A1: ( 
    dom f) 
    = U1 & ( 
    dom F) 
    = (m 
    -tuples_on U1) & p 
    in (m 
    -tuples_on U1) & (f 
    * p) 
    in (m 
    -tuples_on U2) by 
    FUNCT_2:def 1,
    FOMODEL0: 16;
    
      reconsider pp = p as
    Element of (m 
    -tuples_on U1) by 
    FOMODEL0: 16;
    
      pp is
    Element of ( 
    Funcs (( 
    Seg m),U1)) by 
    FOMODEL0: 11;
    
      then
    
      reconsider ppp = pp as
    Function of ( 
    Seg m), U1; 
    
      reconsider LH = (f
    * p) as 
    Element of ( 
    Funcs (( 
    Seg m),U2)) by 
    FOMODEL0: 11,
    A1;
    
      reconsider RH = (F
    . pp) as 
    Element of ( 
    Funcs (( 
    Seg m),U2)) by 
    FOMODEL0: 11;
    
      reconsider LHH = LH, RHH = RH as
    Function of ( 
    Seg m), U2; 
    
      reconsider LHHH = LH, RHHH = RH as
    Element of (m 
    -tuples_on U2) by 
    FOMODEL0: 11;
    
      
    
      
    
    A2: ( 
    dom ppp) 
    = ( 
    Seg m) & ( 
    rng ppp) 
    c= U1 & ( 
    dom LH) 
    = ( 
    Seg m) & ( 
    dom LH) 
    = ( 
    Seg m) by 
    FUNCT_2:def 1,
    RELAT_1:def 19;
    
      
    [p, LH]
    in F 
    
      proof
    
        for j be
    set st j 
    in ( 
    Seg m) holds 
    [(pp
    . j), (LHHH 
    . j)] 
    in f 
    
        proof
    
          let j be
    set;
    
          assume
    
          
    
    A3: j 
    in ( 
    Seg m); 
    
          then
    
          
    
    A4: (LH 
    . j) 
    = (f 
    . (p 
    . j)) by 
    A2,
    FUNCT_1: 12;
    
          (ppp
    . j) 
    in ( 
    rng ppp) by 
    FUNCT_1: 3,
    A3,
    A2;
    
          hence thesis by
    A1,
    A2,
    A4,
    FUNCT_1: 1;
    
        end;
    
        hence thesis;
    
      end;
    
      hence thesis by
    FUNCT_1: 1;
    
    end;
    
    
    
    
    
    Lm20: for E be 
    Equivalence_Relation of U holds ((n 
    -placesOf E) 
    -class ) 
    = ((n 
    -tuple2Class E) 
    * (n 
    -placesOf (E 
    -class ))) 
    
    proof
    
      let E be
    Equivalence_Relation of U; 
    
      set UN = (n
    -tuples_on U), A = (n 
    -tuple2Class E), RH = (A 
    * (n 
    -placesOf (E 
    -class ))), LH = ((n 
    -placesOf E) 
    -class ); 
    
      reconsider RA = (n
    -placesOf (E 
    -class )) as 
    Relation of (n 
    -tuples_on U), (n 
    -tuples_on ( 
    Class E)); 
    
      reconsider ER = (E
    -class ) as 
    Relation of U, ( 
    Class E); 
    
      reconsider RB = (n
    -placesOf (ER 
    ~ )) as 
    Relation of (n 
    -tuples_on ( 
    Class E)), (n 
    -tuples_on U); 
    
      reconsider RC = ((n
    -placesOf ER) 
    ~ ) as 
    Relation of (n 
    -tuples_on ( 
    Class E)), (n 
    -tuples_on U); 
    
      
    
      
    
    A1: ( 
    dom LH) 
    = UN & ( 
    dom RH) 
    = UN by 
    FUNCT_2:def 1;
    
      reconsider FA = RA as
    Function of UN, (n 
    -tuples_on ( 
    Class E)); 
    
      reconsider RAA = RA as
    totalUN
    -defined  
    Relation;
    
      RH
    = ((RA 
    * RB) 
    * ((n 
    -placesOf E) 
    -class )) by 
    RELAT_1: 36
    
      .= ((RA
    * RC) 
    * LH) by 
    Lm17;
    
      then ((
    id UN) qua 
    Relation
    * LH) 
    c= RH by 
    FOMODEL0: 21,
    RELAT_1: 30;
    
      then (LH
    | UN) 
    c= RH by 
    RELAT_1: 65;
    
      hence thesis by
    GRFUNC_1: 3,
    A1;
    
    end;
    
    
    
    
    
    Lm21: for E be 
    Equivalence_Relation of U1, F be 
    Equivalence_Relation of U2, g be (n 
    -placesOf E), F 
    -respecting  
    Function of (n 
    -tuples_on U1), U2 holds ((g 
    quotient ((n 
    -placesOf E),F)) 
    * (n 
    -tuple2Class E)) 
    = ((n 
    -placesOf ((E 
    -class ) qua 
    Relation of U1, ( 
    Class E) 
    ~ )) 
    * ((F 
    -class ) 
    * g)) 
    
    proof
    
      set X = U1, Y = U2;
    
      let E be
    Equivalence_Relation of X, F be 
    Equivalence_Relation of Y; 
    
      let g be (n
    -placesOf E), F 
    -respecting  
    Function of (n 
    -tuples_on X), Y; 
    
      reconsider G = (g
    quotient ((n 
    -placesOf E),F)) as 
    Function of ( 
    Class (n 
    -placesOf E)), ( 
    Class F); 
    
      reconsider R = G as
    Relation of ( 
    Class (n 
    -placesOf E)), ( 
    Class F); 
    
      reconsider projector = (E
    -class ) as 
    Relation of X, ( 
    Class E); 
    
      (G
    * (n 
    -tuple2Class E)) 
    = ((n 
    -placesOf (projector 
    ~ )) 
    * (((n 
    -placesOf E) 
    -class ) 
    * R)) by 
    RELAT_1: 36
    
      .= ((n
    -placesOf (projector 
    ~ )) 
    * ((F 
    -class ) 
    * g)) by 
    Lm18;
    
      hence thesis;
    
    end;
    
    
    
    
    
    Lm22: for R be 
    total
    reflexive  
    Relation of U st x 
    in ( 
    dom f) & f is U 
    -valued holds f is ( 
    id  
    {x}), R
    -respecting
    
    proof
    
      let R be
    total
    reflexive  
    Relation of U; 
    
      set E = (
    id  
    {x});
    
      assume
    
      
    
    A1: x 
    in ( 
    dom f); 
    
      then
    
      reconsider D = (
    dom f) as non 
    empty  
    set;
    
      (E
    \+\  
    {
    [x, x]})
    =  
    {} ; 
    
      then
    
      
    
    A2: E 
    =  
    {
    [x, x]} by
    FOMODEL0: 29;
    
      reconsider xx = x as
    Element of D by 
    A1;
    
      assume f is U
    -valued;
    
      then (
    rng f) 
    c= U by 
    RELAT_1:def 19;
    
      then
    
      reconsider ff = f as
    Function of D, U by 
    FUNCT_2: 2;
    
      now
    
        let x1,x2 be
    set;
    
        assume
    [x1, x2]
    in E; 
    
        then
    [x1, x2]
    =  
    [x, x] by
    A2,
    TARSKI:def 1;
    
        then
    
        
    
    A3: x1 
    = x & x2 
    = x by 
    XTUPLE_0: 1;
    
        (f
    . xx) 
    = (f 
    . xx) & (ff 
    . xx) 
    in U; 
    
        hence
    [(f
    . x1), (f 
    . x2)] 
    in R by 
    EQREL_1: 5,
    A3;
    
      end;
    
      hence thesis;
    
    end;
    
    
    
    
    
    Lm23: (( 
    peeler U) 
    * (( 
    id U) 
    -class )) 
    = ( 
    id U) 
    
    proof
    
      set X = U, P = (
    peeler X), IX = ( 
    id X), I = (IX 
    -class ), IT = (P 
    * I); 
    
      reconsider Pf = P, If = I as
    Function;
    
      
    
      
    
    A1: ( 
    dom I) 
    = X & ( 
    dom IX) 
    = X by 
    FUNCT_2:def 1;
    
      
    
      
    
    A2: 
    {_{X}_}
    = the set of all 
    {x} where x be
    Element of X by 
    EQREL_1: 37;
    
      reconsider PP = P as
    Function of ( 
    Class IX), X; 
    
      reconsider II = I as
    Function of X, ( 
    Class IX); 
    
      reconsider LH = (PP
    * II), RH = IX as 
    Function of X, X; 
    
      now
    
        let x be
    Element of X; 
    
        set xx = x;
    
        
    {x}
    in  
    {_{X}_} by
    A2;
    
        then
    
        reconsider xton =
    {x} as
    Element of 
    {_{X}_};
    
        ((Pf
    * If) 
    . x) 
    = (Pf 
    . (If 
    . xx)) by 
    A1,
    FUNCT_1: 13
    
        .= (P
    . ( 
    Class (( 
    id X),xx))) by 
    Def13
    
        .= (P
    . xton) by 
    EQREL_1: 25
    
        .= (
    DeTrivial xton) by 
    Def12
    
        .= xx by
    Def11
    
        .= (IX
    . x); 
    
        hence (IX
    . x) 
    = ((PP 
    * II) 
    . x); 
    
      end;
    
      hence thesis by
    FUNCT_2: 63;
    
    end;
    
    
    
    
    
    Lm24: for E be 
    Equivalence_Relation of U, I be E 
    -respectingS, U
    -interpreter-like  
    Function holds ((((I 
    quotient E),((E 
    -class ) 
    . u)) 
    -TermEval ) 
    . k) 
    = ((E 
    -class ) 
    * (((I,u) 
    -TermEval ) 
    . k)) 
    
    proof
    
      let E be
    Equivalence_Relation of U; 
    
      reconsider e = ((E
    -class ) 
    . u) as 
    Element of ( 
    Class E); 
    
      let I be E
    -respectingS, U
    -interpreter-like  
    Function;
    
      set te = ((I,u)
    -TermEval ), II = (I 
    quotient E), TE = ((II,e) 
    -TermEval ), F = (S 
    -firstChar ), O = ( 
    OwnSymbolsOf S), TT = ( 
    AllTermsOf S); 
    
      defpred
    
    P[
    Nat] means (TE
    . $1) 
    = ((E 
    -class ) 
    * (te 
    . $1)); 
    
      
    
      
    
    A1: 
    P[
    0 ] 
    
      proof
    
        
    
        
    
    A2: (TE 
    .  
    0 ) 
    = (TT 
    --> e) & (te 
    .  
    0 ) 
    = (TT 
    --> u) by 
    FOMODEL2:def 8;
    
        (
    dom (E 
    -class )) 
    = U by 
    FUNCT_2:def 1;
    
        hence thesis by
    A2,
    FUNCOP_1: 17;
    
      end;
    
      
    
      
    
    A3: for m st 
    P[m] holds
    P[(m
    + 1)] 
    
      proof
    
        let m;
    
        assume
    
        
    
    A4: 
    P[m];
    
        reconsider mm = m, MM = (m
    + 1) as 
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
        (te
    . mm) is 
    Element of ( 
    Funcs (TT,U)) & (te 
    . MM) is 
    Element of ( 
    Funcs (TT,U)); 
    
        then
    
        reconsider tm = (te
    . mm), tmm = (te 
    . MM) as 
    Function of TT, U; 
    
        (TE
    . mm) is 
    Element of ( 
    Funcs (TT,( 
    Class E))) & (TE 
    . MM) is 
    Element of ( 
    Funcs (TT,( 
    Class E))); 
    
        then
    
        reconsider TM = (TE
    . mm), TMM = (TE 
    . MM) as 
    Function of TT, ( 
    Class E); 
    
        now
    
          let tt;
    
          reconsider t = tt as
    termal  
    string of S; 
    
          set s = (F
    . t), g = (I 
    . s), G = (II 
    . s), sub = ( 
    SubTerms t), n = 
    |.(
    ar s).|; 
    
          reconsider gg = g as (n
    -placesOf E), E 
    -respecting  
    Function of (n 
    -tuples_on U), U by 
    FOMODEL2:def 2;
    
          
    
          
    
    A5: (g 
    quotient E) 
    = ((gg 
    quotient ((n 
    -placesOf E),E)) 
    * (n 
    -tuple2Class E)) by 
    Def15;
    
          reconsider ggg = (gg
    quotient ((n 
    -placesOf E),E)) as 
    Function;
    
          
    
          
    
    A6: (tm 
    * sub) is n 
    -elementU
    -valued  
    FinSequence & ( 
    dom (n 
    -placesOf (E 
    -class ))) 
    = (n 
    -tuples_on U) & ( 
    dom gg) 
    = (n 
    -tuples_on U) & ( 
    dom tmm) 
    = TT by 
    FUNCT_2:def 1;
    
          
    
          thus (TMM
    . tt) 
    = (G 
    . ((TE 
    . m) 
    * sub)) by 
    FOMODEL2: 3
    
          .= ((g
    quotient E) 
    . ((TE 
    . m) 
    * sub)) by 
    Def18
    
          .= ((g
    quotient E) 
    . ((E 
    -class ) 
    * (tm 
    * sub))) by 
    RELAT_1: 36,
    A4
    
          .= ((g
    quotient E) 
    . ((n 
    -placesOf (E 
    -class )) 
    . (tm 
    * sub))) by 
    Lm19
    
          .= (((ggg
    * (n 
    -tuple2Class E)) 
    * (n 
    -placesOf (E 
    -class ))) 
    . (tm 
    * sub)) by 
    A5,
    A6,
    FOMODEL0: 16,
    FUNCT_1: 13
    
          .= ((ggg
    * ((n 
    -tuple2Class E) 
    * (n 
    -placesOf (E 
    -class )))) 
    . (tm 
    * sub)) by 
    RELAT_1: 36
    
          .= ((ggg
    * ((n 
    -placesOf E) 
    -class )) 
    . (tm 
    * sub)) by 
    Lm20
    
          .= (((E
    -class ) 
    * gg) 
    . (tm 
    * sub)) by 
    Lm18
    
          .= ((E
    -class ) 
    . (gg 
    . (tm 
    * sub))) by 
    A6,
    FOMODEL0: 16,
    FUNCT_1: 13
    
          .= ((E
    -class ) 
    . ((te 
    . (m 
    + 1)) 
    . t)) by 
    FOMODEL2: 3
    
          .= (((E
    -class ) 
    * tmm) 
    . tt) by 
    A6,
    FUNCT_1: 13;
    
        end;
    
        hence thesis by
    FUNCT_2: 63;
    
      end;
    
      for n holds
    P[n] from
    NAT_1:sch 2(
    A1,
    A3);
    
      hence thesis;
    
    end;
    
    
    
    
    
    Lm25: for E be 
    Equivalence_Relation of U, I be E 
    -respectingS, U
    -interpreter-like  
    Function holds ((I 
    quotient E) 
    -TermEval ) 
    = ((E 
    -class ) 
    * (I 
    -TermEval )) 
    
    proof
    
      let E be
    Equivalence_Relation of U; 
    
      set u = the
    Element of U; 
    
      let I be E
    -respectingS, U
    -interpreter-like  
    Function;
    
      reconsider e = ((E
    -class ) 
    . u) as 
    Element of ( 
    Class E); 
    
      set F = (S
    -firstChar ), II = (I 
    quotient E), te = ((I,u) 
    -TermEval ), TE = ((II,e) 
    -TermEval ), O = ( 
    OwnSymbolsOf S), TT = ( 
    AllTermsOf S), tee = (I 
    -TermEval ), TEE = (II 
    -TermEval ), T = (S 
    -termsOfMaxDepth ); 
    
      reconsider TF = T as
    Function;
    
      now
    
        let tt be
    Element of TT; 
    
        consider mm such that
    
        
    
    A1: tt 
    in (TF 
    . mm) by 
    FOMODEL1: 5;
    
        set v = (I
    -TermEval tt), V = (II 
    -TermEval tt); 
    
        reconsider MM = (mm
    + 1) as 
    Element of 
    NAT ; 
    
        (te
    . MM) is 
    Element of ( 
    Funcs (TT,U)); 
    
        then
    
        
    
    A2: ( 
    dom (te 
    . MM)) 
    = TT & ( 
    dom tee) 
    = TT by 
    FUNCT_2:def 1;
    
        
    
        thus (TEE
    . tt) 
    = V by 
    FOMODEL2:def 10
    
        .= ((TE
    . (mm 
    + 1)) 
    . tt) by 
    FOMODEL2:def 9,
    A1
    
        .= (((E
    -class ) 
    * (te 
    . (mm 
    + 1))) 
    . tt) by 
    Lm24
    
        .= ((E
    -class ) 
    . ((te 
    . (mm 
    + 1)) 
    . tt)) by 
    FUNCT_1: 13,
    A2
    
        .= ((E
    -class ) 
    . v) by 
    FOMODEL2:def 9,
    A1
    
        .= ((E
    -class ) 
    . (tee 
    . tt)) by 
    FOMODEL2:def 10
    
        .= (((E
    -class ) 
    * tee) 
    . tt) by 
    A2,
    FUNCT_1: 13;
    
      end;
    
      hence thesis by
    FUNCT_2: 63;
    
    end;
    
    
    
    
    
    Lm26: for R be 
    Equivalence_Relation of U1, phi be 
    0wff  
    string of S, i be R 
    -respectingS, U1
    -interpreter-like  
    Function st ((S 
    -firstChar ) 
    . phi) 
    <> ( 
    TheEqSymbOf S) holds ((i 
    quotient R) 
    -AtomicEval phi) 
    = (i 
    -AtomicEval phi) 
    
    proof
    
      let R be
    Equivalence_Relation of U1, phi be 
    0wff  
    string of S, i be R 
    -respectingS, U1
    -interpreter-like  
    Function;
    
      set TT = (
    AllTermsOf S), E = ( 
    TheEqSymbOf S), p = ( 
    SubTerms phi), F = (S 
    -firstChar ), r = (F 
    . phi), n = 
    |.(
    ar r).|, U = ( 
    Class R), I = (i 
    quotient R), UV = (I 
    -TermEval ), N1 = (n 
    -tuples_on U1), V = (I 
    -AtomicEval phi), uv = (i 
    -TermEval ), v = (i 
    -AtomicEval phi), f = ((I 
    === ) 
    . r), G = (I 
    . r), g = (i 
    . r), d = (U 
    -deltaInterpreter ); 
    
      
    
      
    
    A1: p 
    in (n 
    -tuples_on TT) & ( 
    dom (n 
    -placesOf ((R 
    -class ) 
    * uv))) 
    = (n 
    -tuples_on TT) & ( 
    dom (n 
    -placesOf uv)) 
    = (n 
    -tuples_on TT) by 
    FUNCT_2:def 1,
    FOMODEL0: 16;
    
      assume
    
      
    
    A2: r 
    <> E; 
    
      
    
      then
    
      
    
    A3: V 
    = (G 
    . (UV 
    * p)) by 
    FOMODEL2: 14
    
      .= (G
    . (((R 
    -class ) 
    * uv) 
    * p)) by 
    Lm25
    
      .= (G
    . ((n 
    -placesOf ((R 
    -class ) 
    * uv)) 
    . p)) by 
    Lm19
    
      .= ((G
    * (n 
    -placesOf ((R 
    -class ) 
    * uv))) 
    . p) by 
    FUNCT_1: 13,
    A1;
    
      reconsider o = r as
    Element of ( 
    OwnSymbolsOf S) by 
    A2,
    FOMODEL1: 15;
    
      set gg = (i
    . o), GG = (I 
    . o); 
    
      reconsider ggg = gg as (n
    -placesOf R), ( 
    id  
    BOOLEAN ) 
    -respecting  
    Function of (n 
    -tuples_on U1), 
    BOOLEAN by 
    FOMODEL2:def 2,
    Def10;
    
      set F = (ggg
    quotient ((n 
    -placesOf R),( 
    id  
    BOOLEAN ))); 
    
      reconsider P = (
    peeler  
    BOOLEAN ) as 
    Function;
    
      reconsider nuisance1 = F, nuisance2 = (n
    -tuple2Class R), nuisance3 = P as 
    Relation;
    
      reconsider RR = (R
    -class ) as 
    Relation of U1, ( 
    Class R); 
    
      
    
      
    
    A4: GG 
    = (gg 
    quotient R) by 
    Def18
    
      .= ((
    peeler  
    BOOLEAN ) 
    * (F 
    * (n 
    -tuple2Class R))) by 
    Def15;
    
      
    
      
    
    A5: ((n 
    -tuple2Class R) 
    * (n 
    -placesOf ((R 
    -class ) 
    * uv))) 
    = (((n 
    -placesOf R) 
    -class ) 
    * (n 
    -placesOf uv)) 
    
      proof
    
        set x = (n
    -placesOf ((R 
    -class ) 
    * uv)); 
    
        
    
        
    
    A6: ((n 
    -tuple2Class R) 
    * (n 
    -placesOf ((R 
    -class ) 
    * uv))) 
    = (((n 
    -placesOf uv) 
    * (n 
    -placesOf RR)) 
    * ((n 
    -placesOf (RR 
    ~ )) 
    * ((n 
    -placesOf R) 
    -class ))) by 
    Lm16
    
        .= ((n
    -placesOf uv) 
    * ((n 
    -placesOf RR) 
    * ((n 
    -placesOf (RR 
    ~ )) 
    * ((n 
    -placesOf R) 
    -class )))) by 
    RELAT_1: 36
    
        .= ((n
    -placesOf uv) 
    * (((n 
    -placesOf RR) 
    * (n 
    -placesOf (RR 
    ~ ))) 
    * ((n 
    -placesOf R) 
    -class ))) by 
    RELAT_1: 36
    
        .= ((n
    -placesOf uv) 
    * (((n 
    -placesOf RR) 
    * ((n 
    -placesOf RR) 
    ~ )) 
    * ((n 
    -placesOf R) 
    -class ))) by 
    Lm17;
    
        ((n
    -placesOf uv) 
    * (((n 
    -placesOf RR) 
    * ((n 
    -placesOf RR) 
    ~ )) 
    * ((n 
    -placesOf R) 
    -class ))) 
    = (((n 
    -placesOf uv) 
    * ((n 
    -placesOf RR) 
    * ((n 
    -placesOf RR) 
    ~ ))) 
    * ((n 
    -placesOf R) 
    -class )) by 
    RELAT_1: 36
    
        .= ((((n
    -placesOf uv) 
    * (n 
    -placesOf RR)) 
    * ((n 
    -placesOf RR) 
    ~ )) 
    * ((n 
    -placesOf R) 
    -class )) by 
    RELAT_1: 36;
    
        hence thesis by
    A6,
    FOMODEL0: 27;
    
      end;
    
      ((P
    * (F 
    * (n 
    -tuple2Class R))) 
    * (n 
    -placesOf ((R 
    -class ) 
    * uv))) 
    = (P 
    * ((F 
    * (n 
    -tuple2Class R)) 
    * (n 
    -placesOf ((R 
    -class ) 
    * uv)))) by 
    RELAT_1: 36
    
      .= (P
    * (F 
    * (((n 
    -placesOf R) 
    -class ) 
    * (n 
    -placesOf uv)))) by 
    A5,
    RELAT_1: 36;
    
      
    
      then V
    = ((P 
    * ((F 
    * ((n 
    -placesOf R) 
    -class )) 
    * (n 
    -placesOf uv))) 
    . p) by 
    A3,
    A4,
    RELAT_1: 36
    
      .= (((P
    * (F 
    * ((n 
    -placesOf R) 
    -class ))) 
    * (n 
    -placesOf uv)) 
    . p) by 
    RELAT_1: 36
    
      .= ((P
    * (F 
    * ((n 
    -placesOf R) 
    -class ))) 
    . ((n 
    -placesOf uv) 
    . p)) by 
    FUNCT_1: 13,
    A1
    
      .= ((P
    * (F 
    * ((n 
    -placesOf R) 
    -class ))) 
    . (uv 
    * p)) by 
    Lm19
    
      .= ((P
    * ((( 
    id  
    BOOLEAN ) 
    -class ) 
    * ggg)) 
    . (uv 
    * p)) by 
    Lm18
    
      .= (((P
    * (( 
    id  
    BOOLEAN ) 
    -class )) 
    * ggg) 
    . (uv 
    * p)) by 
    RELAT_1: 36
    
      .= (((
    id  
    BOOLEAN ) 
    * ggg) 
    . (uv 
    * p)) by 
    Lm23
    
      .= (ggg
    . (uv 
    * p)) by 
    FUNCT_2: 17
    
      .= (i
    -AtomicEval phi) by 
    FOMODEL2: 14;
    
      hence thesis;
    
    end;
    
    
    
    
    
    Lm27: for t be 
    0  
    -termal  
    string of S holds ((((((S,X) 
    -freeInterpreter ),tt) 
    -TermEval ) 
    . (m 
    + 1)) 
    . t) 
    = t 
    
    proof
    
      let t be
    0  
    -termal  
    string of S; 
    
      set I = ((S,X)
    -freeInterpreter ), TT = ( 
    AllTermsOf S), F = (S 
    -firstChar ), v = (F 
    . t), n = 
    |.(
    ar v).|, C = (S 
    -multiCat ), II = ((I,tt) 
    -TermEval ), SS = ( 
    AllSymbolsOf S), ff = ((v 
    -compound ) 
    | (n 
    -tuples_on TT)); 
    
      reconsider f = (X
    -freeInterpreter v) as 
    Function of (n 
    -tuples_on TT), TT by 
    FOMODEL2:def 2;
    
      
    
      
    
    A1: ff 
    = f by 
    Def3;
    
      reconsider E =
    {} as 
    Element of (((SS 
    * ) 
    \  
    {
    {} }) 
    * ) by 
    FINSEQ_1: 49;
    
      (
    dom f) 
    = ( 
    0  
    -tuples_on TT) by 
    FUNCT_2:def 1;
    
      then (
    dom f) 
    =  
    {
    {} } by 
    FOMODEL0: 10;
    
      then
    
      
    
    A2: 
    {}  
    in ( 
    dom ff) by 
    A1,
    TARSKI:def 1;
    
      
    
      thus ((II
    . (m 
    + 1)) 
    . t) 
    = ((I 
    . v) 
    .  
    {} ) by 
    FOMODEL2: 3
    
      .= (f
    .  
    {} ) by 
    Def4
    
      .= (ff
    .  
    {} ) by 
    Def3
    
      .= ((v
    -compound ) 
    .  
    {} ) by 
    A2,
    FUNCT_1: 47
    
      .= (v
    -compound E) by 
    Def2
    
      .= (
    <*v*>
    null  
    {} ) 
    
      .= t by
    FOMODEL2: 1;
    
    end;
    
    
    
    
    
    Lm28: ((((((S,X) 
    -freeInterpreter ),tt) 
    -TermEval ) 
    . (m 
    + 1)) 
    | ((S 
    -termsOfMaxDepth ) 
    . m)) 
    = ( 
    id ((S 
    -termsOfMaxDepth ) 
    . m)) 
    
    proof
    
      set I = ((S,X)
    -freeInterpreter ), TE = ((I,tt) 
    -TermEval ), T = (S 
    -termsOfMaxDepth ), F = (S 
    -firstChar ), SS = ( 
    AllSymbolsOf S), TT = ( 
    AllTermsOf S); 
    
      defpred
    
    P[
    Nat] means ((TE
    . ($1 
    + 1)) 
    | (T 
    . $1)) 
    = ( 
    id (T 
    . $1)); 
    
      
    
      
    
    A1: 
    P[
    0 ] 
    
      proof
    
        reconsider Z =
    0 , O = 1 as 
    Element of 
    NAT ; 
    
        (TE
    . O) is 
    Element of ( 
    Funcs (TT,TT)); 
    
        then (TE
    . O) is 
    Function of TT, TT & (T 
    . Z) 
    c= TT by 
    FOMODEL1: 2;
    
        then
    
        reconsider f = ((TE
    . 1) 
    | (T 
    .  
    0 )) as 
    Function of (T 
    .  
    0 ), TT by 
    FUNCT_2: 32;
    
        
    
        
    
    A2: ( 
    dom f) 
    = (T 
    .  
    0 ) by 
    FUNCT_2:def 1;
    
        now
    
          let x be
    object;
    
          assume x
    in (T 
    .  
    0 ); 
    
          then
    
          reconsider xx = x as
    Element of (T 
    . Z); 
    
          reconsider t = xx as
    0  
    -termal  
    string of S by 
    FOMODEL1:def 33;
    
          
    
          thus (f
    . x) 
    = ((TE 
    . ( 
    0  
    + 1)) 
    . t) by 
    A2,
    FUNCT_1: 47
    
          .= x by
    Lm27;
    
        end;
    
        hence thesis by
    FUNCT_1: 17,
    A2;
    
      end;
    
      
    
      
    
    A3: for n st 
    P[n] holds
    P[(n
    + 1)] 
    
      proof
    
        let n;
    
        assume
    
        
    
    A4: 
    P[n];
    
        reconsider nn = n, NN = (n
    + 1), NNN = ((n 
    + 1) 
    + 1) as 
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
        (TE
    . NNN) is 
    Element of ( 
    Funcs (TT,TT)); 
    
        then (TE
    . NNN) is 
    Function of TT, TT & (T 
    . NN) 
    c= TT by 
    FOMODEL1: 2;
    
        then
    
        reconsider f = ((TE
    . NNN) 
    | (T 
    . NN)) as 
    Function of (T 
    . NN), TT by 
    FUNCT_2: 32;
    
        
    
        
    
    A5: ( 
    dom f) 
    = ( 
    dom ( 
    id (T 
    . NN))) by 
    FUNCT_2:def 1;
    
        now
    
          let x be
    object;
    
          assume
    
          
    
    A6: x 
    in ( 
    dom f); 
    
          then
    
          reconsider tt = x as
    Element of (T 
    . (nn 
    + 1)); 
    
          reconsider t = tt as (nn
    + 1) 
    -termal  
    string of S by 
    FOMODEL1:def 33;
    
          set s = (F
    . t), p = 
    |.(
    ar s).|; 
    
          
    
          
    
    A7: ( 
    dom (X 
    -freeInterpreter s)) 
    = (p 
    -tuples_on TT) by 
    FUNCT_2:def 1;
    
          reconsider subt = (
    SubTerms t) as (T 
    . n) 
    -valued  
    Function;
    
          reconsider subtt = subt as
    Element of ( 
    dom (X 
    -freeInterpreter s)) by 
    FOMODEL0: 16,
    A7;
    
          
    
          
    
    A8: subtt 
    in ( 
    dom (X 
    -freeInterpreter s)) & (X 
    -freeInterpreter s) 
    = ((s 
    -compound ) 
    | (p 
    -tuples_on TT)) by 
    Def3;
    
          (
    SubTerms t) 
    in (TT 
    * ); 
    
          then
    
          reconsider subttt = (
    SubTerms t) as 
    Element of (((SS 
    * ) 
    \  
    {
    {} }) 
    * ); 
    
          reconsider temp = (subt
    null (T 
    . n)) as 
    Function;
    
          
    
          thus (f
    . x) 
    = ((TE 
    . NNN) 
    . x) by 
    A6,
    FUNCT_1: 47
    
          .= ((I
    . s) 
    . ((TE 
    . (n 
    + 1)) 
    * ((T 
    . n) 
    |` subt))) by 
    FOMODEL2: 3
    
          .= ((I
    . s) 
    . ((TE 
    . (n 
    + 1)) 
    * (( 
    id (T 
    . n)) 
    * subt))) by 
    RELAT_1: 92
    
          .= ((I
    . s) 
    . (((TE 
    . (n 
    + 1)) 
    * ( 
    id (T 
    . n))) 
    * subt)) by 
    RELAT_1: 36
    
          .= ((I
    . s) 
    . (((TE 
    . (n 
    + 1)) 
    | (T 
    . n)) 
    * subt)) by 
    RELAT_1: 65
    
          .= ((I
    . s) 
    . ((T 
    . n) 
    |` subt)) by 
    RELAT_1: 92,
    A4
    
          .= ((X
    -freeInterpreter s) 
    . subt) by 
    Def4
    
          .= ((s
    -compound ) 
    . subttt) by 
    A8,
    FUNCT_1: 47
    
          .= (s
    -compound subttt) by 
    Def2
    
          .= ((
    id (T 
    . (n 
    + 1))) 
    . x) by 
    FOMODEL1:def 37;
    
        end;
    
        hence thesis by
    A5,
    FUNCT_1: 2;
    
      end;
    
      
    P[n] from
    NAT_1:sch 2(
    A1,
    A3);
    
      hence thesis;
    
    end;
    
    
    
    
    
    Lm29: (((S,X) 
    -freeInterpreter ) 
    -TermEval ) 
    = ( 
    id ( 
    AllTermsOf S)) 
    
    proof
    
      set u = the
    Element of ( 
    AllTermsOf S), I = ((S,X) 
    -freeInterpreter ), TE = ((I,u) 
    -TermEval ), T = (S 
    -termsOfMaxDepth ), F = (S 
    -firstChar ), SS = ( 
    AllSymbolsOf S), TT = ( 
    AllTermsOf S); 
    
      reconsider Tf = T as
    Function;
    
      reconsider LH = (I
    -TermEval ), RH = ( 
    id TT) as 
    Function of TT, TT; 
    
      now
    
        let tt be
    Element of TT; 
    
        consider mm such that
    
        
    
    A1: tt 
    in (Tf 
    . mm) by 
    FOMODEL1: 5;
    
        reconsider ttt = tt as
    Element of (T 
    . mm) by 
    A1;
    
        reconsider M = (mm
    + 1) as 
    Element of 
    NAT ; 
    
        reconsider tttt = tt as
    Element of (T 
    . mm) by 
    A1;
    
        set uv = (I
    -TermEval tt); 
    
        (TE
    . M) is 
    Element of ( 
    Funcs (TT,TT)); 
    
        then
    
        reconsider f = (TE
    . (mm 
    + 1)) as 
    Function of TT, TT; 
    
        (((f
    | (T 
    . mm)) 
    . ttt) 
    \+\ (f 
    . ttt)) 
    =  
    {} ; 
    
        then
    
        
    
    A2: ((f 
    | (T 
    . mm)) 
    . ttt) 
    = (f 
    . ttt) by 
    FOMODEL0: 29;
    
        
    
        
    
    A3: (( 
    id (T 
    . mm)) 
    . tttt) 
    = tttt & (( 
    id TT) 
    . tt) 
    = tt; 
    
        
    
        thus (LH
    . tt) 
    = uv by 
    FOMODEL2:def 10
    
        .= (f
    . tt) by 
    FOMODEL2:def 9,
    A1
    
        .= (RH
    . tt) by 
    A3,
    A2,
    Lm28;
    
      end;
    
      hence thesis by
    FUNCT_2: 63;
    
    end;
    
    
    
    
    
    Lm30: for R be 
    Relation of U1, U2 holds ( 
    0  
    -placesOf R) 
    = ( 
    id  
    {
    {} }) 
    
    proof
    
      let R be
    Relation of U1, U2; 
    
      ((
    0  
    -placesOf R) 
    \+\ ( 
    id  
    {
    {} })) 
    =  
    {} ; 
    
      hence thesis by
    FOMODEL0: 29;
    
    end;
    
    theorem :: 
    
    FOMODEL3:3
    
    for E be
    Equivalence_Relation of U, I be E 
    -respectingS, U
    -interpreter-like  
    Function holds ((I 
    quotient E) 
    -TermEval ) 
    = ((E 
    -class ) 
    * (I 
    -TermEval )) by 
    Lm25;
    
    theorem :: 
    
    FOMODEL3:4
    
    (((S,X)
    -freeInterpreter ) 
    -TermEval ) 
    = ( 
    id ( 
    AllTermsOf S)) by 
    Lm29;
    
    theorem :: 
    
    FOMODEL3:5
    
    for R be
    Equivalence_Relation of U1, phi be 
    0wff  
    string of S, i be R 
    -respectingS, U1
    -interpreter-like  
    Function st ((S 
    -firstChar ) 
    . phi) 
    <> ( 
    TheEqSymbOf S) holds ((i 
    quotient R) 
    -AtomicEval phi) 
    = (i 
    -AtomicEval phi) by 
    Lm26;
    
    
    
    
    
    Lm31: ((l1 
    SubstWith l2) 
    | ((S 
    -termsOfMaxDepth ) 
    . m)) is 
    Function of ((S 
    -termsOfMaxDepth ) 
    . m), ((S 
    -termsOfMaxDepth ) 
    . m) 
    
    proof
    
      set T = (S
    -termsOfMaxDepth ), F = (S 
    -firstChar ), C = (S 
    -multiCat ), SS = ( 
    AllSymbolsOf S); 
    
      set strings = ((SS
    * ) 
    \  
    {
    {} }), g = (SS 
    -concatenation ), G = ( 
    MultPlace g), e = (l1 
    SubstWith l2); 
    
      
    
      
    
    A1: for t be 
    0  
    -termal  
    string of S holds (e 
    . t) 
    in (T 
    .  
    0 ) 
    
      proof
    
        let t be
    0  
    -termal  
    string of S; 
    
        set l = (F
    . t); 
    
        
    
        
    
    A2: t 
    =  
    <*l*> by
    FOMODEL2: 1;
    
        l
    = l1 or l 
    <> l1; 
    
        then (e
    .  
    <*l*>)
    =  
    <*l2*> or (e
    .  
    <*l*>)
    =  
    <*l*> by
    FOMODEL0: 35;
    
        hence thesis by
    A2,
    FOMODEL1:def 33;
    
      end;
    
      defpred
    
    P[
    Nat] means (e
    | (T 
    . $1)) is 
    Function of (T 
    . $1), (T 
    . $1); 
    
      
    
      
    
    A3: 
    P[
    0 ] 
    
      proof
    
        reconsider z =
    0 as 
    Element of 
    NAT ; 
    
        reconsider T0 = (T
    . z) as 
    Subset of (SS 
    * ) by 
    XBOOLE_1: 1;
    
        set f = (e
    | T0); 
    
        
    
        
    
    A4: ( 
    dom f) 
    = T0 by 
    PARTFUN1:def 2;
    
        now
    
          let x be
    object;
    
          assume
    
          
    
    A5: x 
    in T0; 
    
          reconsider t = x as
    0  
    -termal  
    string of S by 
    A5,
    FOMODEL1:def 33;
    
          set l = (F
    . t); 
    
          reconsider tt = t as
    Element of T0 by 
    FOMODEL1:def 33;
    
          ((f
    . tt) 
    \+\ (e 
    . tt)) 
    =  
    {} ; 
    
          then (f
    . x) 
    = (e 
    . x) by 
    FOMODEL0: 29;
    
          then (f
    . t) 
    in T0 by 
    A1;
    
          hence (f
    . x) 
    in T0; 
    
        end;
    
        hence thesis by
    A4,
    FUNCT_2: 3;
    
      end;
    
      
    
      
    
    A6: for m st 
    P[m] holds
    P[(m
    + 1)] 
    
      proof
    
        let m;
    
        reconsider mm = m, MM = (m
    + 1) as 
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
        assume
    
        
    
    A7: 
    P[m];
    
        reconsider Tm = (T
    . mm), TM = (T 
    . MM) as 
    Subset of (SS 
    * ) by 
    XBOOLE_1: 1;
    
        reconsider f = (e
    | (T 
    . m)) as 
    Function of (T 
    . mm), (T 
    . mm) by 
    A7;
    
        set ff = (e
    | TM); 
    
        
    
        
    
    A8: ( 
    dom ff) 
    = TM by 
    PARTFUN1:def 2;
    
        now
    
          let tt be
    object;
    
          assume tt
    in TM; 
    
          then
    
          reconsider ttt = tt as
    Element of TM; 
    
          reconsider t = ttt as (mm
    + 1) 
    -termal  
    string of S by 
    TARSKI:def 3,
    FOMODEL1:def 33;
    
          set ST = (
    SubTerms t); 
    
          (
    dom f) 
    = (T 
    . mm) by 
    FUNCT_2:def 1;
    
          then (
    rng ST) 
    c= ( 
    dom f) by 
    RELAT_1:def 19;
    
          then
    
          
    
    A9: (e 
    * ST) 
    = (f 
    * ST) by 
    RELAT_1: 165;
    
          reconsider s = (F
    . t) as 
    termal  
    Element of S; 
    
          set l =
    |.(
    ar s).|; 
    
          (f
    * ST) is 
    FinSequence of (T 
    . mm) by 
    FOMODEL0: 26;
    
          then
    
          reconsider newtt = (f
    * ST) as l 
    -element  
    Element of ((T 
    . mm) 
    * ); 
    
          ((ff
    . ttt) 
    \+\ (e 
    . ttt)) 
    =  
    {} ; 
    
          then
    
          
    
    A10: (ff 
    . tt) 
    = (e 
    . tt) by 
    FOMODEL0: 29;
    
          (s
    = l1 implies (e 
    .  
    <*s*>)
    =  
    <*l2*> & (
    ar s) 
    = ( 
    ar l2)) & (s 
    <> l1 implies (e 
    .  
    <*s*>)
    =  
    <*s*> & (
    ar s) 
    = ( 
    ar s)) by 
    FOMODEL0: 35;
    
          then
    
          consider ss be
    termal  
    Element of S such that 
    
          
    
    A11: (e 
    .  
    <*s*>)
    =  
    <*ss*> & (
    ar s) 
    = ( 
    ar ss); 
    
          reconsider newttt = newtt as
    |.(
    ar ss).| 
    -element  
    Element of ((T 
    . mm) 
    * ) by 
    A11;
    
          (e
    . t) 
    = (e 
    . ( 
    <*(F
    . t)*> 
    ^ (C 
    . ST))) by 
    FOMODEL1:def 37
    
          .= ((e
    .  
    <*s*>)
    ^ (e 
    . (C 
    . ST))) by 
    FOMODEL0: 36
    
          .= (ss
    -compound newttt) by 
    FOMODEL0: 37,
    A9,
    A11;
    
          hence (ff
    . tt) 
    in (T 
    . (mm 
    + 1)) by 
    A10,
    FOMODEL1:def 33;
    
        end;
    
        hence thesis by
    A8,
    FUNCT_2: 3;
    
      end;
    
      for n holds
    P[n] from
    NAT_1:sch 2(
    A3,
    A6);
    
      hence thesis;
    
    end;
    
    definition
    
      let S, x, s, w;
    
      :: original:
    -SymbolSubstIn
    
      redefine
    
      func (x,s)
    
    -SymbolSubstIn w -> 
    string of S ; 
    
      coherence
    
      proof
    
        ((x,s)
    -SymbolSubstIn (w 
    null w)) is (( 
    len w) 
    +  
    0 ) 
    -element;
    
        hence thesis by
    FOMODEL0: 30;
    
      end;
    
    end
    
    registration
    
      let S, l1, l2, m;
    
      let t be m
    -termal  
    string of S; 
    
      cluster ((l1,l2) 
    -SymbolSubstIn t) -> m 
    -termal;
    
      coherence
    
      proof
    
        set e = (l1
    SubstWith l2), T = (S 
    -termsOfMaxDepth ), SS = ( 
    AllSymbolsOf S), IT = ((l1,l2) 
    -SymbolSubstIn t); 
    
        reconsider mm = m as
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
        reconsider f = (e
    | (T 
    . m)) as 
    Function of (T 
    . m), (T 
    . m) by 
    Lm31;
    
        reconsider tt = t as
    Element of (T 
    . m) by 
    FOMODEL1:def 33;
    
        ((f
    . tt) 
    \+\ (e 
    . tt)) 
    =  
    {} ; 
    
        then (f
    . tt) 
    = (e 
    . tt) by 
    FOMODEL0: 29;
    
        then (e
    . t) 
    in (T 
    . mm); 
    
        then IT
    in (T 
    . mm) by 
    FOMODEL0:def 22;
    
        hence thesis;
    
      end;
    
    end
    
    registration
    
      let S, t, l1, l2;
    
      cluster ((l1,l2) 
    -SymbolSubstIn t) -> 
    termal;
    
      coherence
    
      proof
    
        set IT = ((l1,l2)
    -SymbolSubstIn t), TT = ( 
    AllTermsOf S), T = (S 
    -termsOfMaxDepth ); 
    
        reconsider TF = T as
    Function;
    
        t
    in TT by 
    FOMODEL1:def 32;
    
        then
    
        consider mm such that
    
        
    
    A1: t 
    in (TF 
    . mm) by 
    FOMODEL1: 5;
    
        reconsider tm = t as mm
    -termal  
    string of S by 
    A1,
    FOMODEL1:def 33;
    
        ((l1,l2)
    -SymbolSubstIn tm) is mm 
    -termal;
    
        hence thesis;
    
      end;
    
    end
    
    
    
    
    
    Lm32: ((l1 
    SubstWith l2) 
    | ( 
    AllTermsOf S)) is 
    Function of ( 
    AllTermsOf S), ( 
    AllTermsOf S) 
    
    proof
    
      set e = (l1
    SubstWith l2), SS = ( 
    AllSymbolsOf S), TT = ( 
    AllTermsOf S); 
    
      (TT
    /\ ((SS 
    * ) 
    \  
    {
    {} })) 
    = (TT 
    null ((SS 
    * ) 
    \  
    {
    {} })) 
    
      .= TT;
    
      then
    
      reconsider TTT = TT as non
    empty  
    Subset of (SS 
    * ); 
    
      set f = (e
    | TTT); 
    
      
    
      
    
    A1: ( 
    dom f) 
    = TTT by 
    PARTFUN1:def 2;
    
      now
    
        let x be
    object;
    
        assume
    
        
    
    A2: x 
    in TTT; 
    
        then
    
        reconsider t = x as
    termal  
    string of S; 
    
        reconsider xx = x as
    Element of TTT by 
    A2;
    
        ((f
    . xx) 
    \+\ (e 
    . xx)) 
    =  
    {} ; 
    
        
    
        then (f
    . xx) 
    = (e 
    . xx) by 
    FOMODEL0: 29
    
        .= ((l1,l2)
    -SymbolSubstIn t) by 
    FOMODEL0:def 22;
    
        hence (f
    . x) 
    in TTT by 
    FOMODEL1:def 32;
    
      end;
    
      hence thesis by
    FUNCT_2: 3,
    A1;
    
    end;
    
    registration
    
      let S, l1, l2;
    
      let phi be
    0wff  
    string of S; 
    
      cluster ((l1,l2) 
    -SymbolSubstIn phi) -> 
    0wff;
    
      coherence
    
      proof
    
        set psi = ((l1,l2)
    -SymbolSubstIn phi), e = (l1 
    SubstWith l2), SS = ( 
    AllSymbolsOf S), TT = ( 
    AllTermsOf S), C = (S 
    -multiCat ); 
    
        (TT
    /\ ((SS 
    * ) 
    \  
    {
    {} })) 
    = (TT 
    null ((SS 
    * ) 
    \  
    {
    {} })) 
    
        .= TT;
    
        then
    
        reconsider TTT = TT as non
    empty  
    Subset of (SS 
    * ); 
    
        reconsider f = (e
    | TT) as 
    Function of TT, TT by 
    Lm32;
    
        consider r be
    relational  
    Element of S, V be 
    |.(
    ar r).| 
    -element  
    Element of (TT 
    * ) such that 
    
        
    
    A1: phi 
    = ( 
    <*r*>
    ^ (C 
    . V)) by 
    FOMODEL1:def 35;
    
        set m =
    |.(
    ar r).|; 
    
        reconsider FV = V as m
    -element  
    FinSequence of TT by 
    FOMODEL0: 26;
    
        reconsider newstrings = (f
    * FV) as m 
    -element  
    FinSequence of TT; 
    
        V
    in (TTT 
    * ); 
    
        then
    
        reconsider VV = V as
    Element of ((SS 
    * ) 
    * ); 
    
        
    
        
    
    A2: ( 
    rng V) 
    c= TT & ( 
    dom f) 
    = TT by 
    FUNCT_2:def 1,
    RELAT_1:def 19;
    
        psi
    = (e 
    . phi) by 
    FOMODEL0:def 22
    
        .= ((e
    .  
    <*r*>)
    ^ (e 
    . (C 
    . VV))) by 
    A1,
    FOMODEL0: 36
    
        .= (
    <*r*>
    ^ (e 
    . (C 
    . VV))) by 
    FOMODEL0: 35
    
        .= (
    <*r*>
    ^ (C 
    . (e 
    * VV))) by 
    FOMODEL0: 37
    
        .= (
    <*r*>
    ^ (C 
    . newstrings)) by 
    A2,
    RELAT_1: 165;
    
        hence thesis;
    
      end;
    
    end
    
    registration
    
      let S;
    
      let m0 be
    zero  
    number;
    
      let phi be m0
    -wff  
    string of S; 
    
      cluster ( 
    Depth phi) -> 
    zero;
    
      coherence by
    FOMODEL2:def 31;
    
    end
    
    
    
    
    
    Lm33: ex psi2 be 
    wff  
    string of S st (( 
    Depth psi1) 
    = ( 
    Depth psi2) & ((l1 
    SubstWith l2) 
    . psi1) 
    = psi2) 
    
    proof
    
      set e = (l1
    SubstWith l2), N = ( 
    TheNorSymbOf S), L = ( 
    LettersOf S); 
    
      defpred
    
    Q[
    wff  
    string of S] means ex psi be 
    wff  
    string of S st (( 
    Depth psi) 
    = ( 
    Depth $1) & (e 
    . $1) 
    = psi); 
    
      defpred
    
    P[
    Nat] means (
    Depth phi) 
    <= $1 implies 
    Q[phi];
    
      
    
      
    
    A1: 
    P[
    0 ] 
    
      proof
    
        thus (
    Depth phi) 
    <=  
    0 implies 
    Q[phi]
    
        proof
    
          set D = (
    Depth phi); 
    
          assume D
    <=  
    0 ; 
    
          then D
    =  
    0 ; 
    
          then
    
          reconsider p0 = phi as
    0  
    -wff  
    string of S by 
    FOMODEL2:def 31;
    
          reconsider psi = ((l1,l2)
    -SymbolSubstIn p0) as 
    0wff  
    string of S; 
    
          take psi;
    
          thus (
    Depth psi) 
    = D; 
    
          thus (e
    . phi) 
    = psi by 
    FOMODEL0:def 22;
    
        end;
    
      end;
    
      
    
      
    
    A2: for n st 
    P[n] holds
    P[(n
    + 1)] 
    
      proof
    
        let n;
    
        set Fn = (S
    -formulasOfMaxDepth n); 
    
        assume
    
        
    
    A3: 
    P[n];
    
        thus (
    Depth phi) 
    <= (n 
    + 1) implies 
    Q[phi]
    
        proof
    
          set D = (
    Depth phi); 
    
          assume
    
          
    
    A4: D 
    <= (n 
    + 1); 
    
          per cases ;
    
            suppose phi is
    0wff;
    
            then
    
            reconsider p0 = phi as
    0wff  
    string of S; 
    
            reconsider psi = ((l1,l2)
    -SymbolSubstIn p0) as 
    0wff  
    string of S; 
    
            take psi;
    
            thus (
    Depth psi) 
    = D; 
    
            thus (e
    . phi) 
    = psi by 
    FOMODEL0:def 22;
    
          end;
    
            suppose
    
            
    
    A5: phi is 
    exal;
    
            then
    
            consider m such that
    
            
    
    A6: D 
    = (m 
    + 1) by 
    NAT_1: 6;
    
            phi
    in (m 
    -ExFormulasOf S) by 
    A6,
    A5,
    FOMODEL2: 18;
    
            then
    
            consider v be
    Element of L, phi1 be 
    Element of (S 
    -formulasOfMaxDepth m) such that 
    
            
    
    A7: phi 
    = ( 
    <*v*>
    ^ phi1); 
    
            reconsider l = v as
    literal  
    Element of S; 
    
            reconsider phi11 = phi1 as m
    -wff  
    string of S by 
    FOMODEL2:def 24;
    
            set m1 = (
    Depth phi11); 
    
            (m1
    + 1) 
    <= (n 
    + 1) by 
    A4,
    A7,
    FOMODEL2: 17;
    
            then
    
            consider psi1 be
    wff  
    string of S such that 
    
            
    
    A8: ( 
    Depth psi1) 
    = ( 
    Depth phi11) & (e 
    . phi11) 
    = psi1 by 
    A3,
    XREAL_1: 8;
    
            l
    = l1 or l 
    <> l1; 
    
            then (e
    .  
    <*l*>)
    =  
    <*l2*> or (e
    .  
    <*l*>)
    =  
    <*l*> by
    FOMODEL0: 35;
    
            then
    
            consider s be
    literal  
    Element of S such that 
    
            
    
    A9: (e 
    .  
    <*l*>)
    =  
    <*s*>;
    
            take psi = (
    <*s*>
    ^ psi1); 
    
            
    
            thus (
    Depth psi) 
    = (( 
    Depth psi1) 
    + 1) by 
    FOMODEL2: 17
    
            .= D by
    A8,
    A7,
    FOMODEL2: 17;
    
            thus (e
    . phi) 
    = psi by 
    A9,
    A8,
    A7,
    FOMODEL0: 36;
    
          end;
    
            suppose
    
            
    
    A10: not (phi is 
    exal or phi is 
    0wff);
    
            then
    
            consider m such that
    
            
    
    A11: D 
    = (m 
    + 1) by 
    NAT_1: 6;
    
            phi
    in (m 
    -NorFormulasOf S) by 
    FOMODEL2: 18,
    A10,
    A11;
    
            then
    
            consider phi1,phi2 be
    Element of (S 
    -formulasOfMaxDepth m) such that 
    
            
    
    A12: phi 
    = (( 
    <*N*>
    ^ phi1) 
    ^ phi2); 
    
            reconsider phi11 = phi1, phi22 = phi2 as m
    -wff  
    string of S by 
    FOMODEL2:def 24;
    
            set m1 = (
    Depth phi11), m2 = ( 
    Depth phi22), M = ( 
    max (m1,m2)); 
    
            
    
            
    
    A13: ((M 
    - m1) 
    + m1) 
    >= ( 
    0  
    + m1) & ((M 
    - m2) 
    + m2) 
    >= ( 
    0  
    + m2) by 
    XREAL_1: 6;
    
            (n
    + 1) 
    >= (M 
    + 1) by 
    FOMODEL2: 17,
    A4,
    A12;
    
            then n
    >= M by 
    XREAL_1: 8;
    
            then
    Q[phi11] &
    Q[phi22] by
    A3,
    A13,
    XXREAL_0: 2;
    
            then
    
            consider psi1,psi2 be
    wff  
    string of S such that 
    
            
    
    A14: ( 
    Depth psi1) 
    = ( 
    Depth phi11) & (e 
    . phi11) 
    = psi1 & ( 
    Depth psi2) 
    = ( 
    Depth phi22) & (e 
    . phi22) 
    = psi2; 
    
            take psi = ((
    <*N*>
    ^ psi1) 
    ^ psi2); 
    
            
    
            thus D
    = (M 
    + 1) by 
    A12,
    FOMODEL2: 17
    
            .= (
    Depth psi) by 
    A14,
    FOMODEL2: 17;
    
            
    
            thus (e
    . phi) 
    = ((e 
    . ( 
    <*N*>
    ^ phi11)) 
    ^ (e 
    . phi22)) by 
    A12,
    FOMODEL0: 36
    
            .= (((e
    .  
    <*N*>)
    ^ (e 
    . phi11)) 
    ^ psi2) by 
    A14,
    FOMODEL0: 36
    
            .= psi by
    FOMODEL0: 35,
    A14;
    
          end;
    
        end;
    
      end;
    
      for n holds
    P[n] from
    NAT_1:sch 2(
    A1,
    A2);
    
      hence thesis;
    
    end;
    
    definition
    
      let S, m, w;
    
      :: original:
    null
    
      redefine
    
      func w
    
    null m -> 
    string of S ; 
    
      coherence ;
    
    end
    
    registration
    
      let S, phi, m;
    
      cluster (phi 
    null m) -> (( 
    Depth phi) 
    + m) 
    -wff;
    
      coherence
    
      proof
    
        set D = (
    Depth phi); 
    
        phi is (D
    + ( 
    0  
    * m)) 
    -wff by 
    FOMODEL2:def 31;
    
        hence thesis;
    
      end;
    
    end
    
    registration
    
      let S, m;
    
      let phi be m
    -wff  
    string of S; 
    
      cluster (m 
    - ( 
    Depth phi)) -> non 
    negative;
    
      coherence
    
      proof
    
        set D = (
    Depth phi); 
    
        D
    <= m by 
    FOMODEL2:def 31;
    
        then (D
    - D) 
    <= (m 
    - D) by 
    XREAL_1: 9;
    
        hence thesis;
    
      end;
    
    end
    
    registration
    
      let S, l1, l2, m;
    
      let phi be m
    -wff  
    string of S; 
    
      cluster ((l1,l2) 
    -SymbolSubstIn phi) -> m 
    -wff;
    
      coherence
    
      proof
    
        set D = (
    Depth phi), e = (l1 
    SubstWith l2); 
    
        reconsider d = (m
    - D) as 
    Nat;
    
        consider psi be
    wff  
    string of S such that 
    
        
    
    A1: ( 
    Depth psi) 
    = D & (e 
    . phi) 
    = psi by 
    Lm33;
    
        set DD = (
    Depth psi); 
    
        (psi
    null d) is (DD 
    + d) 
    -wff;
    
        hence thesis by
    A1,
    FOMODEL0:def 22;
    
      end;
    
    end
    
    registration
    
      let S, l1, l2, phi;
    
      cluster ((l1,l2) 
    -SymbolSubstIn phi) -> 
    wff;
    
      coherence
    
      proof
    
        set psi = ((l1,l2)
    -SymbolSubstIn phi); 
    
        consider m such that
    
        
    
    A1: phi is m 
    -wff by 
    FOMODEL2:def 25;
    
        thus thesis by
    A1;
    
      end;
    
    end
    
    
    
    
    
    Lm34: ( 
    Depth psi1) 
    = ( 
    Depth ((l1,l2) 
    -SymbolSubstIn psi1)) 
    
    proof
    
      set e = (l1
    SubstWith l2), psi = ((l1,l2) 
    -SymbolSubstIn psi1); 
    
      consider psi2 such that
    
      
    
    A1: ( 
    Depth psi2) 
    = ( 
    Depth psi1) & psi2 
    = (e 
    . psi1) by 
    Lm33;
    
      thus thesis by
    A1,
    FOMODEL0:def 22;
    
    end;
    
    registration
    
      let S, l1, l2, phi;
    
      cluster (( 
    Depth ((l1,l2) 
    -SymbolSubstIn phi)) 
    \+\ ( 
    Depth phi)) -> 
    empty;
    
      coherence
    
      proof
    
        (
    Depth ((l1,l2) 
    -SymbolSubstIn phi)) 
    = ( 
    Depth phi) by 
    Lm34;
    
        hence thesis;
    
      end;
    
    end
    
    theorem :: 
    
    FOMODEL3:6
    
    for T be
    |.(
    ar a).| 
    -element  
    Element of (( 
    AllTermsOf S) 
    * ) holds ( not a is 
    relational implies ((X 
    -freeInterpreter a) 
    . T) 
    = (a 
    -compound T)) & (a is 
    relational implies ((X 
    -freeInterpreter a) 
    . T) 
    = (( 
    chi (X,( 
    AtomicFormulasOf S))) 
    . (a 
    -compound T))) 
    
    proof
    
      set AT = (
    AllTermsOf S), SS = ( 
    AllSymbolsOf S), I = (X 
    -freeInterpreter a), f = (a 
    -compound ), m = 
    |.(
    ar a).|, g = (f 
    | (m 
    -tuples_on AT)), AF = ( 
    AtomicFormulasOf S), ch = ( 
    chi (X,AF)); 
    
      let T be m
    -element  
    Element of (AT 
    * ); 
    
      
    
      
    
    A1: ( 
    dom f) 
    = (((SS 
    * ) 
    \  
    {
    {} }) 
    * ) by 
    FUNCT_2:def 1;
    
      
    
      
    
    A2: (g 
    . T) 
    = (f 
    . T) & (a 
    -compound T) 
    = (f 
    . T) by 
    FOMODEL0: 16,
    FUNCT_1: 49,
    Def2;
    
      thus not a is
    relational implies (I 
    . T) 
    = (a 
    -compound T) by 
    A2,
    Def3;
    
      assume a is
    relational;
    
      
    
      then I
    = (ch 
    * g) by 
    Def3
    
      .= ((ch
    * f) 
    | (m 
    -tuples_on AT)) by 
    RELAT_1: 83;
    
      
    
      then (I
    . T) 
    = ((ch 
    * f) 
    . T) by 
    FUNCT_1: 49,
    FOMODEL0: 16
    
      .= (ch
    . (f 
    . T)) by 
    FUNCT_1: 13,
    A1;
    
      hence thesis by
    Def2;
    
    end;
    
    registration
    
      let S be
    Language;
    
      cluster 
    termal for 
    string of S; 
    
      existence
    
      proof
    
        take w =
    <* the 
    literal  
    Element of S*>; 
    
        thus thesis;
    
      end;
    
      cluster 
    0wff for 
    string of S; 
    
      existence
    
      proof
    
        take the
    Element of ( 
    AtomicFormulasOf S); 
    
        thus thesis;
    
      end;
    
    end
    
    theorem :: 
    
    FOMODEL3:7
    
    
    
    
    
    Th7: (((I 
    -TermEval ) 
    * (((((l,tt0) 
    ReassignIn ((S,X) 
    -freeInterpreter )),tt0) 
    -TermEval ) 
    . n)) 
    | ((S 
    -termsOfMaxDepth ) 
    . n)) 
    = ((((((l,((I 
    -TermEval ) 
    . tt0)) 
    ReassignIn I),((I 
    -TermEval ) 
    . tt0)) 
    -TermEval ) 
    . n) 
    | ((S 
    -termsOfMaxDepth ) 
    . n)) 
    
    proof
    
      set II = (U
    -InterpretersOf S); 
    
      reconsider u = ((I
    -TermEval ) 
    . tt0) as 
    Element of U; 
    
      set F = (S
    -firstChar ), FI = ((S,X) 
    -freeInterpreter ), H = ((l,tt0) 
    ReassignIn FI), TT = ( 
    AllTermsOf S), TI = ((I,u) 
    -TermEval ), TF = ((FI,tt0) 
    -TermEval ), TH = ((H,tt0) 
    -TermEval ), TII = (I 
    -TermEval ), J = ((l,(TII 
    . tt0)) 
    ReassignIn I), TJ = ((J,u) 
    -TermEval ), C = (S 
    -multiCat ), SS = ( 
    AllSymbolsOf S), T = (S 
    -termsOfMaxDepth ); 
    
      reconsider t0 = tt0 as
    termal  
    string of S; 
    
      set k = (
    Depth t0); 
    
      reconsider t00 = t0 as k
    -termal  
    string of S by 
    FOMODEL1:def 40;
    
      
    
      
    
    A1: l 
    in  
    {l} & (
    dom (l 
    .--> ( 
    {}  
    .--> tt0))) 
    =  
    {l} & (
    dom (l 
    .--> ( 
    {}  
    .--> (TII 
    . tt0)))) 
    =  
    {l} by
    TARSKI:def 1;
    
      then (H
    . l) 
    = ((l 
    .--> ( 
    {}  
    .--> tt0)) 
    . l) & (J 
    . l) 
    = ((l 
    .--> ( 
    {}  
    .--> (TII 
    . tt0))) 
    . l) by 
    FUNCT_4: 13;
    
      then
    
      
    
    A2: (H 
    . l) 
    = ( 
    {}  
    .--> tt0) & (J 
    . l) 
    = ( 
    {}  
    .--> (TII 
    . tt0)) by 
    A1,
    FUNCOP_1: 7;
    
      defpred
    
    P[
    Nat] means ((TII
    * (TH 
    . $1)) 
    | (T 
    . $1)) 
    = ((TJ 
    . $1) 
    | (T 
    . $1)); 
    
      
    
      
    
    A3: 
    P[
    0 ] 
    
      proof
    
        
    
        
    
    A4: ( 
    dom (TT 
    --> u)) 
    = TT & ( 
    dom (TT 
    --> tt0)) 
    = TT & ( 
    dom TII) 
    = TT by 
    FUNCT_2:def 1;
    
        (TI
    .  
    0 ) 
    = (TT 
    --> u) & (TH 
    .  
    0 ) 
    = (TT 
    --> tt0) by 
    FOMODEL2:def 8;
    
        
    
        then (TII
    * (TH 
    .  
    0 )) 
    = (TT 
    --> (TII 
    . tt0)) by 
    FUNCOP_1: 17,
    A4
    
        .= (TJ
    .  
    0 ) by 
    FOMODEL2:def 8;
    
        hence thesis;
    
      end;
    
      
    
      
    
    A5: for m st 
    P[m] holds
    P[(m
    + 1)] 
    
      proof
    
        let m;
    
        reconsider mm = m, MM = (m
    + 1) as 
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
        assume
    
        
    
    A6: 
    P[m];
    
        reconsider TM = (T
    . MM), Tm = (T 
    . mm) as 
    Subset of TT by 
    FOMODEL1: 2;
    
        (TJ
    . mm) is 
    Element of ( 
    Funcs (TT,U)) & (TI 
    . MM) is 
    Element of ( 
    Funcs (TT,U)) & (TJ 
    . MM) is 
    Element of ( 
    Funcs (TT,U)) & (TI 
    . mm) is 
    Element of ( 
    Funcs (TT,U)); 
    
        then
    
        reconsider Jm = (TJ
    . mm), JM = (TJ 
    . MM), IM = (TI 
    . MM), Imm = (TI 
    . mm) as 
    Function of TT, U; 
    
        (TH
    . mm) is 
    Element of ( 
    Funcs (TT,TT)) & (TH 
    . MM) is 
    Element of ( 
    Funcs (TT,TT)); 
    
        then
    
        reconsider Hm = (TH
    . mm), HM = (TH 
    . MM) as 
    Function of TT, TT; 
    
        set LH = ((TII
    * HM) 
    | TM), RH = (JM 
    | TM); 
    
        
    
        
    
    A7: ( 
    dom LH) 
    = TM & ( 
    dom RH) 
    = TM by 
    PARTFUN1:def 2;
    
        now
    
          let x be
    object;
    
          assume
    
          
    
    A8: x 
    in ( 
    dom LH); 
    
          then
    
          reconsider tt = x as
    Element of TT by 
    A7;
    
          reconsider t = x as (mm
    + 1) 
    -termal  
    string of S by 
    A7,
    FOMODEL1:def 33,
    A8;
    
          reconsider ttt = x as
    Element of TM by 
    A8;
    
          set ST = (
    SubTerms t), o = (F 
    . t), n = 
    |.(
    ar o).|; 
    
          ((((IM
    * HM) 
    | TM) 
    . ttt) 
    \+\ ((IM 
    * HM) 
    . ttt)) 
    =  
    {} & (((JM 
    | TM) 
    . ttt) 
    \+\ (JM 
    . ttt)) 
    =  
    {} & ((((TII 
    * HM) 
    | TM) 
    . ttt) 
    \+\ ((TII 
    * HM) 
    . ttt)) 
    =  
    {} ; 
    
          then
    
          
    
    A9: (((IM 
    * HM) 
    | TM) 
    . x) 
    = ((IM 
    * HM) 
    . x) & ((JM 
    | TM) 
    . x) 
    = (JM 
    . x) & (((TII 
    * HM) 
    | TM) 
    . x) 
    = ((TII 
    * HM) 
    . x) by 
    FOMODEL0: 29;
    
          (((IM
    * HM) 
    . tt) 
    \+\ (IM 
    . (HM 
    . tt))) 
    =  
    {} & (((TII 
    * HM) 
    . tt) 
    \+\ (TII 
    . (HM 
    . tt))) 
    =  
    {} ; 
    
          then
    
          
    
    A10: ((IM 
    * HM) 
    . t) 
    = (IM 
    . (HM 
    . t)) & ((TII 
    * HM) 
    . tt) 
    = (TII 
    . (HM 
    . tt)) by 
    FOMODEL0: 29;
    
          reconsider newterms = (Hm
    * ST) as n 
    -element  
    FinSequence of TT by 
    FOMODEL0: 26;
    
          reconsider newtermss = newterms as
    Element of (n 
    -tuples_on TT) by 
    FOMODEL0: 16;
    
          reconsider newtermsss = newterms as
    FinSequence of ((SS 
    * ) 
    \  
    {
    {} }) by 
    FOMODEL0: 26;
    
          ((((o
    -compound ) 
    | (n 
    -tuples_on TT)) 
    . newtermss) 
    \+\ ((o 
    -compound ) 
    . newtermss)) 
    =  
    {} ; 
    
          then
    
          
    
    A11: (((o 
    -compound ) 
    | (n 
    -tuples_on TT)) 
    . newterms) 
    = ((o 
    -compound ) 
    . newterms) by 
    FOMODEL0: 29;
    
          per cases ;
    
            suppose o
    = l; 
    
            then o
    = l & t is 
    0  
    -termal by 
    FOMODEL1: 16;
    
            then ((TII
    * HM) 
    . t) 
    = (TII 
    . (( 
    {}  
    .--> tt0) 
    .  
    {} )) & (JM 
    . t) 
    = (( 
    {}  
    .--> (TII 
    . tt0)) 
    .  
    {} ) & 
    {}  
    in  
    {
    {} } by 
    FOMODEL2: 3,
    TARSKI:def 1,
    A10,
    A2;
    
            then ((TII
    * HM) 
    . t) 
    = (TII 
    . tt0) & (JM 
    . t) 
    = (TII 
    . tt0) by 
    FUNCOP_1: 7;
    
            hence (LH
    . x) 
    = (RH 
    . x) by 
    A9;
    
          end;
    
            suppose o
    <> l; 
    
            then
    
            
    
    A12: not o 
    in ( 
    dom (l 
    .--> ( 
    {}  
    .--> tt0))) & not o 
    in ( 
    dom (l 
    .--> ( 
    {}  
    .--> (TII 
    . tt0)))) by 
    TARSKI:def 1;
    
            then (FI
    . o) 
    = (H 
    . o) by 
    FUNCT_4: 11;
    
            
    
            then (H
    . o) 
    = (X 
    -freeInterpreter o) by 
    Def4
    
            .= ((o
    -compound ) 
    | (n 
    -tuples_on TT)) by 
    Def3;
    
            then
    
            
    
    A13: ((H 
    . o) 
    . newterms) 
    = (o 
    -compound newtermsss) by 
    A11,
    Def2;
    
            reconsider newtermssss = newterms as n
    -element  
    Element of (TT 
    * ); 
    
            reconsider t1 = (o
    -compound newtermssss) as 
    termal  
    string of S; 
    
            set p = (
    Depth t1); 
    
            reconsider pp = p as
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
            reconsider t111 = t1 as p
    -termal  
    string of S by 
    FOMODEL1:def 40;
    
            reconsider t11 = t1 as
    Element of TT by 
    FOMODEL1:def 32;
    
            (TI
    . pp) is 
    Element of ( 
    Funcs (TT,U)); 
    
            then
    
            reconsider Ip = (TI
    . pp) as 
    Function of TT, U; 
    
            
    
            
    
    A14: (F 
    . t1) 
    = (t1 
    . 1) by 
    FOMODEL0: 6
    
            .= o by
    FINSEQ_1: 41;
    
            then
    
            
    
    A15: ( 
    SubTerms t1) 
    = newtermssss by 
    FOMODEL1:def 37;
    
            
    
            
    
    A16: ( 
    dom (Hm 
    | Tm)) 
    = Tm & ( 
    dom (Jm 
    | Tm)) 
    = Tm & ( 
    rng ST) 
    c= Tm by 
    RELAT_1:def 19,
    PARTFUN1:def 2;
    
            ((TII
    * HM) 
    . t) 
    = (TII 
    . t1) by 
    A13,
    FOMODEL2: 3,
    A10
    
            .= ((I
    . o) 
    . (TII 
    * ( 
    SubTerms t1))) by 
    A14,
    FOMODEL2: 21
    
            .= ((I
    . o) 
    . (TII 
    * ((Hm 
    | Tm) 
    * ST))) by 
    A16,
    RELAT_1: 165,
    A15
    
            .= ((I
    . o) 
    . ((TII 
    * (Hm 
    | Tm)) 
    * ST)) by 
    RELAT_1: 36
    
            .= ((I
    . o) 
    . (((TII 
    * Hm) 
    | Tm) 
    * ST)) by 
    RELAT_1: 83
    
            .= ((I
    . o) 
    . (Jm 
    * ST)) by 
    A6,
    A16,
    RELAT_1: 165
    
            .= ((J
    . o) 
    . (Jm 
    * ST)) by 
    FUNCT_4: 11,
    A12
    
            .= (JM
    . t) by 
    FOMODEL2: 3;
    
            hence (LH
    . x) 
    = (RH 
    . x) by 
    A9;
    
          end;
    
        end;
    
        hence thesis by
    A7,
    FUNCT_1: 2;
    
      end;
    
      for m holds
    P[m] from
    NAT_1:sch 2(
    A3,
    A5);
    
      hence thesis;
    
    end;
    
    definition
    
      let S, l, tt, phi0;
    
      :: 
    
    FOMODEL3:def19
    
      func (l,tt)
    
    AtomicSubst phi0 -> 
    FinSequence equals ( 
    <*((S
    -firstChar ) 
    . phi0)*> 
    ^ ((S 
    -multiCat ) 
    . ((((l,tt) 
    ReassignIn ((S, 
    {} ) 
    -freeInterpreter )) 
    -TermEval ) 
    * ( 
    SubTerms phi0)))); 
    
      coherence ;
    
    end
    
    
    
    
    
    Lm35: ((l,tt) 
    AtomicSubst phi0) is 
    0wff  
    string of S 
    
    proof
    
      set ST = (
    SubTerms phi0), FI = ((S, 
    {} ) 
    -freeInterpreter ), I = ((l,tt) 
    ReassignIn FI), C = (S 
    -multiCat ), F = (S 
    -firstChar ), r = (F 
    . phi0), n = 
    |.(
    ar r).|, TT = ( 
    AllTermsOf S), TE = (I 
    -TermEval ), SS = ( 
    AllSymbolsOf S); 
    
      reconsider STT = ST as
    FinSequence of TT by 
    FOMODEL0: 26;
    
      reconsider newterms = (TE
    * STT) as 
    FinSequence of TT; 
    
      reconsider newtermss = newterms as
    Element of ((SS 
    * ) 
    * ) by 
    TARSKI:def 3;
    
      reconsider IT = (
    <*(F
    . phi0)*> 
    ^ (C 
    . newtermss)) as 
    string of S by 
    FOMODEL0: 30;
    
      IT is
    0wff;
    
      hence thesis;
    
    end;
    
    definition
    
      let S, l, tt, phi0;
    
      :: original:
    AtomicSubst
    
      redefine
    
      func (l,tt)
    
    AtomicSubst phi0 -> 
    string of S ; 
    
      coherence by
    Lm35;
    
    end
    
    registration
    
      let S, l, tt, phi0;
    
      cluster ((l,tt) 
    AtomicSubst phi0) -> 
    0wff;
    
      coherence by
    Lm35;
    
    end
    
    
    
    
    
    Lm36: ((S 
    -firstChar ) 
    . ((l,tt) 
    AtomicSubst phi0)) 
    = ((S 
    -firstChar ) 
    . phi0) & ( 
    SubTerms ((l,tt) 
    AtomicSubst phi0)) 
    = ((((l,tt) 
    ReassignIn ((S, 
    {} ) 
    -freeInterpreter )) 
    -TermEval ) 
    * ( 
    SubTerms phi0)) 
    
    proof
    
      set psi0 = ((l,tt)
    AtomicSubst phi0), F = (S 
    -firstChar ), C = (S 
    -multiCat ), TT = ( 
    AllTermsOf S), FI = ((S, 
    {} ) 
    -freeInterpreter ), I = ((l,tt) 
    ReassignIn FI), s1 = (F 
    . phi0), s2 = (F 
    . psi0), n1 = 
    |.(
    ar s1).|, n2 = 
    |.(
    ar s2).|; 
    
      
    
      thus
    
      
    
    A1: (F 
    . psi0) 
    = (psi0 
    . 1) by 
    FOMODEL0: 6
    
      .= (F
    . phi0) by 
    FINSEQ_1: 41;
    
      reconsider ST = (
    SubTerms phi0) as n1 
    -element  
    FinSequence of TT by 
    FOMODEL0: 26;
    
      reconsider newST = ((I
    -TermEval ) 
    * ST) as n2 
    -element  
    FinSequence of TT by 
    A1;
    
      newST
    = ( 
    SubTerms psi0) by 
    A1,
    FOMODEL1:def 38;
    
      hence thesis;
    
    end;
    
    
    
    
    
    Lm37: ((I 
    -TermEval ) 
    * (((l,tt) 
    ReassignIn ((S,X) 
    -freeInterpreter )) 
    -TermEval )) 
    = (((l,((I 
    -TermEval ) 
    . tt)) 
    ReassignIn I) 
    -TermEval ) 
    
    proof
    
      set TI = (I
    -TermEval ), u = (TI 
    . tt), J = ((l,u) 
    ReassignIn I), TJ = (J 
    -TermEval ), F = (S 
    -firstChar ), C = (S 
    -multiCat ), FI = ((S,X) 
    -freeInterpreter ), FJ = ((l,tt) 
    ReassignIn FI), TF = (FJ 
    -TermEval ), TT = ( 
    AllTermsOf S), T = (S 
    -termsOfMaxDepth ); 
    
      reconsider LH = (TI
    * TF), RH = TJ as 
    Function of TT, U; 
    
      now
    
        let tt0 be
    Element of TT; 
    
        reconsider t = tt0 as
    termal  
    string of S; 
    
        set n = (
    Depth t); 
    
        reconsider nn = n, NN = (n
    + 1) as 
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
        reconsider tn = t as n
    -termal  
    string of S by 
    FOMODEL1:def 40;
    
        tn is (n
    + ( 
    0  
    * 1)) 
    -termal;
    
        then
    
        reconsider tN = tn as NN
    -termal  
    string of S; 
    
        reconsider TN = (T
    . NN), Tn = (T 
    . nn) as 
    Subset of TT by 
    FOMODEL1: 2;
    
        reconsider tnn = tn as
    Element of Tn by 
    FOMODEL1:def 33;
    
        reconsider tNN = tN as
    Element of TN by 
    FOMODEL1:def 33;
    
        (((FJ,tt)
    -TermEval ) 
    . NN) is 
    Element of ( 
    Funcs (TT,TT)); 
    
        then
    
        reconsider FJN = (((FJ,tt)
    -TermEval ) 
    . NN) as 
    Function of TT, TT; 
    
        (((J,u)
    -TermEval ) 
    . NN) is 
    Element of ( 
    Funcs (TT,U)); 
    
        then
    
        reconsider JN = (((J,u)
    -TermEval ) 
    . NN) as 
    Function of TT, U; 
    
        ((TI
    . (FJN 
    . tt0)) 
    \+\ ((TI 
    * FJN) 
    . tt0)) 
    =  
    {} & ((((TI 
    * FJN) 
    | TN) 
    . tNN) 
    \+\ ((TI 
    * FJN) 
    . tNN)) 
    =  
    {} & (((JN 
    | TN) 
    . tNN) 
    \+\ (JN 
    . tNN)) 
    =  
    {} ; 
    
        then
    
        
    
    A1: ((TI 
    * FJN) 
    . tt0) 
    = (TI 
    . (FJN 
    . tt0)) & (((TI 
    * FJN) 
    | TN) 
    . tt0) 
    = ((TI 
    * FJN) 
    . tt0) & ((JN 
    | TN) 
    . tt0) 
    = (JN 
    . tt0) by 
    FOMODEL0: 29;
    
        ((LH
    . tt0) 
    \+\ (TI 
    . (TF 
    . tt0))) 
    =  
    {} ; 
    
        
    
        then (LH
    . tt0) 
    = (TI 
    . (TF 
    . tt0)) by 
    FOMODEL0: 29
    
        .= (TI
    . (FJ 
    -TermEval tt0)) by 
    FOMODEL2:def 10
    
        .= (TI
    . (FJN 
    . tnn)) by 
    FOMODEL2:def 9
    
        .= ((((J,u)
    -TermEval ) 
    . NN) 
    . tnn) by 
    A1,
    Th7
    
        .= (J
    -TermEval tt0) by 
    FOMODEL2:def 9
    
        .= (TJ
    . tt0) by 
    FOMODEL2:def 10;
    
        hence (LH
    . tt0) 
    = (RH 
    . tt0); 
    
      end;
    
      hence thesis by
    FUNCT_2: 63;
    
    end;
    
    theorem :: 
    
    FOMODEL3:8
    
    
    
    
    
    Th8: (I 
    -AtomicEval ((l,tt) 
    AtomicSubst phi0)) 
    = (((l,((I 
    -TermEval ) 
    . tt)) 
    ReassignIn I) 
    -AtomicEval phi0) 
    
    proof
    
      set psi0 = ((l,tt)
    AtomicSubst phi0), u = ((I 
    -TermEval ) 
    . tt), J = ((l,u) 
    ReassignIn I), F = (S 
    -firstChar ), C = (S 
    -multiCat ), FI = ((S, 
    {} ) 
    -freeInterpreter ), s1 = (F 
    . phi0), s2 = (F 
    . psi0), n1 = 
    |.(
    ar s1).|, n2 = 
    |.(
    ar s2).|, TI = (I 
    -TermEval ), TJ = (J 
    -TermEval ), E = ( 
    TheEqSymbOf S), FJ = ((l,tt) 
    ReassignIn FI), d = (U 
    -deltaInterpreter ); 
    
       not s1
    in ( 
    dom (l 
    .--> ( 
    {}  
    .--> u))) by 
    TARSKI:def 1;
    
      then
    
      
    
    A1: s1 
    = s2 & (J 
    . s1) 
    = (I 
    . s1) by 
    FUNCT_4: 11,
    Lm36;
    
      
    
      
    
    A2: (TI 
    * ( 
    SubTerms psi0)) 
    = (TI 
    * ((FJ 
    -TermEval ) 
    * ( 
    SubTerms phi0))) by 
    Lm36
    
      .= ((TI
    * (FJ 
    -TermEval )) 
    * ( 
    SubTerms phi0)) by 
    RELAT_1: 36
    
      .= (TJ
    * ( 
    SubTerms phi0)) by 
    Lm37;
    
      per cases ;
    
        suppose
    
        
    
    A3: s2 
    <> E; 
    
        
    
        then (I
    -AtomicEval psi0) 
    = ((J 
    . s1) 
    . (TJ 
    * ( 
    SubTerms phi0))) by 
    FOMODEL2: 14,
    A1,
    A2
    
        .= (J
    -AtomicEval phi0) by 
    FOMODEL2: 14,
    A3,
    A1;
    
        hence thesis;
    
      end;
    
        suppose
    
        
    
    A4: s2 
    = E; 
    
        
    
        then (I
    -AtomicEval psi0) 
    = (d 
    . (TI 
    * ( 
    SubTerms psi0))) by 
    FOMODEL2: 14
    
        .= (J
    -AtomicEval phi0) by 
    FOMODEL2: 14,
    A4,
    A1,
    A2;
    
        hence thesis;
    
      end;
    
    end;
    
    registration
    
      let S, l1, l2, m;
    
      cluster ((l1 
    SubstWith l2) 
    | ((S 
    -termsOfMaxDepth ) 
    . m)) -> ((S 
    -termsOfMaxDepth ) 
    . m) 
    -valued;
    
      coherence
    
      proof
    
        set s = (l1
    SubstWith l2), T = (S 
    -termsOfMaxDepth ), SS = ( 
    AllSymbolsOf S); 
    
        reconsider Tm = (T
    . m) as 
    Subset of (SS 
    * ) by 
    XBOOLE_1: 1;
    
        set f = (s
    | Tm); 
    
        
    
        
    
    A1: ( 
    dom f) 
    = Tm by 
    PARTFUN1:def 2;
    
        now
    
          let x be
    object;
    
          assume x
    in Tm; 
    
          then
    
          reconsider xx = x as
    Element of Tm; 
    
          reconsider t = xx as m
    -termal  
    string of S by 
    TARSKI:def 3,
    FOMODEL1:def 33;
    
          ((f
    . xx) 
    \+\ (s 
    . xx)) 
    =  
    {} ; 
    
          
    
          then (f
    . x) 
    = (s 
    . t) by 
    FOMODEL0: 29
    
          .= ((l1,l2)
    -SymbolSubstIn t) by 
    FOMODEL0:def 22;
    
          hence (f
    . x) 
    in (T 
    . m) by 
    FOMODEL1:def 33;
    
        end;
    
        hence thesis by
    FUNCT_2: 3,
    A1;
    
      end;
    
    end
    
    registration
    
      let S, l1, l2;
    
      cluster ((l1 
    SubstWith l2) 
    | ( 
    AllTermsOf S)) -> ( 
    AllTermsOf S) 
    -valued;
    
      coherence
    
      proof
    
        set f = (l1
    SubstWith l2), SS = ( 
    AllSymbolsOf S), TT = ( 
    AllTermsOf S); 
    
        reconsider TTT = TT as non
    empty  
    Subset of (SS 
    * ) by 
    XBOOLE_1: 1;
    
        
    
        
    
    A1: ( 
    dom (f 
    | TTT)) 
    = TTT by 
    PARTFUN1:def 2;
    
        now
    
          let x be
    object;
    
          assume x
    in TTT; 
    
          then
    
          reconsider tt = x as
    Element of TTT; 
    
          reconsider t = tt as
    termal  
    string of S by 
    TARSKI:def 3;
    
          (((f
    | TTT) 
    . tt) 
    \+\ (f 
    . tt)) 
    =  
    {} ; 
    
          
    
          then ((f
    | TTT) 
    . x) 
    = (f 
    . t) by 
    FOMODEL0: 29
    
          .= ((l1,l2)
    -SymbolSubstIn t) by 
    FOMODEL0:def 22;
    
          hence ((f
    | TTT) 
    . x) 
    in TTT by 
    FOMODEL1:def 32;
    
        end;
    
        hence thesis by
    A1,
    FUNCT_2: 3;
    
      end;
    
    end
    
    
    
    
    
    Lm38: ( 
    SubTerms ((l1,l2) 
    -SymbolSubstIn t)) 
    = ((l1 
    SubstWith l2) 
    * ( 
    SubTerms t)) 
    
    proof
    
      set s = (l1
    SubstWith l2), newt = ((l1,l2) 
    -SymbolSubstIn t), ST = ( 
    SubTerms t), F = (S 
    -firstChar ), C = (S 
    -multiCat ), ST2 = ( 
    SubTerms newt), SS = ( 
    AllSymbolsOf S), TT = ( 
    AllTermsOf S); 
    
      reconsider TTT = TT as
    Subset of (SS 
    * ) by 
    XBOOLE_1: 1;
    
      
    
      
    
    A1: ( 
    rng ST) 
    c= TT & ( 
    dom (s 
    | TTT)) 
    = TTT & ( 
    rng (s 
    | TT)) 
    c= TT by 
    RELAT_1:def 19,
    PARTFUN1:def 2;
    
      then
    
      reconsider ss = (s
    | TT) as 
    Function of TT, TT by 
    FUNCT_2: 2;
    
      per cases ;
    
        suppose not t is
    0  
    -termal;
    
        then
    
        reconsider s1 = (F
    . t) as non 
    literal
    ofAtomicFormula  
    Element of S by 
    FOMODEL1: 16;
    
        reconsider h = ((l1,l2)
    -SymbolSubstIn  
    <*s1*>) as 1
    -elementSS
    -valued  
    FinSequence;
    
        set s2 = (F
    . newt), n1 = 
    |.(
    ar s1).|, n2 = 
    |.(
    ar s2).|; 
    
        (ss
    * ST) 
    = (s 
    * ST) by 
    RELAT_1: 165,
    A1;
    
        then
    
        reconsider p = (s
    * ST) as n1 
    -element  
    FinSequence of TT by 
    FOMODEL0: 26;
    
        
    
        
    
    A2: newt 
    = ( 
    <*s2*>
    ^ (C 
    . ST2)) by 
    FOMODEL1:def 37;
    
        t
    = ( 
    <*s1*>
    ^ (C 
    . ST)) by 
    FOMODEL1:def 37;
    
        
    
        then (s
    . t) 
    = ((s 
    .  
    <*s1*>)
    ^ (s 
    . (C 
    . ST))) by 
    FOMODEL0: 36
    
        .= (h
    ^ (s 
    . (C 
    . ST))) by 
    FOMODEL0:def 22
    
        .= (h
    ^ (C 
    . (s 
    * ST))) by 
    FOMODEL0: 37;
    
        then
    
        
    
    A3: newt 
    = (h 
    ^ (C 
    . p)) by 
    FOMODEL0:def 22;
    
        then h
    =  
    <*s2*> & h
    =  
    <*s1*> by
    A2,
    FOMODEL0: 41,
    FOMODEL0: 34;
    
        then (h
    . 1) 
    = s1 & (h 
    . 1) 
    = s2 by 
    FINSEQ_1: 40;
    
        then
    
        reconsider pp = p as n2
    -element  
    Element of (TT 
    * ); 
    
        newt
    = ( 
    <*s2*>
    ^ (C 
    . pp)) by 
    A3,
    A2,
    FOMODEL0: 41;
    
        hence thesis by
    FOMODEL1:def 37;
    
      end;
    
        suppose t is
    0  
    -termal;
    
        then
    
        reconsider t0 = t as
    0  
    -termal  
    string of S; 
    
        reconsider newt = ((l1,l2)
    -SymbolSubstIn t0) as 
    0  
    -termal  
    string of S; 
    
        (
    SubTerms newt) 
    =  
    {} & ( 
    SubTerms t0) 
    =  
    {} ; 
    
        hence thesis;
    
      end;
    
    end;
    
    
    
    
    
    Lm39: ( 
    SubTerms ((l1,l2) 
    -SymbolSubstIn phi0)) 
    = ((l1 
    SubstWith l2) 
    * ( 
    SubTerms phi0)) 
    
    proof
    
      set s = (l1
    SubstWith l2), psi0 = ((l1,l2) 
    -SymbolSubstIn phi0), ST1 = ( 
    SubTerms phi0), F = (S 
    -firstChar ), C = (S 
    -multiCat ), ST2 = ( 
    SubTerms psi0), SS = ( 
    AllSymbolsOf S), TT = ( 
    AllTermsOf S); 
    
      reconsider TTT = TT as
    Subset of (SS 
    * ) by 
    XBOOLE_1: 1;
    
      
    
      
    
    A1: ( 
    rng ST1) 
    c= TT & ( 
    dom (s 
    | TTT)) 
    = TTT & ( 
    rng (s 
    | TT)) 
    c= TT by 
    RELAT_1:def 19,
    PARTFUN1:def 2;
    
      then
    
      reconsider ss = (s
    | TT) as 
    Function of TT, TT by 
    FUNCT_2: 2;
    
      reconsider r1 = (F
    . phi0), r2 = (F 
    . psi0) as 
    relational  
    Element of S; 
    
      (phi0
    . 1) 
    = r1 by 
    FOMODEL0: 6;
    
      then r1
    = (phi0 
    . 1) & (psi0 
    . 1) 
    = (phi0 
    . 1) by 
    FUNCT_4: 105;
    
      then
    
      
    
    A2: r1 
    = r2 by 
    FOMODEL0: 6;
    
      set n1 =
    |.(
    ar r1).|, n2 = 
    |.(
    ar r2).|; 
    
      (s
    * ST1) 
    = (ss 
    * ST1) by 
    RELAT_1: 165,
    A1;
    
      then (s
    * ST1) is n2 
    -element  
    FinSequence of TT by 
    FOMODEL0: 26,
    A2;
    
      then
    
      reconsider ST22 = (s
    * ST1) as n2 
    -element  
    Element of (TT 
    * ); 
    
      reconsider ST11 = ST1 as (SS
    * ) 
    -valued  
    FinSequence;
    
      phi0
    = ( 
    <*r1*>
    ^ (C 
    . ST1)) by 
    FOMODEL1:def 38;
    
      
    
      then (s
    . phi0) 
    = ((s 
    .  
    <*r1*>)
    ^ (s 
    . (C 
    . ST1))) by 
    FOMODEL0: 36
    
      .= (
    <*r1*>
    ^ (s 
    . (C 
    . ST1))) by 
    FOMODEL0: 35
    
      .= (
    <*r2*>
    ^ (C 
    . ST22)) by 
    FOMODEL0: 37,
    A2;
    
      then psi0
    = ( 
    <*r2*>
    ^ (C 
    . ST22)) by 
    FOMODEL0:def 22;
    
      hence thesis by
    FOMODEL1:def 38;
    
    end;
    
    
    
    
    
    Lm40: ((((l1,u) 
    ReassignIn I) 
    -TermEval ) 
    | (((( 
    AllSymbolsOf S) 
    \  
    {l2})
    * ) 
    /\ ((S 
    -termsOfMaxDepth ) 
    . m))) 
    = (((((l2,u) 
    ReassignIn I) 
    -TermEval ) 
    * (l1 
    SubstWith l2)) 
    | (((( 
    AllSymbolsOf S) 
    \  
    {l2})
    * ) 
    /\ ((S 
    -termsOfMaxDepth ) 
    . m))) 
    
    proof
    
      set I1 = ((l1,u)
    ReassignIn I), I2 = ((l2,u) 
    ReassignIn I), s = (l1 
    SubstWith l2), E1 = (I1 
    -TermEval ), E2 = (I2 
    -TermEval ), T = (S 
    -termsOfMaxDepth ), TT = ( 
    AllTermsOf S), SS = ( 
    AllSymbolsOf S), F = (S 
    -firstChar ), C = (S 
    -multiCat ), g1 = (l1 
    .--> ( 
    {}  
    .--> u)), g2 = (l2 
    .--> ( 
    {}  
    .--> u)), L = ( 
    LettersOf S); 
    
      reconsider SSS = (SS
    \  
    {l2}) as non
    empty  
    Subset of SS; 
    
      set D = (SSS
    * ); 
    
      l1
    in  
    {l1} & l2
    in  
    {l2} by
    TARSKI:def 1;
    
      then l1
    in ( 
    dom g1) & l2 
    in ( 
    dom g2); 
    
      then (I1
    . l1) 
    = (g1 
    . l1) & (I2 
    . l2) 
    = (g2 
    . l2) by 
    FUNCT_4: 13;
    
      then
    
      
    
    A1: (I1 
    . l1) 
    = ( 
    {}  
    .--> u) & (I2 
    . l2) 
    = ( 
    {}  
    .--> u) by 
    FUNCOP_1: 72;
    
      defpred
    
    P[
    Nat] means (E1
    | ((T 
    . $1) 
    /\ D)) 
    = ((E2 
    * s) 
    | ((T 
    . $1) 
    /\ D)); 
    
      
    
      
    
    A2: 
    P[
    0 ] 
    
      proof
    
        reconsider T0 = (T
    .  
    0 ) as non 
    empty  
    Subset of TT by 
    FOMODEL1: 2;
    
        reconsider T00 = T0 as non
    empty  
    Subset of (SS 
    * ) by 
    XBOOLE_1: 1;
    
        reconsider ss = (s
    | (T 
    .  
    0 )) as (T 
    .  
    0 ) 
    -valued  
    Function;
    
        reconsider X0 = (T0
    /\ D) as 
    Subset of T0; 
    
        reconsider X = (T0
    /\ D) as 
    Subset of TT by 
    XBOOLE_1: 1;
    
        (ss
    | D) is T0 
    -valued;
    
        then
    
        reconsider sss = (s
    | (T0 
    /\ D)) as T00 
    -valued  
    Function by 
    RELAT_1: 71;
    
        
    
        
    
    A3: ( 
    dom (E2 
    * sss)) 
    = X & ( 
    dom (E1 
    | X)) 
    = X by 
    PARTFUN1:def 2;
    
        (
    rng (E2 
    * sss)) 
    c= U & ( 
    rng (E1 
    | X)) 
    c= U by 
    RELAT_1:def 19;
    
        then
    
        reconsider f1 = (E1
    | X), f2 = (E2 
    * sss) as 
    Function of X, U by 
    FUNCT_2: 2,
    A3;
    
        now
    
          let x be
    object;
    
          assume
    
          
    
    A4: x 
    in X; 
    
          then
    
          reconsider X00 = X0 as non
    empty  
    Subset of D; 
    
          (
    dom sss) 
    = X & ( 
    rng sss) 
    c= T0 by 
    PARTFUN1:def 2,
    RELAT_1:def 19;
    
          then
    
          reconsider ssss = sss as
    Function of X00, T0 by 
    FUNCT_2: 2;
    
          reconsider xx = x as
    Element of X00 by 
    A4;
    
          reconsider xd = xx as
    Element of D; 
    
          reconsider t0 = x as
    0  
    -termal  
    string of S by 
    TARSKI:def 3,
    FOMODEL1:def 33,
    A4;
    
          reconsider t00 = t0 as
    Element of T0 by 
    FOMODEL1:def 33;
    
          T0
    = ( 
    AtomicTermsOf S) by 
    FOMODEL1:def 30;
    
          then
    
          reconsider tl = t00 as 1
    -element  
    FinSequence of L by 
    FOMODEL0: 12;
    
          reconsider LL = (L
    \  
    {l2}) as non
    empty  
    Subset of L; 
    
          (
    rng tl) 
    c= L & ( 
    rng xd) 
    c= (SS 
    \  
    {l2}) by
    RELAT_1:def 19;
    
          then (
    rng xx) 
    c= (L 
    /\ (SS 
    \  
    {l2})) by
    XBOOLE_1: 19;
    
          then (
    rng xx) 
    c= ((L 
    null SS) 
    \  
    {l2}) by
    XBOOLE_1: 49;
    
          then
    
          reconsider xxx = tl as 1
    -elementLL
    -valued  
    FinSequence by 
    RELAT_1:def 19;
    
          (
    {(xxx
    . 1)} 
    \ LL) 
    =  
    {} ; 
    
          then
    
          reconsider lx = (xxx
    . 1) as 
    Element of LL by 
    ZFMISC_1: 60;
    
           not lx
    in  
    {l2} by
    XBOOLE_0:def 5;
    
          then
    
          
    
    A5: lx 
    <> l2 & not lx 
    in ( 
    dom g2) by 
    TARSKI:def 1;
    
          
    
          
    
    A6: ( 
    len xxx) 
    = 1 by 
    CARD_1:def 7;
    
          reconsider newt = ((l1,l2)
    -SymbolSubstIn t0) as 
    0  
    -termal  
    string of S; 
    
          reconsider s1 = (F
    . t0), s2 = (F 
    . newt) as 
    literal  
    Element of S; 
    
          
    
          
    
    A7: s1 
    = lx & s2 
    = (newt 
    . 1) by 
    FOMODEL0: 6;
    
          (((E2
    * ssss) 
    . xx) 
    \+\ (E2 
    . (ssss 
    . xx))) 
    =  
    {} & ((sss 
    . xx) 
    \+\ (s 
    . xx)) 
    =  
    {} & ((f1 
    . xx) 
    \+\ (E1 
    . xx)) 
    =  
    {} ; 
    
          then
    
          
    
    A8: ((E2 
    * sss) 
    . x) 
    = (E2 
    . (sss 
    . x)) & (sss 
    . x) 
    = (s 
    . x) & (f1 
    . x) 
    = (E1 
    . x) by 
    FOMODEL0: 29;
    
          
    
          
    
    A9: (f2 
    . x) 
    = (E2 
    . newt) by 
    A8,
    FOMODEL0:def 22
    
          .= ((I2
    . s2) 
    . (E2 
    * ( 
    SubTerms newt))) by 
    FOMODEL2: 21
    
          .= ((I2
    . s2) 
    .  
    {} ); 
    
          
    
          
    
    A10: (f1 
    . x) 
    = ((I1 
    . s1) 
    . (E1 
    * ( 
    SubTerms t0))) by 
    A8,
    FOMODEL2: 21
    
          .= ((I1
    . s1) 
    .  
    {} ); 
    
          per cases ;
    
            suppose
    
            
    
    A11: lx 
    = l1; 
    
            t0
    =  
    <*l1*> by
    A6,
    FINSEQ_1: 40,
    A11;
    
            then newt
    =  
    <*l2*> by
    FOMODEL0: 34;
    
            hence (f1
    . x) 
    = (f2 
    . x) by 
    A11,
    A10,
    A1,
    A9,
    A7,
    FINSEQ_1: 40;
    
          end;
    
            suppose lx
    <> l1; 
    
            then (newt
    . 1) 
    = lx & not lx 
    in  
    {l1} by
    FUNCT_4: 105,
    TARSKI:def 1;
    
            then s2
    = lx & not lx 
    in ( 
    dom g1) by 
    FOMODEL0: 6;
    
            then (f2
    . x) 
    = ((I 
    . lx) 
    .  
    {} ) & (f1 
    . x) 
    = ((I 
    . lx) 
    .  
    {} ) by 
    A7,
    A9,
    A10,
    FUNCT_4: 11,
    A5;
    
            hence (f1
    . x) 
    = (f2 
    . x); 
    
          end;
    
        end;
    
        then f1
    = f2 by 
    FUNCT_2: 12;
    
        hence thesis by
    RELAT_1: 83;
    
      end;
    
      
    
      
    
    A12: for n st 
    P[n] holds
    P[(n
    + 1)] 
    
      proof
    
        let n;
    
        reconsider nn = n, NN = (n
    + 1) as 
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
        assume
    
        
    
    A13: 
    P[n];
    
        reconsider Tnn = (T
    . nn), TNN = (T 
    . NN) as non 
    empty  
    Subset of TT by 
    FOMODEL1: 2;
    
        reconsider Xn = (Tnn
    /\ D), X = (TNN 
    /\ D) as 
    Subset of TT by 
    XBOOLE_1: 1;
    
        ((s
    | (T 
    . NN)) 
    | D) is TNN 
    -valued;
    
        then
    
        reconsider sX = (s
    | X) as TT 
    -valued  
    Function by 
    RELAT_1: 71;
    
        (
    dom (s 
    | X)) 
    = X & ( 
    rng sX) 
    c= TT by 
    PARTFUN1:def 2,
    RELAT_1:def 19;
    
        then
    
        reconsider sXX = sX as
    Function of X, TT by 
    FUNCT_2: 2;
    
        ((s
    | (T 
    . nn)) 
    | D) is Tnn 
    -valued;
    
        then
    
        reconsider sXn = (s
    | Xn) as TT 
    -valued  
    Function by 
    RELAT_1: 71;
    
        
    
        
    
    A14: ( 
    dom (E1 
    | X)) 
    = X & ( 
    dom (E2 
    * sX)) 
    = X & ( 
    dom (E2 
    * sXn)) 
    = Xn by 
    PARTFUN1:def 2;
    
        (
    rng (E1 
    | X)) 
    c= U & ( 
    rng (E2 
    * sX)) 
    c= U by 
    RELAT_1:def 19;
    
        then
    
        reconsider f1 = (E1
    | X), f2 = (E2 
    * sX) as 
    Function of X, U by 
    FUNCT_2: 2,
    A14;
    
        now
    
          let x be
    object;
    
          assume
    
          
    
    A15: x 
    in X; 
    
          then
    
          reconsider XX = X as non
    empty  
    Subset of TNN; 
    
          reconsider xxx = x as
    Element of XX by 
    A15;
    
          reconsider xx = xxx as
    Element of D by 
    A15;
    
          reconsider tN = x as
    Element of TNN by 
    A15;
    
          reconsider t = tN as NN
    -termal  
    string of S by 
    TARSKI:def 3,
    FOMODEL1:def 33;
    
          reconsider ttt = t as
    Element of TT; 
    
          set d = (
    Depth t); 
    
          reconsider aux = (
    rng xx) as 
    Subset of (SS 
    \  
    {l2}) by
    RELAT_1:def 19;
    
          (aux
    * ) 
    c= D & ( 
    rng ( 
    SubTerms t)) 
    c= (( 
    rng t) 
    * ) by 
    RELAT_1:def 19;
    
          then
    
          
    
    A16: ( 
    rng ( 
    SubTerms t)) 
    c= D by 
    XBOOLE_1: 1;
    
          reconsider tt = t as (nn
    + 1) 
    -termal  
    string of S; 
    
          reconsider newt = ((l1,l2)
    -SymbolSubstIn t) as NN 
    -termal  
    string of S; 
    
          
    
          
    
    A17: ( 
    rng ( 
    SubTerms tt)) 
    c= (T 
    . nn) by 
    RELAT_1:def 19;
    
          
    
          
    
    A18: ( 
    dom (E1 
    | Xn)) 
    = Xn & ( 
    dom ((E2 
    * s) 
    | Xn)) 
    = Xn by 
    A14,
    RELAT_1: 83,
    PARTFUN1:def 2;
    
          ((f1
    . xxx) 
    \+\ (E1 
    . xxx)) 
    =  
    {} & (((s 
    | XX) 
    . xxx) 
    \+\ (s 
    . xxx)) 
    =  
    {} & (((E2 
    * sXX) 
    . xxx) 
    \+\ (E2 
    . (sXX 
    . xxx))) 
    =  
    {} ; 
    
          then
    
          
    
    A19: (f1 
    . x) 
    = (E1 
    . x) & (sX 
    . x) 
    = (s 
    . x) & (f2 
    . x) 
    = (E2 
    . (sX 
    . x)) by 
    FOMODEL0: 29;
    
          per cases ;
    
            suppose d
    =  
    0 ; 
    
            then
    
            reconsider t0 = t as
    0  
    -termal  
    string of S by 
    FOMODEL1:def 40;
    
            reconsider l = (F
    . t0) as 
    literal  
    Element of S; 
    
            
    
            
    
    A20: t0 
    = ( 
    <*l*>
    ^ (C 
    . ( 
    SubTerms t0))) by 
    FOMODEL1:def 37
    
            .= (
    <*l*>
    null  
    {} ); 
    
            (
    {(xx
    . 1)} 
    \ SSS) 
    =  
    {} ; 
    
            then (t0
    . 1) 
    in SSS by 
    ZFMISC_1: 60;
    
            then l
    in SSS by 
    FOMODEL0: 6;
    
            then not l
    in ( 
    dom g2) by 
    XBOOLE_0:def 5;
    
            then
    
            
    
    A21: (I2 
    . l) 
    = (I 
    . l) by 
    FUNCT_4: 11;
    
            
    
            
    
    A22: (f1 
    . t0) 
    = ((I1 
    . l) 
    . (E1 
    * ( 
    SubTerms t0))) by 
    FOMODEL2: 21,
    A19
    
            .= ((I1
    . l) 
    .  
    {} ); 
    
            per cases ;
    
              suppose
    
              
    
    A23: l 
    in ( 
    dom g1); 
    
              l
    = l1 by 
    A23,
    TARSKI:def 1;
    
              then (f1
    . t0) 
    = ((I1 
    . l1) 
    .  
    {} ) & (s 
    . t0) 
    =  
    <*l2*> by
    A22,
    FOMODEL0: 35,
    A20;
    
              
    
              then (f2
    . t0) 
    = ((I2 
    . (F 
    .  
    <*l2*>))
    . (E2 
    * ( 
    SubTerms  
    <*l2*>))) by
    FOMODEL2: 21,
    A19
    
              .= ((I2
    . ( 
    <*l2*>
    . 1)) 
    .  
    {} ) by 
    FOMODEL0: 6
    
              .= ((I2
    . l2) 
    .  
    {} ) by 
    FINSEQ_1: 40;
    
              hence (f2
    . x) 
    = (f1 
    . x) by 
    A23,
    TARSKI:def 1,
    A22,
    A1;
    
            end;
    
              suppose
    
              
    
    A24: not l 
    in ( 
    dom g1); 
    
              then (f1
    . t0) 
    = ((I 
    . l) 
    .  
    {} ) & not l 
    in  
    {l1} by
    A22,
    FUNCT_4: 11;
    
              then l
    <> l1 by 
    TARSKI:def 1;
    
              then (s
    . t0) 
    = t0 by 
    A20,
    FOMODEL0: 35;
    
              
    
              then (f2
    . t0) 
    = ((I2 
    . l) 
    . (E2 
    * ( 
    SubTerms t0))) by 
    A19,
    FOMODEL2: 21
    
              .= ((I2
    . l) 
    .  
    {} ); 
    
              hence (f2
    . x) 
    = (f1 
    . x) by 
    A24,
    A22,
    FUNCT_4: 11,
    A21;
    
            end;
    
          end;
    
            suppose d
    <>  
    0 ; 
    
            then
    
            
    
    A25: not t is 
    0  
    -termal;
    
            then
    
            reconsider s1 = (F
    . t) as non 
    literal
    ofAtomicFormula  
    Element of S by 
    FOMODEL1: 16;
    
            (t
    . 1) 
    = (F 
    . t) & (F 
    . t) is non 
    literal by 
    FOMODEL1: 16,
    A25,
    FOMODEL0: 6;
    
            then (newt
    . 1) 
    = s1 by 
    FUNCT_4: 105;
    
            then
    
            reconsider s2 = (F
    . newt) as non 
    literal
    ofAtomicFormula  
    Element of S by 
    FOMODEL0: 6;
    
            ( not s1
    in ( 
    dom g1)) & ( not s2 
    in ( 
    dom g2)) by 
    TARSKI:def 1;
    
            then
    
            
    
    A26: (I1 
    . s1) 
    = (I 
    . s1) & (I2 
    . s2) 
    = (I 
    . s2) by 
    FUNCT_4: 11;
    
            s1
    <> l1; 
    
            then (t
    . 1) 
    <> l1 by 
    FOMODEL0: 6;
    
            
    
            then (newt
    . 1) 
    = (t 
    . 1) by 
    FUNCT_4: 105
    
            .= s1 by
    FOMODEL0: 6;
    
            then
    
            
    
    A27: s1 
    = s2 by 
    FOMODEL0: 6;
    
            
    
            thus (f2
    . x) 
    = (E2 
    . newt) by 
    A19,
    FOMODEL0:def 22
    
            .= ((I2
    . s2) 
    . (E2 
    * ( 
    SubTerms newt))) by 
    FOMODEL2: 21
    
            .= ((I2
    . s2) 
    . (E2 
    * (s 
    * ( 
    SubTerms t)))) by 
    Lm38
    
            .= ((I
    . s2) 
    . ((E2 
    * s) 
    * ( 
    SubTerms t))) by 
    A26,
    RELAT_1: 36
    
            .= ((I
    . s2) 
    . (((E2 
    * s) 
    | ((T 
    . n) 
    /\ D)) 
    * ( 
    SubTerms t))) by 
    RELAT_1: 165,
    A17,
    A16,
    XBOOLE_1: 19,
    A18
    
            .= ((I
    . s2) 
    . (E1 
    * ( 
    SubTerms t))) by 
    RELAT_1: 165,
    A17,
    A16,
    XBOOLE_1: 19,
    A18,
    A13
    
            .= (f1
    . x) by 
    A19,
    A26,
    A27,
    FOMODEL2: 21;
    
          end;
    
        end;
    
        then f1
    = f2 by 
    FUNCT_2: 12;
    
        hence thesis by
    RELAT_1: 83;
    
      end;
    
      for m holds
    P[m] from
    NAT_1:sch 2(
    A2,
    A12);
    
      hence thesis;
    
    end;
    
    
    
    
    
    Lm41: phi0 is (( 
    AllSymbolsOf S) 
    \  
    {l2})
    -valued implies (((l1,u) 
    ReassignIn I) 
    -AtomicEval phi0) 
    = (((l2,u) 
    ReassignIn I) 
    -AtomicEval ((l1,l2) 
    -SymbolSubstIn phi0)) 
    
    proof
    
      set I1 = ((l1,u)
    ReassignIn I), I2 = ((l2,u) 
    ReassignIn I), s = (l1 
    SubstWith l2), E1 = (I1 
    -TermEval ), E2 = (I2 
    -TermEval ), T = (S 
    -termsOfMaxDepth ), TT = ( 
    AllTermsOf S), SS = ( 
    AllSymbolsOf S), F = (S 
    -firstChar ), C = (S 
    -multiCat ), g1 = (l1 
    .--> ( 
    {}  
    .--> u)), g2 = (l2 
    .--> ( 
    {}  
    .--> u)), L = ( 
    LettersOf S), E = ( 
    TheEqSymbOf S), d = (U 
    -deltaInterpreter ), SSS = (SS 
    \  
    {l2});
    
      reconsider SSSS = SSS as non
    empty  
    Subset of SS; 
    
      reconsider psi0 = ((l1,l2)
    -SymbolSubstIn phi0) as 
    0wff  
    string of S; 
    
      reconsider r = (F
    . phi0), r2 = (F 
    . psi0) as 
    relational  
    Element of S; 
    
      (phi0
    . 1) 
    = r by 
    FOMODEL0: 6;
    
      
    
      then
    
      
    
    A1: r 
    = (psi0 
    . 1) by 
    FUNCT_4: 105
    
      .= r2 by
    FOMODEL0: 6;
    
       not r
    in ( 
    dom g1) & not r 
    in ( 
    dom g2) by 
    TARSKI:def 1;
    
      then
    
      
    
    A2: (I1 
    . r) 
    = (I 
    . r) & (I2 
    . r) 
    = (I 
    . r) by 
    FUNCT_4: 11;
    
      (
    dom E1) 
    = TT & ( 
    dom E2) 
    = TT by 
    FUNCT_2:def 1;
    
      then
    
      
    
    A3: ( 
    dom (E1 
    | (SSS 
    * ))) 
    = (TT 
    /\ (SSS 
    * )) & ( 
    dom (s 
    | (SSSS 
    * ))) 
    = (SSSS 
    * ) by 
    PARTFUN1:def 2,
    RELAT_1: 61;
    
      reconsider ST1 = (
    SubTerms phi0) as 
    Element of (TT 
    * ); 
    
      consider mm such that
    
      
    
    A4: ( 
    SubTerms phi0) is 
    Element of ((T 
    . mm) 
    * ) by 
    Lm3;
    
      reconsider Tm = (T
    . mm) as non 
    empty  
    Subset of TT by 
    FOMODEL1: 2;
    
      
    
      
    
    A5: ( 
    dom (E1 
    | ((SSS 
    * ) 
    /\ Tm))) 
    = ( 
    dom ((E1 
    | (SSS 
    * )) 
    | Tm)) by 
    RELAT_1: 71
    
      .= ((
    dom (E1 
    | (SSS 
    * ))) 
    /\ Tm) by 
    RELAT_1: 61
    
      .= ((Tm
    null TT) 
    /\ (SSS 
    * )) by 
    A3,
    XBOOLE_1: 16
    
      .= ((SSS
    * ) 
    /\ Tm); 
    
      
    
      
    
    A6: ( 
    dom (s 
    | ((SSS 
    * ) 
    /\ Tm))) 
    = ( 
    dom ((s 
    | (SSS 
    * )) 
    | Tm)) by 
    RELAT_1: 71
    
      .= ((SSS
    * ) 
    /\ Tm) by 
    A3,
    RELAT_1: 61;
    
      assume phi0 is SSS
    -valued;
    
      then
    
      reconsider R = (
    rng phi0) as non 
    empty  
    Subset of SSSS by 
    RELAT_1:def 19;
    
      (
    rng ( 
    SubTerms phi0)) 
    c= (R 
    * ) & (R 
    * ) 
    c= (SSS 
    * ) by 
    RELAT_1:def 19;
    
      then
    
      
    
    A7: ( 
    rng ( 
    SubTerms phi0)) 
    c= (SSS 
    * ) & ( 
    rng ( 
    SubTerms phi0)) 
    c= Tm by 
    RELAT_1:def 19,
    A4;
    
      
    
      
    
    A8: (E1 
    * ( 
    SubTerms phi0)) 
    = ((E1 
    | ((SSS 
    * ) 
    /\ Tm)) 
    * ( 
    SubTerms phi0)) by 
    A7,
    XBOOLE_1: 19,
    A5,
    RELAT_1: 165
    
      .= (((E2
    * s) 
    | ((SSS 
    * ) 
    /\ Tm)) 
    * ( 
    SubTerms phi0)) by 
    Lm40
    
      .= ((E2
    * (s 
    | ((SSS 
    * ) 
    /\ Tm))) 
    * ( 
    SubTerms phi0)) by 
    RELAT_1: 83
    
      .= (E2
    * ((s 
    | ((SSS 
    * ) 
    /\ Tm)) 
    * ( 
    SubTerms phi0))) by 
    RELAT_1: 36
    
      .= (E2
    * (s 
    * ( 
    SubTerms phi0))) by 
    A7,
    XBOOLE_1: 19,
    A6,
    RELAT_1: 165
    
      .= (E2
    * ( 
    SubTerms psi0)) by 
    Lm39;
    
      per cases ;
    
        suppose
    
        
    
    A9: r 
    <> E; 
    
        
    
        then (I1
    -AtomicEval phi0) 
    = ((I2 
    . r2) 
    . (E2 
    * ( 
    SubTerms psi0))) by 
    FOMODEL2: 14,
    A8,
    A1,
    A2
    
        .= (I2
    -AtomicEval psi0) by 
    FOMODEL2: 14,
    A9,
    A1;
    
        hence thesis;
    
      end;
    
        suppose
    
        
    
    A10: r 
    = E; 
    
        
    
        then (I1
    -AtomicEval phi0) 
    = (d 
    . (E1 
    * ( 
    SubTerms phi0))) by 
    FOMODEL2: 14
    
        .= (I2
    -AtomicEval psi0) by 
    A10,
    A1,
    FOMODEL2: 14,
    A8;
    
        hence thesis;
    
      end;
    
    end;
    
    theorem :: 
    
    FOMODEL3:9
    
    
    
    
    
    Th9: ( not l2 
    in ( 
    rng psi)) implies for I be 
    Element of (U 
    -InterpretersOf S) holds (((l1,u1) 
    ReassignIn I) 
    -TruthEval psi) 
    = (((l2,u1) 
    ReassignIn I) 
    -TruthEval ((l1,l2) 
    -SymbolSubstIn psi)) 
    
    proof
    
      set II = (U
    -InterpretersOf S), s = (l1 
    SubstWith l2), SS = ( 
    AllSymbolsOf S), SSS = (SS 
    \  
    {l2}), TT = (
    AllTermsOf S), T = (S 
    -termsOfMaxDepth ), F = (S 
    -firstChar ), N = ( 
    TheNorSymbOf S); 
    
      reconsider SSSS = SSS as non
    empty  
    Subset of SS; 
    
      defpred
    
    P[
    Nat] means for I be
    Element of II, u, phi st phi is $1 
    -wff & phi is SSS 
    -valued holds (((l1,u) 
    ReassignIn I) 
    -TruthEval phi) 
    = (((l2,u) 
    ReassignIn I) 
    -TruthEval ((l1,l2) 
    -SymbolSubstIn phi)); 
    
      
    
      
    
    A1: 
    P[
    0 ] 
    
      proof
    
        let I be
    Element of II; 
    
        let u, phi;
    
        set I1 = ((l1,u)
    ReassignIn I), I2 = ((l2,u) 
    ReassignIn I); 
    
        assume phi is
    0  
    -wff;
    
        then
    
        reconsider phi0 = phi as
    0wff  
    string of S; 
    
        assume phi is SSS
    -valued;
    
        then (I1
    -TruthEval phi0) 
    = (I2 
    -TruthEval ((l1,l2) 
    -SymbolSubstIn phi0)) by 
    Lm41;
    
        hence thesis;
    
      end;
    
      
    
      
    
    A2: for n st 
    P[n] holds
    P[(n
    + 1)] 
    
      proof
    
        let n;
    
        assume
    
        
    
    A3: 
    P[n];
    
        let I be
    Element of II; 
    
        let u, phi;
    
        set I1 = ((l1,u)
    ReassignIn I), I2 = ((l2,u) 
    ReassignIn I); 
    
        assume
    
        
    
    A4: phi is (n 
    + 1) 
    -wff & phi is SSS 
    -valued;
    
        then
    
        reconsider phii = phi as (n
    + 1) 
    -wff  
    string of S; 
    
        reconsider x = phi as non
    emptySSSS
    -valued  
    FinSequence by 
    A4;
    
        (
    {(x
    . 1)} 
    \ SSS) 
    =  
    {} ; 
    
        then (phii
    . 1) 
    in SSS by 
    ZFMISC_1: 60;
    
        then (F
    . phii) 
    in SSS by 
    FOMODEL0: 6;
    
        then not (F
    . phii) 
    in  
    {l2} by
    XBOOLE_0:def 5;
    
        then
    
        
    
    A5: (F 
    . phii) 
    <> l2 by 
    TARSKI:def 1;
    
        reconsider psi = ((l1,l2)
    -SymbolSubstIn phii) as (n 
    + 1) 
    -wff  
    string of S; 
    
        reconsider phi1 = (
    head phii) as n 
    -wff  
    string of S; 
    
        reconsider psi1 = ((l1,l2)
    -SymbolSubstIn phi1) as n 
    -wff  
    string of S; 
    
        per cases ;
    
          suppose phi is
    exal & not phi is 
    0wff;
    
          then
    
          reconsider phii as non
    0wff
    exal(n
    + 1) 
    -wff  
    string of S; 
    
          set l = (F
    . phii), phi2 = ( 
    tail phii); 
    
          
    
          
    
    A6: phii 
    = (( 
    <*l*>
    ^ phi1) 
    ^ phi2) by 
    FOMODEL2: 23
    
          .= (
    <*l*>
    ^ phi1); 
    
          
    
          then (s
    . phii) 
    = ((s 
    .  
    <*l*>)
    ^ (s 
    . phi1)) by 
    FOMODEL0: 36
    
          .= ((s
    .  
    <*l*>)
    ^ psi1) by 
    FOMODEL0:def 22;
    
          then
    
          
    
    A7: psi 
    = ((s 
    .  
    <*l*>)
    ^ psi1) by 
    FOMODEL0:def 22;
    
          x
    = (( 
    <*l*>
    ^ phi1) 
    ^  
    {} ) by 
    A6;
    
          then
    
          
    
    A8: phi1 is SSSS 
    -valued by 
    FOMODEL0: 44;
    
          (I1
    -TruthEval phii) 
    = 1 iff (I2 
    -TruthEval psi) 
    = 1 
    
          proof
    
            per cases ;
    
              suppose
    
              
    
    A9: l 
    = l1; 
    
              then
    
              
    
    A10: psi 
    = ( 
    <*l2*>
    ^ psi1) by 
    A7,
    FOMODEL0: 35;
    
              hereby
    
                assume (I1
    -TruthEval phii) 
    = 1; 
    
                then
    
                consider u1 such that
    
                
    
    A11: (((l,u1) 
    ReassignIn I1) 
    -TruthEval phi1) 
    = 1 by 
    A6,
    FOMODEL2: 19;
    
                1
    = (((l1,u1) 
    ReassignIn I) 
    -TruthEval phi1) by 
    A11,
    A9,
    FOMODEL0: 43
    
                .= (((l2,u1)
    ReassignIn I) 
    -TruthEval psi1) by 
    A8,
    A3
    
                .= (((l2,u1)
    ReassignIn I2) 
    -TruthEval psi1) by 
    FOMODEL0: 43;
    
                hence (I2
    -TruthEval psi) 
    = 1 by 
    A10,
    FOMODEL2: 19;
    
              end;
    
              assume (I2
    -TruthEval psi) 
    = 1; 
    
              then
    
              consider u2 such that
    
              
    
    A12: (((l2,u2) 
    ReassignIn I2) 
    -TruthEval psi1) 
    = 1 by 
    A10,
    FOMODEL2: 19;
    
              1
    = (((l2,u2) 
    ReassignIn I) 
    -TruthEval psi1) by 
    A12,
    FOMODEL0: 43
    
              .= (((l1,u2)
    ReassignIn I) 
    -TruthEval phi1) by 
    A8,
    A3
    
              .= (((l,u2)
    ReassignIn I1) 
    -TruthEval phi1) by 
    A9,
    FOMODEL0: 43;
    
              hence (I1
    -TruthEval phii) 
    = 1 by 
    A6,
    FOMODEL2: 19;
    
            end;
    
              suppose
    
              
    
    A13: l 
    <> l1; 
    
              then
    
              
    
    A14: psi 
    = ( 
    <*l*>
    ^ psi1) by 
    A7,
    FOMODEL0: 35;
    
              hereby
    
                assume (I1
    -TruthEval phii) 
    = 1; 
    
                then
    
                consider u1 such that
    
                
    
    A15: (((l,u1) 
    ReassignIn I1) 
    -TruthEval phi1) 
    = 1 by 
    A6,
    FOMODEL2: 19;
    
                1
    = (((l1,u) 
    ReassignIn ((l,u1) 
    ReassignIn I)) 
    -TruthEval phi1) by 
    A15,
    A13,
    FOMODEL0: 43
    
                .= (((l2,u)
    ReassignIn ((l,u1) 
    ReassignIn I)) 
    -TruthEval psi1) by 
    A3,
    A8
    
                .= (((l,u1)
    ReassignIn ((l2,u) 
    ReassignIn I)) 
    -TruthEval psi1) by 
    A5,
    FOMODEL0: 43;
    
                hence (I2
    -TruthEval psi) 
    = 1 by 
    A14,
    FOMODEL2: 19;
    
              end;
    
              assume (I2
    -TruthEval psi) 
    = 1; 
    
              then
    
              consider u2 such that
    
              
    
    A16: (((l,u2) 
    ReassignIn I2) 
    -TruthEval psi1) 
    = 1 by 
    A14,
    FOMODEL2: 19;
    
              1
    = (((l2,u) 
    ReassignIn ((l,u2) 
    ReassignIn I)) 
    -TruthEval psi1) by 
    A5,
    A16,
    FOMODEL0: 43
    
              .= (((l1,u)
    ReassignIn ((l,u2) 
    ReassignIn I)) 
    -TruthEval phi1) by 
    A3,
    A8
    
              .= (((l,u2)
    ReassignIn ((l1,u) 
    ReassignIn I)) 
    -TruthEval phi1) by 
    A13,
    FOMODEL0: 43;
    
              hence (I1
    -TruthEval phii) 
    = 1 by 
    A6,
    FOMODEL2: 19;
    
            end;
    
          end;
    
          then (I1
    -TruthEval phii) 
    = 1 iff not (I2 
    -TruthEval psi) 
    =  
    0 by 
    FOMODEL0: 39;
    
          hence thesis by
    FOMODEL0: 39;
    
        end;
    
          suppose not phi is
    exal & not phi is 
    0wff;
    
          then
    
          reconsider phii as (n
    + 1) 
    -wff non 
    exal non 
    0wff  
    string of S; 
    
          reconsider phi2 = (
    tail phii) as n 
    -wff  
    string of S; 
    
          reconsider psi2 = ((l1,l2)
    -SymbolSubstIn phi2) as n 
    -wff  
    string of S; 
    
          ((F
    . phii) 
    \+\ N) 
    =  
    {} ; 
    
          then (F
    . phii) 
    = N by 
    FOMODEL0: 29;
    
          then
    
          
    
    A17: phii 
    = (( 
    <*N*>
    ^ phi1) 
    ^ phi2) by 
    FOMODEL2: 23;
    
          then phi1 is SSS
    -valued & phi2 is SSS 
    -valued & ((I1 
    -TruthEval phii) 
    = 1 iff ((I1 
    -TruthEval phi1) 
    =  
    0 & (I1 
    -TruthEval phi2) 
    =  
    0 )) by 
    A4,
    FOMODEL0: 44,
    FOMODEL2: 19;
    
          then
    
          
    
    A18: ((I1 
    -TruthEval phii) 
    = 1 iff ((I2 
    -TruthEval psi1) 
    =  
    0 & (I2 
    -TruthEval psi2) 
    =  
    0 )) by 
    A3;
    
          
    
          
    
    A19: (s 
    . phii) 
    = psi & (s 
    . phi1) 
    = psi1 & (s 
    . phi2) 
    = psi2 by 
    FOMODEL0:def 22;
    
          
    
          then psi
    = ((s 
    . ( 
    <*N*>
    ^ phi1)) 
    ^ (s 
    . phi2)) by 
    A17,
    FOMODEL0: 36
    
          .= (((s
    .  
    <*N*>)
    ^ (s 
    . phi1)) 
    ^ (s 
    . phi2)) by 
    FOMODEL0: 36
    
          .= ((
    <*N*>
    ^ psi1) 
    ^ psi2) by 
    FOMODEL0: 35,
    A19;
    
          then (I2
    -TruthEval psi) 
    = 1 iff not (I1 
    -TruthEval phi) 
    =  
    0 by 
    FOMODEL0: 39,
    FOMODEL2: 19,
    A18;
    
          hence thesis by
    FOMODEL0: 39;
    
        end;
    
          suppose phi is
    0  
    -wff;
    
          hence thesis by
    A1,
    A4;
    
        end;
    
      end;
    
      
    
      
    
    A20: for m holds 
    P[m] from
    NAT_1:sch 2(
    A1,
    A2);
    
      set m = (
    Depth psi); 
    
      assume not l2
    in ( 
    rng psi); 
    
      then
    {l2}
    misses ( 
    rng psi) & ( 
    rng psi) 
    c= SS by 
    RELAT_1:def 19,
    ZFMISC_1: 50;
    
      then
    
      
    
    A21: psi is m 
    -wff & psi is SSS 
    -valued by 
    XBOOLE_1: 86,
    FOMODEL2:def 31,
    RELAT_1:def 19;
    
      let I be
    Element of II; 
    
      thus thesis by
    A20,
    A21;
    
    end;
    
    definition
    
      let S;
    
      let l, t, n;
    
      let f be
    FinSequence-yielding  
    Function;
    
      let phi;
    
      :: 
    
    FOMODEL3:def20
    
      func (l,t,n,f)
    
    Subst2 phi -> 
    FinSequence equals 
    
      :
    
    Def20: (( 
    <*(
    TheNorSymbOf S)*> 
    ^ (f 
    . ( 
    head phi))) 
    ^ (f 
    . ( 
    tail phi))) if ( 
    Depth phi) 
    = (n 
    + 1) & not phi is 
    exal, 
    
(
    <* the 
    Element of (( 
    LettersOf S) 
    \ ((( 
    rng t) 
    \/ ( 
    rng ( 
    head phi))) 
    \/  
    {l}))*>
    ^ (f 
    . ((((S 
    -firstChar ) 
    . phi), the 
    Element of (( 
    LettersOf S) 
    \ ((( 
    rng t) 
    \/ ( 
    rng ( 
    head phi))) 
    \/  
    {l})))
    -SymbolSubstIn ( 
    head phi)))) if ( 
    Depth phi) 
    = (n 
    + 1) & phi is 
    exal & ((S 
    -firstChar ) 
    . phi) 
    <> l 
    
      otherwise (f
    . phi); 
    
      coherence ;
    
      consistency ;
    
    end
    
    registration
    
      let S;
    
      cluster -> 
    FinSequence-yielding for 
    Element of ( 
    Funcs (( 
    AllFormulasOf S),( 
    AllFormulasOf S))); 
    
      coherence ;
    
    end
    
    
    
    
    
    Lm42: for f be 
    Element of ( 
    Funcs (( 
    AllFormulasOf S),( 
    AllFormulasOf S))) holds ((l,t,n,f) 
    Subst2 phi) is 
    wff  
    string of S 
    
    proof
    
      set FF = (
    AllFormulasOf S), h = ( 
    head phi), d = ( 
    Depth phi), F = (S 
    -firstChar ); 
    
      let f be
    Element of ( 
    Funcs (FF,FF)); 
    
      reconsider ff = f as
    Function of FF, FF; 
    
      set IT = ((l,t,n,f)
    Subst2 phi), N = ( 
    TheNorSymbOf S), L = ( 
    LettersOf S), X = (L 
    \ ((( 
    rng t) 
    \/ ( 
    rng h)) 
    \/  
    {l})), ll1 = the
    Element of X; 
    
      reconsider hh = h, phii = phi as
    Element of FF by 
    FOMODEL2: 16;
    
      reconsider newhead = (ff
    . hh) as 
    wff  
    string of S by 
    TARSKI:def 3;
    
      reconsider XX = X as non
    empty  
    Subset of L; 
    
      ll1 is
    Element of XX; 
    
      then
    
      reconsider l1 = ll1 as
    literal  
    Element of S; 
    
      per cases ;
    
        suppose
    
        
    
    A1: d 
    = (n 
    + 1) & not phi is 
    exal;
    
        then not phi is
    0  
    -wff;
    
        then
    
        reconsider phiii = phi as non
    0wff non 
    exal
    wff  
    string of S by 
    A1;
    
        reconsider ttt = (
    tail phiii) as 
    wff  
    string of S; 
    
        reconsider tt = ttt as
    Element of FF by 
    FOMODEL2: 16;
    
        reconsider newtail = (ff
    . tt) as 
    wff  
    string of S by 
    TARSKI:def 3;
    
        IT
    = (( 
    <*N*>
    ^ newhead) 
    ^ newtail) by 
    A1,
    Def20;
    
        hence thesis;
    
      end;
    
        suppose
    
        
    
    A2: d 
    = (n 
    + 1) & phi is 
    exal & (F 
    . phi) 
    <> l; 
    
        reconsider phiii = phi as non
    0wff
    exal
    wff  
    string of S by 
    A2;
    
        reconsider l = (F
    . phiii) as 
    literal  
    Element of S; 
    
        reconsider newhead = ((l,l1)
    -SymbolSubstIn h) as 
    wff  
    string of S; 
    
        reconsider newheadd = newhead as
    Element of FF by 
    FOMODEL2: 16;
    
        reconsider newesthead = (ff
    . newheadd) as 
    wff  
    string of S by 
    TARSKI:def 3;
    
        IT
    = ( 
    <*l1*>
    ^ newesthead) by 
    A2,
    Def20;
    
        hence thesis;
    
      end;
    
        suppose d
    <> (n 
    + 1); 
    
        then IT
    = (ff 
    . phii) by 
    Def20;
    
        hence thesis by
    TARSKI:def 3;
    
      end;
    
        suppose (F
    . phi) 
    = l; 
    
        then (F
    . phi) 
    = l & phi is 
    exal;
    
        then IT
    = (ff 
    . phii) by 
    Def20;
    
        hence thesis by
    TARSKI:def 3;
    
      end;
    
    end;
    
    definition
    
      let S;
    
      let l, t, n;
    
      let f be
    Element of ( 
    Funcs (( 
    AllFormulasOf S),( 
    AllFormulasOf S))); 
    
      let phi;
    
      :: original:
    Subst2
    
      redefine
    
      func (l,t,n,f)
    
    Subst2 phi -> 
    wff  
    string of S ; 
    
      coherence by
    Lm42;
    
    end
    
    registration
    
      let S;
    
      let l, t, n;
    
      let f be
    Element of ( 
    Funcs (( 
    AllFormulasOf S),( 
    AllFormulasOf S))); 
    
      let phi;
    
      cluster ((l,t,n,f) 
    Subst2 phi) -> 
    wff;
    
      coherence ;
    
    end
    
    definition
    
      let S;
    
      let l, t, nn;
    
      let f be
    Element of ( 
    Funcs (( 
    AllFormulasOf S),( 
    AllFormulasOf S))); 
    
      let phi;
    
      :: original:
    Subst2
    
      redefine
    
      func (l,t,nn,f)
    
    Subst2 phi -> 
    Element of ( 
    AllFormulasOf S) ; 
    
      coherence
    
      proof
    
        ((l,t,nn,f)
    Subst2 phi) 
    in ( 
    AllFormulasOf S) by 
    FOMODEL2: 16;
    
        hence thesis;
    
      end;
    
    end
    
    definition
    
      let S, l, t, n;
    
      let f be
    Element of ( 
    Funcs (( 
    AllFormulasOf S),( 
    AllFormulasOf S))); 
    
      set FF = (
    AllFormulasOf S), D = ( 
    Funcs (FF,FF)); 
    
      :: 
    
    FOMODEL3:def21
    
      func (l,t,n,f)
    
    Subst3 -> 
    Element of ( 
    Funcs (( 
    AllFormulasOf S),( 
    AllFormulasOf S))) means 
    
      :
    
    Def21: for phi holds (it 
    . phi) 
    = ((l,t,n,f) 
    Subst2 phi); 
    
      existence
    
      proof
    
        reconsider nn = n as
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
        deffunc
    
    F(
    Element of FF) = ((l,t,nn,f) 
    Subst2 $1) qua 
    Element of FF; 
    
        consider g be
    Function of FF, FF such that 
    
        
    
    A1: for x be 
    Element of FF holds (g 
    . x) 
    =  
    F(x) from
    FUNCT_2:sch 4;
    
        reconsider gg = g as
    Element of ( 
    Funcs (FF,FF)) by 
    FUNCT_2: 8;
    
        take gg;
    
        now
    
          let phi;
    
          reconsider phii = phi as
    Element of FF by 
    FOMODEL2: 16;
    
          (g
    . phii) 
    =  
    F(phii) by
    A1;
    
          hence (gg
    . phi) 
    = ((l,t,nn,f) 
    Subst2 phi); 
    
        end;
    
        hence thesis;
    
      end;
    
      uniqueness
    
      proof
    
        let IT1,IT2 be
    Element of D; 
    
        reconsider IT11 = IT1, IT22 = IT2 as
    Function of FF, FF; 
    
        assume
    
        
    
    A2: for phi holds (IT1 
    . phi) 
    = ((l,t,n,f) 
    Subst2 phi); 
    
        assume
    
        
    
    A3: for phi holds (IT2 
    . phi) 
    = ((l,t,n,f) 
    Subst2 phi); 
    
        now
    
          let x be
    object;
    
          assume x
    in FF; 
    
          then
    
          reconsider phi = x as
    wff  
    string of S; 
    
          (IT1
    . phi) 
    = ((l,t,n,f) 
    Subst2 phi) by 
    A2
    
          .= (IT2
    . phi) by 
    A3;
    
          hence (IT11
    . x) 
    = (IT22 
    . x); 
    
        end;
    
        hence thesis by
    FUNCT_2: 12;
    
      end;
    
    end
    
    definition
    
      let S, l, t;
    
      let f be
    Element of ( 
    Funcs (( 
    AllFormulasOf S),( 
    AllFormulasOf S))); 
    
      set FF = (
    AllFormulasOf S), D = ( 
    Funcs (FF,FF)); 
    
      deffunc
    
    F(
    Nat, 
    Element of D) = ((l,t,$1,$2) 
    Subst3 ); 
    
      :: 
    
    FOMODEL3:def22
    
      func (l,t)
    
    Subst4 f -> 
    sequence of ( 
    Funcs (( 
    AllFormulasOf S),( 
    AllFormulasOf S))) means 
    
      :
    
    Def22: (it 
    .  
    0 ) 
    = f & for m holds (it 
    . (m 
    + 1)) 
    = ((l,t,m,(it 
    . m)) 
    Subst3 ); 
    
      existence
    
      proof
    
        consider g be
    sequence of D such that 
    
        
    
    A1: (g 
    .  
    0 ) 
    = f & for m holds (g 
    . (m 
    + 1)) 
    =  
    F(m,) from
    NAT_1:sch 12;
    
        take g;
    
        thus thesis by
    A1;
    
      end;
    
      uniqueness
    
      proof
    
        let IT1,IT2 be
    sequence of D; 
    
        assume that
    
        
    
    A2: (IT1 
    .  
    0 ) 
    = f and 
    
        
    
    A3: for m holds (IT1 
    . (m 
    + 1)) 
    =  
    F(m,) and
    
        
    
    A4: (IT2 
    .  
    0 ) 
    = f and 
    
        
    
    A5: for m holds (IT2 
    . (m 
    + 1)) 
    =  
    F(m,);
    
        IT1
    = IT2 from 
    NAT_1:sch 16(
    A2,
    A3,
    A4,
    A5);
    
        hence thesis;
    
      end;
    
    end
    
    definition
    
      let S, l, t;
    
      set AF = (
    AtomicFormulasOf S), TT = ( 
    AllTermsOf S); 
    
      :: 
    
    FOMODEL3:def23
    
      func l
    
    AtomicSubst t -> 
    Function of ( 
    AtomicFormulasOf S), ( 
    AtomicFormulasOf S) means 
    
      :
    
    Def23: for phi0, tt st tt 
    = t holds (it 
    . phi0) 
    = ((l,tt) 
    AtomicSubst phi0); 
    
      existence
    
      proof
    
        reconsider tt = t as
    Element of TT by 
    FOMODEL1:def 32;
    
        deffunc
    
    F(
    Element of AF) = ((l,tt) 
    AtomicSubst $1); 
    
        consider f such that
    
        
    
    A1: ( 
    dom f) 
    = AF & for x be 
    Element of AF holds (f 
    . x) 
    =  
    F(x) from
    FUNCT_1:sch 4;
    
        now
    
          let x be
    object;
    
          assume x
    in AF; 
    
          then
    
          reconsider tt = x as
    Element of AF; 
    
          (f
    . tt) 
    =  
    F(tt) by
    A1;
    
          then
    
          reconsider y = (f
    . x) as 
    0wff  
    string of S; 
    
          y
    in AF; 
    
          hence (f
    . x) 
    in AF; 
    
        end;
    
        then
    
        reconsider ff = f as
    Function of AF, AF by 
    A1,
    FUNCT_2: 3;
    
        take ff;
    
        hereby
    
          let phi0, tt1;
    
          phi0
    in AF; 
    
          then
    
          reconsider phi = phi0 as
    Element of AF; 
    
          assume tt1
    = t; 
    
          then tt1
    = tt & (f 
    . phi) 
    = ((l,tt) 
    AtomicSubst phi) by 
    A1;
    
          hence (ff
    . phi0) 
    = ((l,tt1) 
    AtomicSubst phi0); 
    
        end;
    
      end;
    
      uniqueness
    
      proof
    
        reconsider tt = t as
    Element of TT by 
    FOMODEL1:def 32;
    
        let IT1,IT2 be
    Function of AF, AF; 
    
        assume that
    
        
    
    A2: for phi0, tt st tt 
    = t holds (IT1 
    . phi0) 
    = ((l,tt) 
    AtomicSubst phi0) and 
    
        
    
    A3: for phi0, tt st tt 
    = t holds (IT2 
    . phi0) 
    = ((l,tt) 
    AtomicSubst phi0); 
    
        now
    
          let x be
    Element of AF; 
    
          consider w such that
    
          
    
    A4: x 
    = w & w is 
    0wff;
    
          reconsider phi0 = w as
    0wff  
    string of S by 
    A4;
    
          (IT1
    . phi0) 
    = ((l,tt) 
    AtomicSubst phi0) by 
    A2
    
          .= (IT2
    . phi0) by 
    A3;
    
          hence (IT1
    . x) 
    = (IT2 
    . x) by 
    A4;
    
        end;
    
        hence thesis by
    FUNCT_2: 63;
    
      end;
    
    end
    
    definition
    
      let S, l, t;
    
      :: 
    
    FOMODEL3:def24
    
      func l
    
    Subst1 t -> 
    Function equals (( 
    id ( 
    AllFormulasOf S)) 
    +* (l 
    AtomicSubst t)); 
    
      coherence ;
    
    end
    
    
    
    
    
    Lm43: (l 
    Subst1 t) 
    in ( 
    Funcs (( 
    AllFormulasOf S),( 
    AllFormulasOf S))) 
    
    proof
    
      set FF = (
    AllFormulasOf S), g = (l 
    AtomicSubst t), AF = ( 
    AtomicFormulasOf S), E = the 
    Element of FF, f = ( 
    id FF), IT = (f 
    +* g), SS = ( 
    AllSymbolsOf S); 
    
      reconsider FFF = FF as
    Subset of (SS 
    * ) by 
    XBOOLE_1: 1;
    
      (AF
    \ FF) 
    =  
    {} ; 
    
      then
    
      reconsider AFF = AF as
    Subset of FF by 
    XBOOLE_1: 37;
    
      (
    dom f) 
    = FF & ( 
    dom g) 
    = AFF by 
    FUNCT_2:def 1;
    
      then
    
      
    
    A1: ( 
    dom IT) 
    = (FF 
    null AFF) by 
    FUNCT_4:def 1;
    
      reconsider gg = g as AFF
    -valued  
    Function;
    
      reconsider ff = f as FF
    -valued  
    Function;
    
      IT
    = IT & ( 
    dom IT) 
    = FF & ( 
    rng IT) 
    c= FF by 
    RELAT_1:def 19,
    A1;
    
      hence thesis by
    FUNCT_2:def 2;
    
    end;
    
    definition
    
      let S, l, t;
    
      :: original:
    Subst1
    
      redefine
    
      func l
    
    Subst1 t -> 
    Element of ( 
    Funcs (( 
    AllFormulasOf S),(( 
    AllSymbolsOf S) 
    * ))) ; 
    
      coherence
    
      proof
    
        set FF = (
    AllFormulasOf S), SS = ( 
    AllSymbolsOf S), IT = (l 
    Subst1 t); 
    
        FF
    c= (SS 
    * ) by 
    XBOOLE_1: 1;
    
        then IT
    in ( 
    Funcs (FF,FF)) & ( 
    Funcs (FF,FF)) 
    c= ( 
    Funcs (FF,(SS 
    * ))) by 
    Lm43,
    FUNCT_5: 56;
    
        hence thesis;
    
      end;
    
    end
    
    definition
    
      let S, l, t;
    
      :: original:
    Subst1
    
      redefine
    
      func l
    
    Subst1 t -> 
    Element of ( 
    Funcs (( 
    AllFormulasOf S),( 
    AllFormulasOf S))) ; 
    
      coherence by
    Lm43;
    
    end
    
    definition
    
      let S, l, t, phi;
    
      :: 
    
    FOMODEL3:def25
    
      func (l,t)
    
    SubstIn phi -> 
    wff  
    string of S equals ((((l,t) 
    Subst4 (l 
    Subst1 t)) 
    . ( 
    Depth phi)) 
    . phi); 
    
      coherence
    
      proof
    
        set FF = (
    AllFormulasOf S), D = ( 
    Funcs (FF,FF)); 
    
        reconsider d = (
    Depth phi) as 
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
        reconsider F = ((l,t)
    Subst4 (l 
    Subst1 t)) as 
    sequence of D; 
    
        (F
    . d) is 
    Element of D; 
    
        then
    
        reconsider f = (F
    . d) as 
    Function of FF, FF; 
    
        reconsider phii = phi as
    Element of FF by 
    FOMODEL2: 16;
    
        (f
    . phii) is 
    wff  
    string of S by 
    TARSKI:def 3;
    
        hence thesis;
    
      end;
    
    end
    
    registration
    
      let S, l, t, phi;
    
      cluster ((l,t) 
    SubstIn phi) -> 
    wff;
    
      coherence ;
    
    end
    
    
    
    
    
    Lm44: for f be 
    Element of ( 
    Funcs (( 
    AllFormulasOf S),( 
    AllFormulasOf S))) holds ((((l,t) 
    Subst4 f) 
    . (m 
    + 1)) 
    . phi) 
    = ((l,t,m,(((l,t) 
    Subst4 f) 
    . m)) 
    Subst2 phi) 
    
    proof
    
      set FF = (
    AllFormulasOf S), D = ( 
    Funcs (FF,FF)); 
    
      let f be
    Element of D; 
    
      reconsider mm = m as
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
      set f4 = ((l,t)
    Subst4 f), f3 = ((l,t,m,(f4 
    . mm)) 
    Subst3 ); 
    
      ((f4
    . (mm 
    + 1)) 
    . phi) 
    = (f3 
    . phi) by 
    Def22
    
      .= ((l,t,m,(f4
    . mm)) 
    Subst2 phi) by 
    Def21;
    
      hence thesis;
    
    end;
    
    
    
    
    
    Lm45: for f be 
    Element of ( 
    Funcs (( 
    AllFormulasOf S),( 
    AllFormulasOf S))) holds ((((l,t) 
    Subst4 f) 
    . (( 
    Depth phi) 
    + m)) 
    . phi) 
    = ((((l,t) 
    Subst4 f) 
    . ( 
    Depth phi)) 
    . phi) & (((S 
    -firstChar ) 
    . phi) 
    = l implies ((((l,t) 
    Subst4 (l 
    Subst1 t)) 
    . ( 
    Depth phi)) 
    . phi) 
    = phi) 
    
    proof
    
      set TT = (
    AllTermsOf S), FF = ( 
    AllFormulasOf S), F = (S 
    -firstChar ); 
    
      let f be
    Element of ( 
    Funcs (FF,FF)); 
    
      reconsider tt = t as
    Element of TT by 
    FOMODEL1:def 32;
    
      set f0 = (l
    Subst1 t), f4 = ((l,t) 
    Subst4 f0), N = ( 
    TheNorSymbOf S), L = ( 
    LettersOf S), h = ( 
    head phi), d = ( 
    Depth phi), d1 = ( 
    Depth h), AF = ( 
    AtomicFormulasOf S), f5 = ((l,t) 
    Subst4 f); 
    
      defpred
    
    P[
    Nat] means ((f5
    . (( 
    Depth phi) 
    + $1)) 
    . phi) 
    = ((f5 
    . ( 
    Depth phi)) 
    . phi) & ((F 
    . phi) 
    = l implies ((f4 
    . $1) 
    . phi) 
    = phi); 
    
      
    
      
    
    A1: 
    P[
    0 ] 
    
      proof
    
        thus ((f5
    . (( 
    Depth phi) 
    +  
    0 )) 
    . phi) 
    = ((f5 
    . ( 
    Depth phi)) 
    . phi); 
    
        assume
    
        
    
    A2: (F 
    . phi) 
    = l; 
    
        then
    
        reconsider phii = phi as non
    0wff
    wff  
    string of S; 
    
        reconsider phiii = phii as
    Element of FF by 
    FOMODEL2: 16;
    
        ((F
    . phi) 
    \+\ N) 
    <>  
    {} by 
    A2,
    FOMODEL0: 29;
    
        then
    
        reconsider phii as
    exal non 
    0wff
    wff  
    string of S; 
    
        
    
        
    
    A3: ((( 
    id FF) 
    . phiii) 
    \+\ phiii) 
    =  
    {} ; 
    
         not phii
    in ( 
    dom (l 
    AtomicSubst t)); 
    
        
    
        then
    
        
    
    A4: (f0 
    . phii) 
    = (( 
    id FF) 
    . phii) by 
    FUNCT_4: 11
    
        .= phii by
    A3;
    
        reconsider tt = (
    tail phii) as 
    empty  
    set;
    
        thus thesis by
    Def22,
    A4;
    
      end;
    
      
    
      
    
    A5: for n st 
    P[n] holds
    P[(n
    + 1)] 
    
      proof
    
        let n;
    
        assume
    
        
    
    A6: 
    P[n];
    
        then d
    <> (d 
    + (n 
    + 1)) & 
    P[n];
    
        then
    
        
    
    A7: d 
    <> ((d 
    + n) 
    + 1) & 
    P[n];
    
        
    
        thus ((f5
    . (d 
    + (n 
    + 1))) 
    . phi) 
    = ((f5 
    . ((d 
    + n) 
    + 1)) 
    . phi) 
    
        .= ((l,t,(d
    + n),(f5 
    . (d 
    + n))) 
    Subst2 phi) by 
    Lm44
    
        .= ((f5
    . d) 
    . phi) by 
    A7,
    Def20;
    
        assume
    
        
    
    A8: (F 
    . phi) 
    = l; 
    
        then ((F
    . phi) 
    \+\ N) 
    <>  
    {} & not phi is 
    0  
    -wff by 
    FOMODEL0: 29;
    
        then phi is non
    0wff & not phi is non 
    exal non 
    0wff;
    
        then
    
        reconsider phii = phi as non
    0wff
    exal
    wff  
    string of S; 
    
        
    
        thus ((f4
    . (n 
    + 1)) 
    . phi) 
    = ((l,t,n,(f4 
    . n)) 
    Subst2 phii) by 
    Lm44
    
        .= phi by
    A6,
    A8,
    Def20;
    
      end;
    
      for n holds
    P[n] from
    NAT_1:sch 2(
    A1,
    A5);
    
      hence thesis;
    
    end;
    
    
    
    
    
    Lm46: phi is m 
    -wff implies ((l,t) 
    SubstIn phi) 
    = ((((l,t) 
    Subst4 (l 
    Subst1 t)) 
    . m) 
    . phi) 
    
    proof
    
      set d = (
    Depth phi), FF = ( 
    AllFormulasOf S); 
    
      reconsider f = (l
    Subst1 t) as 
    Element of ( 
    Funcs (FF,FF)); 
    
      assume phi is m
    -wff;
    
      then
    
      reconsider k = (m
    - d) as 
    Nat;
    
      ((((l,t)
    Subst4 f) 
    . (d 
    + k)) 
    . phi) 
    = ((l,t) 
    SubstIn phi) by 
    Lm45;
    
      hence thesis;
    
    end;
    
    registration
    
      let S, l, tt, phi0;
    
      identify (l,tt)
    AtomicSubst phi0 with (l,tt) 
    SubstIn phi0; 
    
      compatibility
    
      proof
    
        set LH = ((l,tt)
    SubstIn phi0), RH = ((l,tt) 
    AtomicSubst phi0), f1 = (l 
    Subst1 tt), f4 = ((l,tt) 
    Subst4 f1), f0 = (l 
    AtomicSubst tt), AF = ( 
    AtomicFormulasOf S); 
    
        phi0
    in AF & ( 
    dom f0) 
    = AF by 
    FUNCT_2:def 1;
    
        then
    
        reconsider phi00 = phi0 as
    Element of ( 
    dom f0); 
    
        
    
        thus LH
    = (f1 
    . phi00) by 
    Def22
    
        .= (f0
    . phi00) by 
    FUNCT_4: 13
    
        .= RH by
    Def23;
    
      end;
    
      identify (l,tt)
    SubstIn phi0 with (l,tt) 
    AtomicSubst phi0; 
    
      compatibility ;
    
    end
    
    theorem :: 
    
    FOMODEL3:10
    
    
    
    
    
    Th10: ( 
    Depth ((l,tt) 
    SubstIn psi)) 
    = ( 
    Depth psi) & for I be 
    Element of (U 
    -InterpretersOf S) holds (I 
    -TruthEval ((l,tt) 
    SubstIn psi)) 
    = (((l,((I 
    -TermEval ) 
    . tt)) 
    ReassignIn I) 
    -TruthEval psi) 
    
    proof
    
      set II = (U
    -InterpretersOf S), TT = ( 
    AllTermsOf S), AF = ( 
    AtomicFormulasOf S), F = (S 
    -firstChar ), L = ( 
    LettersOf S); 
    
      set f0 = (l
    AtomicSubst tt), f1 = (l 
    Subst1 tt), f4 = ((l,tt) 
    Subst4 f1), FF = ( 
    AllFormulasOf S), N = ( 
    TheNorSymbOf S); 
    
      defpred
    
    P[
    Nat] means for phi st (
    Depth phi) 
    <= $1 holds (( 
    Depth ((l,tt) 
    SubstIn phi)) 
    = ( 
    Depth phi) & for I be 
    Element of II holds (I 
    -TruthEval ((l,tt) 
    SubstIn phi)) 
    = (((l,((I 
    -TermEval ) 
    . tt)) 
    ReassignIn I) 
    -TruthEval phi)); 
    
      (tt
    null  
    {} ) is ( 
    {}  
    \/ ( 
    rng tt)) 
    -valued  
    FinSequence;
    
      then tt is
    FinSequence of ( 
    rng tt) by 
    FOMODEL0: 26;
    
      then
    
      reconsider ttt = tt as
    Element of (( 
    rng tt) 
    * ); 
    
      
    
      
    
    A1: 
    P[
    0 ] 
    
      proof
    
        let phi;
    
        set d = (
    Depth phi), IT = ((l,tt) 
    SubstIn phi); 
    
        assume
    
        
    
    A2: d 
    <=  
    0 ; 
    
        reconsider phii = phi as
    0wff  
    string of S by 
    A2;
    
        (
    Depth ((l,tt) 
    SubstIn phii)) 
    =  
    0 ; 
    
        hence (
    Depth IT) 
    = d; 
    
        let I be
    Element of II; 
    
        set u = ((I
    -TermEval ) 
    . tt), J = ((l,u) 
    ReassignIn I); 
    
        (I
    -TruthEval ((l,tt) 
    AtomicSubst phii)) 
    = (J 
    -TruthEval phii) by 
    Th8;
    
        hence thesis;
    
      end;
    
      
    
      
    
    A3: for n st 
    P[n] holds
    P[(n
    + 1)] 
    
      proof
    
        let n;
    
        assume
    
        
    
    A4: 
    P[n];
    
        let phi;
    
        reconsider X = (L
    \ ((( 
    rng tt) 
    \/ ( 
    rng ( 
    head phi))) 
    \/  
    {l})) as
    infinite  
    Subset of L; 
    
        reconsider XX = X as non
    empty  
    Subset of L; 
    
        set ll2 = the
    Element of X; 
    
        reconsider l2 = ll2 as
    literal  
    Element of S by 
    TARSKI:def 3;
    
        assume
    
        
    
    C0: ( 
    Depth phi) 
    <= (n 
    + 1); 
    
         not l2
    in ((( 
    rng tt) 
    \/ ( 
    rng ( 
    head phi))) 
    \/  
    {l}) by
    XBOOLE_0:def 5;
    
        then not l2
    in (( 
    rng tt) 
    \/ ( 
    rng ( 
    head phi))) & not l2 
    in  
    {l} by
    XBOOLE_0:def 3;
    
        then
    
        
    
    A5: l2 
    <> l & not l2 
    in ( 
    rng tt) & not l2 
    in ( 
    rng ( 
    head phi)) by 
    XBOOLE_0:def 3,
    TARSKI:def 1;
    
        per cases ;
    
          suppose phi is
    exal;
    
          then
    
          reconsider phii = phi as non
    0wff
    exal
    wff  
    string of S; 
    
          consider m such that
    
          
    
    A6: ( 
    Depth phii) 
    = (m 
    + 1) by 
    NAT_1: 6;
    
          reconsider mm = m as
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
          
    
          
    
    D1: m 
    <= n by 
    XREAL_1: 8,
    C0,
    A6;
    
          reconsider phii as non
    0wff
    exal(m
    + 1) 
    -wff  
    string of S by 
    A6,
    FOMODEL2:def 31;
    
          set IT = ((l,tt)
    SubstIn phii), d = ( 
    Depth phii); 
    
          reconsider l1 = (F
    . phii) as 
    literal  
    Element of S; 
    
          reconsider phi1 = (
    head phii) as 
    Element of FF by 
    FOMODEL2: 16;
    
          set d1 = (
    Depth phi1); 
    
          reconsider phi2 = (
    tail phii) as 
    empty  
    set;
    
          reconsider psi = ((l1,l2)
    -SymbolSubstIn phi) as (m 
    + 1) 
    -wff  
    string of S; 
    
          reconsider psi1 = ((l1,l2)
    -SymbolSubstIn ( 
    head phii)) as m 
    -wff  
    string of S; 
    
          ((
    Depth psi1) 
    \+\ d1) 
    =  
    {} ; 
    
          then
    
          
    
    A7: ( 
    Depth psi1) 
    = ( 
    Depth phi1) by 
    FOMODEL0: 29;
    
          reconsider Phi1 = ((l,tt)
    SubstIn psi1) as 
    wff  
    string of S; 
    
          
    
          
    
    A8: phii 
    = (( 
    <*l1*>
    ^ phi1) 
    ^ phi2) by 
    FOMODEL2: 23
    
          .= (
    <*l1*>
    ^ phi1); 
    
          d1
    <= m by 
    FOMODEL2:def 31;
    
          then
    
          
    
    A9: d1 
    <= n by 
    XXREAL_0: 2,
    D1;
    
          then
    
          
    
    A10: ( 
    Depth Phi1) 
    = ( 
    Depth ( 
    head phii)) by 
    A4,
    A7;
    
          reconsider m1 = (m
    - d1) as 
    Nat;
    
          reconsider new1 = ((l,tt)
    SubstIn phi1) as 
    wff  
    string of S; 
    
          set d11 = (
    Depth new1); 
    
          
    
          
    
    A11: IT 
    = ((l,tt,m,(f4 
    . mm)) 
    Subst2 phii) by 
    A6,
    Lm44;
    
          per cases ;
    
            suppose l1
    <> l; 
    
            
    
            then
    
            
    
    A12: IT 
    = ( 
    <*l2*>
    ^ ((f4 
    . mm) 
    . ((l1,l2) 
    -SymbolSubstIn phi1))) by 
    A6,
    Def20,
    A11
    
            .= (
    <*l2*>
    ^ ((l,tt) 
    SubstIn psi1)) by 
    Lm46;
    
            
    
            then (
    Depth IT) 
    = (( 
    Depth phi1) 
    + 1) by 
    A10,
    FOMODEL2: 17
    
            .= (
    Depth phi) by 
    A8,
    FOMODEL2: 17;
    
            hence (
    Depth ((l,tt) 
    SubstIn phi)) 
    = ( 
    Depth phi); 
    
            let I be
    Element of II; 
    
            set tu = ((I
    -TermEval ) 
    . tt), It = ((l,tu) 
    ReassignIn I); 
    
            (I
    -TruthEval IT) 
    = 1 iff (((l,tu) 
    ReassignIn I) 
    -TruthEval phii) 
    = 1 
    
            proof
    
              hereby
    
                assume (I
    -TruthEval IT) 
    = 1; 
    
                then
    
                consider u such that
    
                
    
    A13: (((l2,u) 
    ReassignIn I) 
    -TruthEval Phi1) 
    = 1 by 
    A12,
    FOMODEL2: 19;
    
                set I2 = ((l2,u)
    ReassignIn I); 
    
                1
    = (((l,((I2 
    -TermEval ) 
    . tt)) 
    ReassignIn I2) 
    -TruthEval psi1) by 
    A13,
    A7,
    A9,
    A4
    
                .= (((l,tu)
    ReassignIn I2) 
    -TruthEval psi1) by 
    A5,
    FOMODEL2: 25
    
                .= (((l2,u)
    ReassignIn ((l,tu) 
    ReassignIn I)) 
    -TruthEval psi1) by 
    A5,
    FOMODEL0: 43
    
                .= (((l1,u)
    ReassignIn ((l,tu) 
    ReassignIn I)) 
    -TruthEval ( 
    head phii)) by 
    A5,
    Th9;
    
                hence 1
    = (((l,tu) 
    ReassignIn I) 
    -TruthEval phii) by 
    A8,
    FOMODEL2: 19;
    
              end;
    
              assume (((l,tu)
    ReassignIn I) 
    -TruthEval phii) 
    = 1; 
    
              then
    
              consider u1 such that
    
              
    
    A14: (((l1,u1) 
    ReassignIn ((l,tu) 
    ReassignIn I)) 
    -TruthEval ( 
    head phii)) 
    = 1 by 
    A8,
    FOMODEL2: 19;
    
              1
    = (((l2,u1) 
    ReassignIn ((l,tu) 
    ReassignIn I)) 
    -TruthEval psi1) by 
    A14,
    Th9,
    A5
    
              .= (((l,tu)
    ReassignIn ((l2,u1) 
    ReassignIn I)) 
    -TruthEval psi1) by 
    FOMODEL0: 43,
    A5
    
              .= (((l,((((l2,u1)
    ReassignIn I) 
    -TermEval ) 
    . tt)) 
    ReassignIn ((l2,u1) 
    ReassignIn I)) 
    -TruthEval psi1) by 
    FOMODEL2: 25,
    A5
    
              .= (((l2,u1)
    ReassignIn I) 
    -TruthEval Phi1) by 
    A7,
    A9,
    A4;
    
              hence (I
    -TruthEval IT) 
    = 1 by 
    A12,
    FOMODEL2: 19;
    
            end;
    
            then (I
    -TruthEval IT) 
    = 1 iff not (((l,tu) 
    ReassignIn I) 
    -TruthEval phii) 
    =  
    0 by 
    FOMODEL0: 39;
    
            hence thesis by
    FOMODEL0: 39;
    
          end;
    
            suppose
    
            
    
    A15: l1 
    = l; 
    
            then
    
            
    
    A16: phi 
    = IT by 
    Lm45;
    
            thus (
    Depth ((l,tt) 
    SubstIn phi)) 
    = ( 
    Depth phi) by 
    A15,
    Lm45;
    
            let I be
    Element of II; 
    
            set tu = ((I
    -TermEval ) 
    . tt), It = ((l,tu) 
    ReassignIn I); 
    
            (It
    -TruthEval phii) 
    = 1 iff (I 
    -TruthEval phii) 
    = 1 
    
            proof
    
              hereby
    
                assume (It
    -TruthEval phii) 
    = 1; 
    
                then
    
                consider u such that
    
                
    
    A17: (((l1,u) 
    ReassignIn It) 
    -TruthEval phi1) 
    = 1 by 
    A8,
    FOMODEL2: 19;
    
                1
    = (((l1,u) 
    ReassignIn I) 
    -TruthEval phi1) by 
    A17,
    A15,
    FOMODEL0: 43;
    
                hence (I
    -TruthEval phii) 
    = 1 by 
    A8,
    FOMODEL2: 19;
    
              end;
    
              assume (I
    -TruthEval phii) 
    = 1; 
    
              then
    
              consider u1 such that
    
              
    
    A18: (((l1,u1) 
    ReassignIn I) 
    -TruthEval phi1) 
    = 1 by 
    A8,
    FOMODEL2: 19;
    
              (((l1,u1)
    ReassignIn It) 
    -TruthEval phi1) 
    = 1 by 
    A15,
    A18,
    FOMODEL0: 43;
    
              hence (It
    -TruthEval phii) 
    = 1 by 
    A8,
    FOMODEL2: 19;
    
            end;
    
            then (It
    -TruthEval phi) 
    = 1 iff not (I 
    -TruthEval phi) 
    =  
    0 by 
    FOMODEL0: 39;
    
            hence thesis by
    A16,
    FOMODEL0: 39;
    
          end;
    
        end;
    
          suppose not phi is
    exal & not phi is 
    0wff;
    
          then
    
          reconsider phii = phi as non
    0wff non 
    exal
    wff  
    string of S; 
    
          set IT = ((l,tt)
    SubstIn phii), d = ( 
    Depth phii); 
    
          consider m such that
    
          
    
    A19: d 
    = (m 
    + 1) by 
    NAT_1: 6;
    
          
    
          
    
    W1: ((m 
    + 1) 
    + ( 
    - 1)) 
    <= ((n 
    + 1) 
    - 1) by 
    XREAL_1: 8,
    C0,
    A19;
    
          reconsider mm = m as
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
          reconsider phii as non
    0wff non 
    exal(m
    + 1) 
    -wff  
    string of S by 
    A19,
    FOMODEL2:def 31;
    
          reconsider phi1 = (
    head phii), phi2 = ( 
    tail phii) as 
    Element of FF by 
    FOMODEL2: 16;
    
          set d1 = (
    Depth phi1), d2 = ( 
    Depth phi2); 
    
          ((F
    . phii) 
    \+\ N) 
    =  
    {} & phii 
    = (( 
    <*(F
    . phii)*> 
    ^ phi1) 
    ^ phi2) by 
    FOMODEL2: 23;
    
          then
    
          
    
    A20: phii 
    = (( 
    <*N*>
    ^ phi1) 
    ^ phi2) by 
    FOMODEL0: 29;
    
          
    
          
    
    D2: d1 
    <= m & d2 
    <= m by 
    FOMODEL2:def 31;
    
          reconsider m1 = (m
    - d1), m2 = (m 
    - d2) as 
    Nat;
    
          reconsider new1 = ((l,tt)
    SubstIn phi1), new2 = ((l,tt) 
    SubstIn phi2) as 
    wff  
    string of S; 
    
          set d11 = (
    Depth new1), d22 = ( 
    Depth new2); 
    
          
    
          
    
    A21: d1 
    <= n & d2 
    <= n by 
    W1,
    D2,
    XXREAL_0: 2;
    
          
    
          
    
    A22: IT 
    = ((l,tt,m,(f4 
    . mm)) 
    Subst2 phii) by 
    A19,
    Lm44
    
          .= ((
    <*N*>
    ^ ((f4 
    . (d1 
    + m1)) 
    . phi1)) 
    ^ ((f4 
    . (d2 
    + m2)) 
    . phi2)) by 
    Def20,
    A19
    
          .= ((
    <*N*>
    ^ new1) 
    ^ ((f4 
    . (d2 
    + m2)) 
    . phi2)) by 
    Lm45
    
          .= ((
    <*N*>
    ^ new1) 
    ^ new2) by 
    Lm45;
    
          
    
          then (
    Depth IT) 
    = (1 
    + ( 
    max (d11,d22))) by 
    FOMODEL2: 17
    
          .= (1
    + ( 
    max (d1,d22))) by 
    A21,
    A4
    
          .= (1
    + ( 
    max (d1,d2))) by 
    A21,
    A4
    
          .= d by
    FOMODEL2: 17,
    A20;
    
          hence (
    Depth ((l,tt) 
    SubstIn phi)) 
    = ( 
    Depth phi); 
    
          let I be
    Element of II; 
    
          set TE = (I
    -TermEval ), u = (TE 
    . tt), J = ((l,u) 
    ReassignIn I), LH = (I 
    -TruthEval IT), RH = (J 
    -TruthEval phii); 
    
          (I
    -TruthEval new1) 
    = (J 
    -TruthEval phi1) & (I 
    -TruthEval new2) 
    = (J 
    -TruthEval phi2) by 
    A21,
    A4;
    
          then (J
    -TruthEval phii) 
    = 1 iff ((I 
    -TruthEval new1) 
    =  
    0 & (I 
    -TruthEval new2) 
    =  
    0 ) by 
    A20,
    FOMODEL2: 19;
    
          then LH
    = 1 iff not RH 
    =  
    0 by 
    FOMODEL2: 19,
    A22,
    FOMODEL0: 39;
    
          hence thesis by
    FOMODEL0: 39;
    
        end;
    
          suppose phi is
    0wff;
    
          hence thesis by
    A1;
    
        end;
    
      end;
    
      
    
      
    
    A23: for m holds 
    P[m] from
    NAT_1:sch 2(
    A1,
    A3);
    
      set m = (
    Depth psi); 
    
      thus (
    Depth ((l,tt) 
    SubstIn psi)) 
    = ( 
    Depth psi) by 
    A23;
    
      let I be
    Element of II; 
    
      thus thesis by
    A23;
    
    end;
    
    registration
    
      let m, S, l, t;
    
      let phi be m
    -wff  
    string of S; 
    
      cluster ((l,t) 
    SubstIn phi) -> m 
    -wff;
    
      coherence
    
      proof
    
        set d = (
    Depth phi), TT = ( 
    AllTermsOf S); 
    
        reconsider tt = t as
    Element of TT by 
    FOMODEL1:def 32;
    
        set psi = ((l,tt)
    SubstIn phi); 
    
        reconsider k = (m
    - d) as 
    Nat;
    
        (
    Depth psi) 
    = d by 
    Th10;
    
        then
    
        reconsider psii = psi as d
    -wff  
    string of S by 
    FOMODEL2:def 31;
    
        psii is (d
    + ( 
    0  
    * k)) 
    -wff;
    
        then psii is (d
    + k) 
    -wff;
    
        hence thesis;
    
      end;
    
    end
    
    
    
    
    
    Lm47: for I1 be 
    Element of (U 
    -InterpretersOf S1), I2 be 
    Element of (U 
    -InterpretersOf S2) st (I1 
    | X) 
    = (I2 
    | X) & (the 
    adicity of S1 
    | X) 
    = (the 
    adicity of S2 
    | X) holds ((I1 
    -TermEval ) 
    | (X 
    * )) 
    c= ((I2 
    -TermEval ) 
    | (X 
    * )) 
    
    proof
    
      set T1 = (S1
    -termsOfMaxDepth ), O1 = ( 
    OwnSymbolsOf S1), TT1 = ( 
    AllTermsOf S1), SS1 = ( 
    AllSymbolsOf S1), L1 = ( 
    LettersOf S1), F1 = (S1 
    -firstChar ), C1 = (S1 
    -multiCat ), AT1 = ( 
    AtomicTermsOf S1), II1 = (U 
    -InterpretersOf S1), a1 = the 
    adicity of S1, strings1 = ((SS1 
    * ) 
    \  
    {
    {} }); 
    
      set T2 = (S2
    -termsOfMaxDepth ), O2 = ( 
    OwnSymbolsOf S2), TT2 = ( 
    AllTermsOf S2), SS2 = ( 
    AllSymbolsOf S2), L2 = ( 
    LettersOf S2), F2 = (S2 
    -firstChar ), C2 = (S2 
    -multiCat ), AT2 = ( 
    AtomicTermsOf S2), II2 = (U 
    -InterpretersOf S2), a2 = the 
    adicity of S2, strings2 = ((SS2 
    * ) 
    \  
    {
    {} }); 
    
      let I1 be
    Element of II1, I2 be 
    Element of II2; 
    
      
    
      
    
    A1: ( 
    dom I1) 
    = O1 & ( 
    dom I2) 
    = O2 by 
    PARTFUN1:def 2;
    
      set E1 = (I1
    -TermEval ), E2 = (I2 
    -TermEval ), I11 = (I1 
    | X), I22 = (I2 
    | X); 
    
      assume
    
      
    
    A2: I11 
    = I22; 
    
      then
    
      
    
    A3: ( 
    dom E1) 
    = TT1 & ( 
    dom E2) 
    = TT2 & I11 
    = I22 by 
    FUNCT_2:def 1;
    
      
    
      
    
    A4: (X 
    /\ ( 
    dom I1)) 
    = ( 
    dom I22) by 
    RELAT_1: 61,
    A2
    
      .= (X
    /\ ( 
    dom I2)) by 
    RELAT_1: 61;
    
      defpred
    
    P[
    Nat] means (E1
    | ((X 
    * ) 
    /\ (T1 
    . $1))) 
    c= (E2 
    | ((X 
    * ) 
    /\ (T2 
    . $1))); 
    
      deffunc
    
    F(
    set) = the set of all
    <*x*> where x be
    Element of $1; 
    
      
    
      
    
    A5: 
    P[
    0 ] 
    
      proof
    
        
    
        
    
    A6: (T2 
    .  
    0 ) 
    c= TT2 & (T1 
    .  
    0 ) 
    c= TT1 by 
    FOMODEL1: 2;
    
        reconsider D1 = ((X
    * ) 
    /\ (T1 
    .  
    0 )) as 
    Subset of TT1 by 
    A6,
    XBOOLE_1: 1;
    
        reconsider D2 = ((X
    * ) 
    /\ (T2 
    .  
    0 )) as 
    Subset of TT2 by 
    A6,
    XBOOLE_1: 1;
    
        set f1 = (E1
    | D1), f2 = (E2 
    | D2); 
    
        
    
        
    
    A7: ( 
    dom f1) 
    = D1 & ( 
    dom f2) 
    = D2 by 
    PARTFUN1:def 2;
    
        now
    
          let x;
    
          assume
    
          
    
    A8: x 
    in ( 
    dom f1); 
    
          then
    
          
    
    A9: x 
    in ((X 
    * ) 
    /\ AT1) by 
    A7,
    FOMODEL1:def 30;
    
          then
    
          
    
    A10: x 
    in (1 
    -tuples_on (X 
    /\ L1)) by 
    FOMODEL0: 2;
    
          then
    
          reconsider Y1 = (X
    /\ L1) as non 
    empty  
    set;
    
          Y1
    <>  
    {} ; 
    
          then
    
          reconsider XX = X as non
    empty  
    set;
    
          reconsider xx = x as
    Element of (X 
    * ) by 
    A8,
    A7;
    
          x
    in  
    F(Y1) by
    FINSEQ_2: 96,
    A10;
    
          then
    
          consider y1 be
    Element of Y1 such that 
    
          
    
    A11: x 
    =  
    <*y1*>;
    
          y1
    in Y1; 
    
          then
    
          reconsider l1 = y1 as
    literal  
    Element of S1; 
    
          l1
    in X & l1 
    in O1 by 
    XBOOLE_0:def 4,
    FOMODEL1:def 19;
    
          then l1
    in (X 
    /\ O2) by 
    A4,
    A1,
    XBOOLE_0:def 4;
    
          then
    
          reconsider s2 = l1 as
    own  
    Element of S2; 
    
          reconsider s22 = s2, l11 = l1 as
    Element of XX by 
    XBOOLE_0:def 4;
    
          (((I2
    | XX) 
    . s22) 
    \+\ (I2 
    . s22)) 
    =  
    {} & (((I1 
    | XX) 
    . l11) 
    \+\ (I1 
    . l11)) 
    =  
    {} ; 
    
          then (I22
    . s2) 
    = (I2 
    . s2) & (I11 
    . l1) 
    = (I1 
    . l1) by 
    FOMODEL0: 29;
    
          
    
          then (
    0  
    -tuples_on U) 
    = ( 
    dom (I2 
    . s2)) by 
    A2,
    FUNCT_2:def 1
    
          .= (
    |.(
    ar s2).| 
    -tuples_on U) by 
    FUNCT_2:def 1;
    
          then not s2 is
    relational & not s2 is 
    operational;
    
          then
    
          reconsider l2 = s2 as
    literal  
    Element of S2; 
    
          x
    in AT1 by 
    A9;
    
          then x
    in (T1 
    .  
    0 ) by 
    FOMODEL1:def 30;
    
          then
    
          reconsider t1 = x as
    0  
    -termal  
    string of S1 by 
    FOMODEL1:def 33;
    
          reconsider D11 = D1 as non
    empty  
    Subset of TT1 by 
    A8;
    
          reconsider x1 = t1 as
    Element of D11 by 
    A8;
    
          
    
          
    
    A12: l11 
    in XX & l2 
    in L2 by 
    FOMODEL1:def 14;
    
          then
    
          reconsider Y2 = (XX
    /\ L2) as non 
    empty  
    set by 
    XBOOLE_0:def 4;
    
          reconsider ll2 = l2 as
    Element of Y2 by 
    A12,
    XBOOLE_0:def 4;
    
          
    <*ll2*>
    in  
    F(Y2);
    
          then
    <*ll2*>
    in (1 
    -tuples_on Y2) by 
    FINSEQ_2: 96;
    
          then
    
          
    
    A13: x 
    in ((X 
    * ) 
    /\ AT2) by 
    FOMODEL0: 2,
    A11;
    
          reconsider D22 = D2 as non
    empty  
    Subset of TT2 by 
    FOMODEL1:def 30,
    A13;
    
          reconsider x2 = x as
    Element of D22 by 
    A13,
    FOMODEL1:def 30;
    
          
    
          
    
    A14: (t1 
    . 1) 
    = y1 by 
    A11,
    FINSEQ_1: 40;
    
          then
    
          reconsider y11 = (t1
    . 1) as 
    Element of XX by 
    XBOOLE_0:def 4;
    
          (((I1
    | XX) 
    . y11) 
    \+\ (I1 
    . y11)) 
    =  
    {} & (((I2 
    | XX) 
    . y11) 
    \+\ (I2 
    . y11)) 
    =  
    {} & (((E2 
    | D22) 
    . x2) 
    \+\ (E2 
    . x2)) 
    =  
    {} ; 
    
          then
    
          
    
    A15: (I11 
    . y11) 
    = (I1 
    . y11) & (I22 
    . y11) 
    = (I2 
    . y11) & (E2 
    . x2) 
    = ((E2 
    | D22) 
    . x2) by 
    FOMODEL0: 29;
    
          (((E1
    | D11) 
    . x1) 
    \+\ (E1 
    . x1)) 
    =  
    {} ; 
    
          
    
          then (f1
    . x) 
    = (E1 
    . t1) by 
    FOMODEL0: 29
    
          .= ((I1
    . (F1 
    . t1)) 
    . (E1 
    * ( 
    SubTerms t1))) by 
    FOMODEL2: 21
    
          .= ((I2
    . l2) 
    .  
    {} ) by 
    FOMODEL0: 6,
    A14,
    A2,
    A15
    
          .= ((I2
    . ( 
    <*l2*>
    . 1)) 
    .  
    {} ) by 
    FINSEQ_1: 40
    
          .= ((I2
    . (F2 
    .  
    <*l2*>))
    . (E2 
    * ( 
    SubTerms  
    <*l2*>))) by
    FOMODEL0: 6
    
          .= (f2
    . x) by 
    FOMODEL2: 21,
    A11,
    A15;
    
          hence x
    in ( 
    dom f2) & (f2 
    . x) 
    = (f1 
    . x) by 
    A7,
    A13,
    FOMODEL1:def 30;
    
        end;
    
        hence thesis by
    FOMODEL0: 51;
    
      end;
    
      assume
    
      
    
    A16: (a1 
    | X) 
    = (a2 
    | X); 
    
      
    
      
    
    A17: for n st 
    P[n] holds
    P[(n
    + 1)] 
    
      proof
    
        let n;
    
        assume
    
        
    
    A18: 
    P[n];
    
        reconsider nn = n, NN = (n
    + 1) as 
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
        
    
        
    
    A19: (T2 
    . NN) 
    c= TT2 & (T1 
    . NN) 
    c= TT1 & (T1 
    . nn) 
    c= TT1 & (T2 
    . nn) 
    c= TT2 by 
    FOMODEL1: 2;
    
        reconsider D1 = ((X
    * ) 
    /\ (T1 
    . NN)), d1 = ((X 
    * ) 
    /\ (T1 
    . nn)) as 
    Subset of TT1 by 
    A19,
    XBOOLE_1: 1;
    
        reconsider D2 = ((X
    * ) 
    /\ (T2 
    . NN)), d2 = ((X 
    * ) 
    /\ (T2 
    . nn)) as 
    Subset of TT2 by 
    A19,
    XBOOLE_1: 1;
    
        set f1 = (E1
    | D1), f2 = (E2 
    | D2); 
    
        
    
        
    
    A20: ( 
    dom f1) 
    = D1 & ( 
    dom f2) 
    = D2 & ( 
    dom (E1 
    | d1)) 
    = d1 & ( 
    dom (E2 
    | d2)) 
    = d2 by 
    PARTFUN1:def 2;
    
        then
    
        
    
    A21: d1 
    c= d2 by 
    A18,
    GRFUNC_1: 2;
    
        reconsider d12 = d1 as
    Subset of d2 by 
    A18,
    GRFUNC_1: 2,
    A20;
    
        reconsider d21 = d12 as
    Subset of TT2 by 
    XBOOLE_1: 1;
    
        now
    
          let y;
    
          assume
    
          
    
    A22: y 
    in ( 
    dom f1); 
    
          then
    
          reconsider D11 = D1 as non
    empty  
    set;
    
          reconsider y1 = y as
    Element of D11 by 
    A22;
    
          y1
    in (T1 
    . NN) by 
    XBOOLE_0:def 4;
    
          then
    
          reconsider t1 = y1 as (nn
    + 1) 
    -termal  
    string of S1 by 
    FOMODEL1:def 33;
    
          reconsider o1 = (F1
    . t1) as 
    termal  
    Element of S1; 
    
          set m1 =
    |.(
    ar o1).|; 
    
          
    
          
    
    A23: t1 
    in (X 
    * ) & t1 is non 
    empty by 
    TARSKI:def 3;
    
          then
    
          reconsider XX = X as non
    empty  
    set;
    
          
    
          
    
    A24: y1 
    in (XX 
    * ) by 
    TARSKI:def 3;
    
          (
    {(t1
    . 1)} 
    \ XX) 
    =  
    {} by 
    A24;
    
          then
    
          
    
    A25: (t1 
    . 1) 
    in XX & o1 
    = (t1 
    . 1) by 
    ZFMISC_1: 60,
    FOMODEL0: 6;
    
          then o1
    in XX & o1 
    in O1 by 
    FOMODEL1:def 19;
    
          then o1
    in (XX 
    /\ O2) by 
    A4,
    A1,
    XBOOLE_0:def 4;
    
          then
    
          reconsider o2 = o1 as
    own  
    Element of S2; 
    
          reconsider o22 = o2 as
    ofAtomicFormula  
    Element of S2; 
    
          reconsider ox = o1 as
    Element of XX by 
    A25;
    
          ((a1
    . ox) 
    \+\ ((a1 
    | XX) 
    . ox)) 
    =  
    {} & ((a2 
    . ox) 
    \+\ ((a2 
    | XX) 
    . ox)) 
    =  
    {} ; 
    
          then
    
          
    
    A26: (a1 
    . o1) 
    = ((a1 
    | X) 
    . o1) & (a2 
    . o2) 
    = ((a2 
    | X) 
    . o2) by 
    FOMODEL0: 29;
    
          (
    ar o1) 
    = ( 
    ar o22) by 
    A26,
    A16;
    
          then not o22 is
    relational;
    
          then
    
          reconsider o2 as
    termal  
    Element of S2; 
    
          set m2 =
    |.(
    ar o2).|; 
    
          
    
          
    
    A27: ((I1 
    . ox) 
    \+\ ((I1 
    | XX) 
    . ox)) 
    =  
    {} & ((I2 
    . ox) 
    \+\ ((I2 
    | XX) 
    . ox)) 
    =  
    {} ; 
    
          
    
          then
    
          
    
    A28: (I1 
    . ox) 
    = ((I1 
    | XX) 
    . o1) by 
    FOMODEL0: 29
    
          .= (I2
    . ox) by 
    A27,
    FOMODEL0: 29,
    A2;
    
          set st1 = (
    SubTerms t1); 
    
          reconsider B = (
    rng t1) as non 
    empty  
    Subset of XX by 
    A24,
    RELAT_1:def 19;
    
          (
    rng st1) 
    c= (( 
    rng t1) 
    * ) & (B 
    * ) 
    c= (XX 
    * ) by 
    RELAT_1:def 19;
    
          then
    
          
    
    A29: ( 
    rng st1) 
    c= (XX 
    * ) by 
    XBOOLE_1: 1;
    
          
    
          
    
    A30: ( 
    rng st1) 
    c= (T1 
    . n) by 
    RELAT_1:def 19;
    
          then (
    rng st1) 
    c= d1 by 
    A29,
    XBOOLE_1: 19;
    
          then
    
          
    
    A31: ( 
    rng st1) 
    c= ((SS1 
    * ) 
    \  
    {
    {} }) & ( 
    rng st1) 
    c= d2 by 
    XBOOLE_1: 1,
    A21;
    
          then
    
          
    
    A32: ( 
    rng st1) 
    c= ((SS1 
    * ) 
    \  
    {
    {} }) & ( 
    rng st1) 
    c= ((SS2 
    * ) 
    \  
    {
    {} }) by 
    XBOOLE_1: 1;
    
          st1 is (T2
    . nn) 
    -valued by 
    A31,
    XBOOLE_1: 1,
    RELAT_1:def 19;
    
          then st1 is m2
    -element  
    FinSequence of (T2 
    . nn) by 
    FOMODEL0: 26,
    A16,
    A26;
    
          then
    
          reconsider st2 = st1 as m2
    -element  
    Element of ((T2 
    . nn) 
    * ); 
    
          reconsider T2n = (T2
    . nn) as non 
    empty  
    Subset of TT2 by 
    FOMODEL1: 2;
    
          st2
    in (T2n 
    * ); 
    
          then
    
          reconsider st22 = st2 as m2
    -element  
    Element of (TT2 
    * ); 
    
          reconsider t2 = (o2
    -compound st2) as (nn 
    + 1) 
    -termal  
    string of S2; 
    
          per cases ;
    
            suppose t1 is
    0  
    -termal;
    
            then
    
            reconsider t11 = t1 as
    0  
    -termal  
    string of S1; 
    
            
    
            
    
    A33: t11 
    in (X 
    * ) & t11 
    in (T1 
    .  
    0 ) by 
    FOMODEL1:def 33,
    TARSKI:def 3;
    
            then
    
            
    
    A34: t11 
    in ((XX 
    * ) 
    /\ (T1 
    .  
    0 )) by 
    XBOOLE_0:def 4;
    
            
    
            
    
    A35: (T2 
    .  
    0 ) 
    c= TT2 & (T1 
    .  
    0 ) 
    c= TT1 by 
    FOMODEL1: 2;
    
            reconsider A1 = ((X
    * ) 
    /\ (T1 
    .  
    0 )) as 
    Subset of TT1 by 
    A35,
    XBOOLE_1: 1;
    
            reconsider A2 = ((X
    * ) 
    /\ (T2 
    .  
    0 )) as 
    Subset of TT2 by 
    A35,
    XBOOLE_1: 1;
    
            set g1 = (E1
    | A1), g2 = (E2 
    | A2); 
    
            
    
            
    
    A36: ( 
    dom g1) 
    = A1 & ( 
    dom g2) 
    = A2 by 
    PARTFUN1:def 2;
    
            then
    
            
    
    A37: A1 
    c= A2 by 
    A5,
    GRFUNC_1: 2;
    
            then t11
    in A2 & t11 
    in A1 by 
    A34;
    
            then
    
            reconsider t2 = t11 as
    0  
    -termal  
    string of S2 by 
    FOMODEL1:def 33;
    
            t2 is (
    0  
    + ( 
    0  
    * NN)) 
    -termal;
    
            then t2 is (
    0  
    + NN) 
    -termal;
    
            then
    
            
    
    A38: t2 
    in (XX 
    * ) & t2 
    in (T2 
    . NN) by 
    TARSKI:def 3;
    
            thus y
    in ( 
    dom f2) by 
    A20,
    XBOOLE_0:def 4,
    A38;
    
            reconsider D22 = D2 as non
    empty  
    set by 
    XBOOLE_0:def 4,
    A38;
    
            reconsider A11 = A1, A22 = A2 as non
    empty  
    set by 
    A36,
    A5,
    A33,
    XBOOLE_0:def 4;
    
            reconsider t111 = t11 as
    Element of A11 by 
    A33,
    XBOOLE_0:def 4;
    
            reconsider t02 = t11 as
    Element of A22 by 
    A37,
    A34;
    
            reconsider t20 = t2 as
    Element of D22 by 
    A38,
    XBOOLE_0:def 4;
    
            (((E1
    | D11) 
    . y1) 
    \+\ (E1 
    . y1)) 
    =  
    {} & (((E1 
    | ((X 
    * ) 
    /\ (T1 
    .  
    0 ))) 
    . t111) 
    \+\ (E1 
    . t111)) 
    =  
    {} & (((E2 
    | A2) 
    . t02) 
    \+\ (E2 
    . t02)) 
    =  
    {} & (((E2 
    | D22) 
    . t20) 
    \+\ (E2 
    . t20)) 
    =  
    {} ; 
    
            then
    
            
    
    A39: (f1 
    . y) 
    = (E1 
    . y) & ((E1 
    | ((X 
    * ) 
    /\ (T1 
    .  
    0 ))) 
    . y) 
    = (E1 
    . y) & ((E2 
    | ((X 
    * ) 
    /\ (T2 
    .  
    0 ))) 
    . y) 
    = (E2 
    . y) & (f2 
    . y) 
    = (E2 
    . y) by 
    FOMODEL0: 29;
    
            thus (f1
    . y) 
    = (f2 
    . y) by 
    A39,
    A5,
    A36,
    GRFUNC_1: 2,
    A34;
    
          end;
    
            suppose not t1 is
    0  
    -termal;
    
            then o1 is
    operational by 
    FOMODEL1: 16;
    
            then
    
            consider n1 be
    Nat such that 
    
            
    
    A40: m1 
    = (n1 
    + 1) by 
    NAT_1: 6;
    
            reconsider nn1 = n1 as
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
            reconsider st11 = st1 as (nn1
    + 1) 
    -element  
    Element of (TT1 
    * ) by 
    A40;
    
            
    
            
    
    A41: not st11 is ( 
    {}  
    * ) 
    -valued;
    
            st11 is (SS2
    * ) 
    -valued by 
    XBOOLE_1: 1,
    A32,
    RELAT_1:def 19;
    
            then (C2
    . st11) 
    <>  
    {} by 
    FOMODEL0: 52,
    A41;
    
            then
    
            
    
    A42: (C1 
    . st1) 
    = (C2 
    . st1) by 
    FOMODEL0: 52;
    
            
    
            
    
    A43: t1 
    = t2 by 
    FOMODEL1:def 37,
    A42;
    
            then t1
    in (X 
    * ) & t1 
    in (T2 
    . NN) by 
    FOMODEL1:def 33,
    TARSKI:def 3;
    
            hence y
    in ( 
    dom f2) by 
    A20,
    XBOOLE_0:def 4;
    
            
    
            
    
    A44: t2 
    in (T2 
    . NN) & t2 
    in (X 
    * ) by 
    FOMODEL1:def 37,
    A42,
    A23,
    FOMODEL1:def 33;
    
            reconsider D22 = D2 as non
    empty  
    set by 
    A44,
    XBOOLE_0:def 4;
    
            reconsider tt2 = t2 as
    Element of D22 by 
    A44,
    XBOOLE_0:def 4;
    
            
    
            
    
    A45: (F2 
    . t2) 
    = (t2 
    . 1) by 
    FOMODEL0: 6
    
            .= o2 by
    FINSEQ_1: 41;
    
            then
    
            
    
    A46: st22 
    = ( 
    SubTerms t2) by 
    FOMODEL1:def 37;
    
            
    
            
    
    A47: (E1 
    | d1) 
    = ((E2 
    | d2) 
    | d1) by 
    A18,
    GRFUNC_1: 34,
    A20
    
            .= (E2
    | (d12 
    null d2)) by 
    RELAT_1: 71;
    
            (((E1
    | D11) 
    . y1) 
    \+\ (E1 
    . y1)) 
    =  
    {} & (((E2 
    | D22) 
    . tt2) 
    \+\ (E2 
    . tt2)) 
    =  
    {} ; 
    
            then
    
            
    
    A48: ((E1 
    | D1) 
    . y1) 
    = (E1 
    . y1) & ((E2 
    | D2) 
    . t2) 
    = (E2 
    . t2) by 
    FOMODEL0: 29;
    
            
    
            hence (f1
    . y) 
    = ((I1 
    . o1) 
    . (E1 
    * st1)) by 
    FOMODEL2: 21
    
            .= ((I1
    . o1) 
    . ((E1 
    | d1) 
    * st1)) by 
    RELAT_1: 165,
    A20,
    A30,
    A29,
    XBOOLE_1: 19
    
            .= ((I1
    . o1) 
    . (E2 
    * st1)) by 
    RELAT_1: 165,
    A20,
    A30,
    A29,
    XBOOLE_1: 19,
    A47
    
            .= (f2
    . y) by 
    A43,
    A48,
    FOMODEL2: 21,
    A45,
    A46,
    A28;
    
          end;
    
        end;
    
        hence thesis by
    FOMODEL0: 51;
    
      end;
    
      
    
      
    
    A49: for n holds 
    P[n] from
    NAT_1:sch 2(
    A5,
    A17);
    
      now
    
        set g1 = (E1
    | (X 
    * )), g2 = (E2 
    | (X 
    * )); 
    
        
    
        
    
    A50: ( 
    dom g1) 
    = ((X 
    * ) 
    /\ TT1) & ( 
    dom g2) 
    = ((X 
    * ) 
    /\ TT2) by 
    RELAT_1: 61,
    A3;
    
        let x;
    
        assume
    
        
    
    A51: x 
    in ( 
    dom g1); 
    
        then x
    in ((X 
    * ) 
    /\ TT1) by 
    RELAT_1: 61,
    A3;
    
        then
    
        reconsider t1 = x as
    termal  
    string of S1; 
    
        set m1 = (
    Depth t1); 
    
        reconsider mm1 = m1 as
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
        reconsider t11 = t1 as m1
    -termal  
    string of S1 by 
    FOMODEL1:def 40;
    
        
    
        
    
    A52: t11 
    in (T1 
    . m1) & x 
    in (X 
    * ) by 
    A51,
    FOMODEL1:def 33;
    
        then
    
        
    
    A53: x 
    in ((X 
    * ) 
    /\ (T1 
    . m1)) & (T1 
    . mm1) 
    c= TT1 & (T2 
    . mm1) 
    c= TT2 by 
    XBOOLE_0:def 4,
    FOMODEL1: 2;
    
        then
    
        reconsider D1 = ((X
    * ) 
    /\ (T1 
    . m1)) as non 
    empty  
    Subset of TT1 by 
    XBOOLE_1: 1;
    
        reconsider D2 = ((X
    * ) 
    /\ (T2 
    . m1)) as 
    Subset of TT2 by 
    XBOOLE_1: 1,
    A53;
    
        reconsider t111 = t1 as
    Element of D1 by 
    A52,
    XBOOLE_0:def 4;
    
        set f1 = (E1
    | D1), f2 = (E2 
    | D2); 
    
        
    
        
    
    A54: ( 
    dom (E1 
    | D1)) 
    = D1 & ( 
    dom (E2 
    | D2)) 
    = D2 by 
    PARTFUN1:def 2;
    
        x
    in ( 
    dom f1) & f1 
    c= f2 by 
    A49,
    A53,
    PARTFUN1:def 2;
    
        then
    
        
    
    A55: x 
    in ( 
    dom f2) & (f1 
    . x) 
    = (f2 
    . x) by 
    FOMODEL0: 51;
    
        then
    
        
    
    A56: x 
    in ((X 
    * ) 
    /\ TT2) & x 
    in D2 by 
    XBOOLE_0:def 4,
    A54;
    
        hence x
    in ( 
    dom g2) by 
    RELAT_1: 61,
    A3;
    
        
    
        thus (g1
    . x) 
    = (E1 
    . t111) by 
    A51,
    FUNCT_1: 47
    
        .= (f1
    . t111) by 
    A54,
    FUNCT_1: 47
    
        .= (E2
    . t111) by 
    A55,
    FUNCT_1: 49
    
        .= (g2
    . x) by 
    A56,
    A50,
    FUNCT_1: 47;
    
      end;
    
      hence thesis by
    FOMODEL0: 51;
    
    end;
    
    theorem :: 
    
    FOMODEL3:11
    
    
    
    
    
    Th11: for I1 be 
    Element of (U 
    -InterpretersOf S1), I2 be 
    Element of (U 
    -InterpretersOf S2) st (I1 
    | X) 
    = (I2 
    | X) & (the 
    adicity of S1 
    | X) 
    = (the 
    adicity of S2 
    | X) holds ((I1 
    -TermEval ) 
    | (X 
    * )) 
    = ((I2 
    -TermEval ) 
    | (X 
    * )) by 
    Lm47;
    
    
    
    
    
    Lm48: for phi1 be 
    0wff  
    string of S1, I1 be 
    Element of (U 
    -InterpretersOf S1), I2 be 
    Element of (U 
    -InterpretersOf S2) st (I1 
    | (( 
    rng phi1) 
    /\ ( 
    OwnSymbolsOf S1))) 
    = (I2 
    | (( 
    rng phi1) 
    /\ ( 
    OwnSymbolsOf S1))) & (the 
    adicity of S1 
    | (( 
    rng phi1) 
    /\ ( 
    OwnSymbolsOf S1))) 
    = (the 
    adicity of S2 
    | (( 
    rng phi1) 
    /\ ( 
    OwnSymbolsOf S1))) & ( 
    TheEqSymbOf S1) 
    = ( 
    TheEqSymbOf S2) holds ex phi2 be 
    0wff  
    string of S2 st (phi2 
    = phi1 & (I2 
    -AtomicEval phi2) 
    = (I1 
    -AtomicEval phi1)) 
    
    proof
    
      set II1 = (U
    -InterpretersOf S1), II2 = (U 
    -InterpretersOf S2), a2 = the 
    adicity of S2, F2 = (S2 
    -firstChar ), E1 = ( 
    TheEqSymbOf S1), E2 = ( 
    TheEqSymbOf S2), TT1 = ( 
    AllTermsOf S1), TT2 = ( 
    AllTermsOf S2), O1 = ( 
    OwnSymbolsOf S1), O2 = ( 
    OwnSymbolsOf S2), C2 = (S2 
    -multiCat ), F1 = (S1 
    -firstChar ), TS1 = ( 
    TermSymbolsOf S1), TS2 = ( 
    TermSymbolsOf S2), a1 = the 
    adicity of S1, C1 = (S1 
    -multiCat ), AS1 = ( 
    AtomicFormulaSymbolsOf S1), AS2 = ( 
    AtomicFormulaSymbolsOf S2), d = (U 
    -deltaInterpreter ), RR1 = ( 
    RelSymbolsOf S1); 
    
      reconsider TS1 = (
    TermSymbolsOf S1) as non 
    empty  
    Subset of O1 by 
    FOMODEL1: 1;
    
      reconsider TS2 = (
    TermSymbolsOf S2) as non 
    empty  
    Subset of O2 by 
    FOMODEL1: 1;
    
      let phi1 be
    0wff  
    string of S1; 
    
      let I1 be
    Element of II1, I2 be 
    Element of II2; 
    
      set TE1 = (I1
    -TermEval ), TE2 = (I2 
    -TermEval ), X = (( 
    rng phi1) 
    /\ O1); 
    
      assume
    
      
    
    A1: (I1 
    | X) 
    = (I2 
    | X) & (a1 
    | X) 
    = (a2 
    | X) & E1 
    = E2; 
    
      then
    
      
    
    A2: (TE1 
    | (X 
    * )) 
    = (TE2 
    | (X 
    * )) by 
    Th11;
    
      
    
      then
    
      
    
    A3: ( 
    dom (TE1 
    | (X 
    * ))) 
    = ((X 
    * ) 
    /\ ( 
    dom TE2)) by 
    RELAT_1: 61
    
      .= ((X
    * ) 
    /\ TT2) by 
    FUNCT_2:def 1;
    
      
    
      then
    
      
    
    A4: ((X 
    * ) 
    /\ TT2) 
    = ((X 
    * ) 
    /\ ( 
    dom TE1)) by 
    RELAT_1: 61
    
      .= ((X
    * ) 
    /\ TT1) by 
    FUNCT_2:def 1;
    
      reconsider r1 = (F1
    . phi1) as 
    relational  
    Element of S1; 
    
      set m =
    |.(
    ar r1).|; 
    
      set Y1 = (X
    \/  
    {E1}), Y2 = (X
    \/  
    {E2});
    
      (
    {((phi1
    null  
    {} ) 
    . 1)} 
    \ (( 
    rng phi1) 
    \/  
    {} )) 
    =  
    {} ; 
    
      then (phi1
    . 1) 
    in ( 
    rng phi1) by 
    ZFMISC_1: 60;
    
      then
    
      
    
    A5: r1 
    in ( 
    rng phi1) by 
    FOMODEL0: 6;
    
      r1
    in  
    {E1} or not r1
    in (RR1 
    \ O1) by 
    FOMODEL1: 1;
    
      then
    
      
    
    A6: r1 
    in  
    {E1} or not r1
    in RR1 or r1 
    in O1 by 
    XBOOLE_0:def 5;
    
      then r1
    in  
    {E1} or r1
    in X by 
    A5,
    FOMODEL1:def 17,
    XBOOLE_0:def 4;
    
      then
    
      
    
    A7: r1 
    in Y1 by 
    XBOOLE_0:def 3;
    
      reconsider t1 = (
    SubTerms phi1) as (m 
    +  
    0 ) 
    -element  
    FinSequence of TT1 by 
    FOMODEL0: 26;
    
      t1 is (TS1
    * ) 
    -valued;
    
      then t1
    in (m 
    -tuples_on (O1 
    * )) & t1 
    in (m 
    -tuples_on (( 
    rng phi1) 
    * )) by 
    FOMODEL0: 16;
    
      then t1
    in ((m 
    -tuples_on (( 
    rng phi1) 
    * )) 
    /\ (m 
    -tuples_on (O1 
    * ))) by 
    XBOOLE_0:def 4;
    
      then t1
    in (m 
    -tuples_on ((( 
    rng phi1) 
    * ) 
    /\ (O1 
    * ))) by 
    FOMODEL0: 3;
    
      then t1
    in (m 
    -tuples_on (X 
    * )) by 
    FOMODEL0: 55;
    
      then
    
      
    
    A8: t1 is (X 
    * ) 
    -valued & ( 
    rng t1) 
    c= TT1 by 
    FOMODEL0: 12,
    RELAT_1:def 19;
    
      then
    
      
    
    A9: ( 
    rng t1) 
    c= (X 
    * ) & ( 
    rng t1) 
    c= TT1 by 
    RELAT_1:def 19;
    
      then
    
      
    
    A10: ( 
    rng t1) 
    c= ((X 
    * ) 
    /\ TT1) by 
    XBOOLE_1: 19;
    
      (
    rng t1) 
    c= ((X 
    * ) 
    /\ TT2) by 
    XBOOLE_1: 19,
    A9,
    A4;
    
      then
    
      reconsider X2 = ((X
    * ) 
    /\ TT2) as non 
    empty  
    Subset of TT2; 
    
      reconsider X1 = ((X
    * ) 
    /\ TT1) as non 
    empty  
    Subset of TT1 by 
    A10;
    
      t1 is m
    -elementX2
    -valued  
    FinSequence by 
    RELAT_1:def 19,
    A9,
    A4,
    XBOOLE_1: 19;
    
      then
    
      reconsider t2 = t1 as m
    -element  
    FinSequence of X2 by 
    FOMODEL0: 26;
    
      t2 is
    Element of (X2 
    * ); 
    
      then
    
      reconsider tt2 = t2 as m
    -element  
    Element of (TT2 
    * ); 
    
      reconsider E11 = E1 as
    Element of AS1 by 
    FOMODEL1:def 20;
    
      reconsider EE1 =
    {E11} as non
    empty  
    Subset of AS1; 
    
      reconsider E22 = E2 as
    Element of AS2 by 
    FOMODEL1:def 20;
    
      reconsider EE2 =
    {E22} as non
    empty  
    Subset of AS2; 
    
      set Y1 = (X
    \/ EE1), Y2 = (X 
    \/ EE2), f1 = (a1 
    | EE1), f2 = (a2 
    | EE2); 
    
      
    
      
    
    A11: ( 
    dom f1) 
    = EE1 & ( 
    dom f2) 
    = EE2 by 
    PARTFUN1:def 2;
    
      now
    
        let x be
    object;
    
        assume
    
        
    
    A12: x 
    in ( 
    dom f1); 
    
        then x
    = E1 & (f1 
    . x) 
    = (a1 
    . x) by 
    FUNCT_1: 47,
    TARSKI:def 1;
    
        then (f1
    . x) 
    = ( 
    - 2) & (a2 
    . x) 
    = ( 
    - 2) by 
    FOMODEL1:def 23,
    A1;
    
        hence (f1
    . x) 
    = (f2 
    . x) by 
    A11,
    A1,
    A12,
    FUNCT_1: 47;
    
      end;
    
      then f1
    = f2 by 
    FUNCT_1: 2,
    A11,
    A1;
    
      then ((a2
    | X) 
    +* f2) 
    = (a1 
    | Y1) by 
    A1,
    FUNCT_4: 78;
    
      then
    
      
    
    A13: Y1 
    = Y2 & (a1 
    | Y1) 
    = (a2 
    | Y2) by 
    FUNCT_4: 78,
    A1;
    
      
    
      
    
    A14: ( 
    ar r1) 
    = ((a1 
    | Y1) 
    . r1) by 
    FUNCT_1: 49,
    A7
    
      .= (a2
    . r1) by 
    A7,
    A13,
    FUNCT_1: 49;
    
      then r1
    in ( 
    dom a2) by 
    FUNCT_1:def 2;
    
      then r1
    in AS2; 
    
      then
    
      reconsider r2 = r1 as
    ofAtomicFormula  
    Element of S2 by 
    FOMODEL1:def 20;
    
      
    
      
    
    A15: ( 
    ar r1) 
    = ( 
    ar r2) by 
    A14;
    
      then
    
      reconsider r2 as
    relational  
    Element of S2; 
    
      reconsider phi2 = (r2
    -compound tt2) as 
    0wff  
    string of S2 by 
    A15;
    
      take phi2;
    
      
    
      thus phi1
    = ( 
    <*r1*>
    ^ (C1 
    . t1)) by 
    FOMODEL1:def 38
    
      .= phi2 by
    FOMODEL0: 52;
    
      
    
      
    
    A16: (F2 
    . phi2) 
    = (phi2 
    . 1) by 
    FOMODEL0: 6
    
      .= r2 by
    FINSEQ_1: 41;
    
      then
    
      reconsider tt22 = tt2 as
    |.(
    ar (F2 
    . phi2)).| 
    -element  
    Element of (TT2 
    * ) by 
    A14;
    
      
    
      
    
    A17: tt22 
    = ( 
    SubTerms phi2) by 
    FOMODEL1:def 38,
    A16;
    
      
    
      
    
    A18: (TE1 
    * t1) 
    = ((TE1 
    | (X 
    * )) 
    * t1) by 
    RELAT_1: 165,
    XBOOLE_1: 19,
    A9,
    A4,
    A3
    
      .= (TE2
    * ( 
    SubTerms phi2)) by 
    A17,
    A2,
    A8,
    RELAT_1:def 19,
    A3,
    RELAT_1: 165;
    
      per cases ;
    
        suppose
    
        
    
    A19: r1 
    <> E1; 
    
        then
    
        
    
    A20: r1 
    in X by 
    A6,
    A5,
    FOMODEL1:def 17,
    XBOOLE_0:def 4,
    TARSKI:def 1;
    
        
    
        then (I1
    . r1) 
    = ((I1 
    | X) 
    . r1) by 
    FUNCT_1: 49
    
        .= (I2
    . r2) by 
    FUNCT_1: 49,
    A1,
    A20;
    
        then ((I1
    -AtomicEval phi1) 
    = ((I1 
    . r1) 
    . (TE1 
    * t1)) & (I2 
    -AtomicEval phi2) 
    = ((I1 
    . r1) 
    . (TE2 
    * ( 
    SubTerms phi2)))) by 
    A1,
    A19,
    A16,
    FOMODEL2: 14;
    
        hence (I1
    -AtomicEval phi1) 
    = (I2 
    -AtomicEval phi2) by 
    A18;
    
      end;
    
        suppose r1
    = E1; 
    
        then ((I1
    -AtomicEval phi1) 
    = (d 
    . (TE1 
    * t1)) & (I2 
    -AtomicEval phi2) 
    = (d 
    . (TE2 
    * ( 
    SubTerms phi2)))) by 
    A1,
    A16,
    FOMODEL2: 14;
    
        hence (I1
    -AtomicEval phi1) 
    = (I2 
    -AtomicEval phi2) by 
    A18;
    
      end;
    
    end;
    
    theorem :: 
    
    FOMODEL3:12
    
    
    
    
    
    Th12: ( 
    TheNorSymbOf S1) 
    = ( 
    TheNorSymbOf S2) & ( 
    TheEqSymbOf S1) 
    = ( 
    TheEqSymbOf S2) & (the 
    adicity of S1 
    | ( 
    OwnSymbolsOf S1)) 
    = (the 
    adicity of S2 
    | ( 
    OwnSymbolsOf S1)) implies for I1 be 
    Element of (U 
    -InterpretersOf S1), I2 be 
    Element of (U 
    -InterpretersOf S2), phi1 be 
    wff  
    string of S1 st (I1 
    | ( 
    OwnSymbolsOf S1)) 
    = (I2 
    | ( 
    OwnSymbolsOf S1)) holds ex phi2 be 
    wff  
    string of S2 st (phi2 
    = phi1 & (I2 
    -TruthEval phi2) 
    = (I1 
    -TruthEval phi1)) 
    
    proof
    
      set II1 = (U
    -InterpretersOf S1), II2 = (U 
    -InterpretersOf S2), N1 = ( 
    TheNorSymbOf S1), N2 = ( 
    TheNorSymbOf S2), F1 = (S1 
    -firstChar ), F2 = (S2 
    -firstChar ), a1 = the 
    adicity of S1, a2 = the 
    adicity of S2, O1 = ( 
    OwnSymbolsOf S1), O2 = ( 
    OwnSymbolsOf S2), d = (U 
    -deltaInterpreter ), E1 = ( 
    TheEqSymbOf S1), E2 = ( 
    TheEqSymbOf S2), AS1 = ( 
    AtomicFormulaSymbolsOf S1), AS2 = ( 
    AtomicFormulaSymbolsOf S2); 
    
      assume
    
      
    
    A1: N1 
    = N2; 
    
      assume
    
      
    
    A2: E1 
    = E2 & (a1 
    | O1) 
    = (a2 
    | O1); 
    
      defpred
    
    P[
    Nat] means for I1 be
    Element of II1, I2 be 
    Element of II2, phi1 be $1 
    -wff  
    string of S1 st (I1 
    | O1) 
    = (I2 
    | O1) holds ex phi2 be $1 
    -wff  
    string of S2 st (phi1 
    = phi2 & (I1 
    -TruthEval phi1) 
    = (I2 
    -TruthEval phi2)); 
    
      
    
      
    
    A3: 
    P[
    0 ] 
    
      proof
    
        let I1 be
    Element of II1, I2 be 
    Element of II2, phi1 be 
    0  
    -wff  
    string of S1; 
    
        set TE1 = (I1
    -TermEval ), TE2 = (I2 
    -TermEval ), X = ( 
    rng phi1); 
    
        reconsider XX = (X
    /\ O1) as 
    Subset of O1; 
    
        reconsider r1 = (F1
    . phi1) as 
    relational  
    Element of S1; 
    
        
    
        
    
    A4: (a1 
    | XX) 
    = ((a1 
    | O1) 
    | X) by 
    RELAT_1: 71
    
        .= (a2
    | XX) by 
    A2,
    RELAT_1: 71;
    
        assume (I1
    | O1) 
    = (I2 
    | O1); 
    
        then ((I2
    | O1) 
    | X) 
    = (I1 
    | XX) by 
    RELAT_1: 71;
    
        then (I1
    | XX) 
    = (I2 
    | XX) by 
    RELAT_1: 71;
    
        then
    
        consider phi2 be
    0wff  
    string of S2 such that 
    
        
    
    A5: phi2 
    = phi1 & (I2 
    -AtomicEval phi2) 
    = (I1 
    -AtomicEval phi1) by 
    A4,
    Lm48,
    A2;
    
        reconsider phi2 as
    0  
    -wff  
    string of S2; 
    
        take phi2;
    
        set st1 = (
    SubTerms phi1), st2 = ( 
    SubTerms phi2); 
    
        reconsider r2 = (F2
    . phi2) as 
    relational  
    Element of S2; 
    
        thus thesis by
    A5;
    
      end;
    
      
    
      
    
    A6: for n st 
    P[n] holds
    P[(n
    + 1)] 
    
      proof
    
        let n;
    
        assume
    
        
    
    A7: 
    P[n];
    
        let I1 be
    Element of II1, I2 be 
    Element of II2, phi1 be (n 
    + 1) 
    -wff  
    string of S1; 
    
        set X = (
    rng phi1); 
    
        assume
    
        
    
    A8: (I1 
    | O1) 
    = (I2 
    | O1); 
    
        reconsider h1 = (
    head phi1) as n 
    -wff  
    string of S1; 
    
        set t = (
    tail phi1), s1 = (F1 
    . phi1); 
    
        consider h2 be n
    -wff  
    string of S2 such that 
    
        
    
    A9: h1 
    = h2 & (I1 
    -TruthEval h1) 
    = (I2 
    -TruthEval h2) by 
    A7,
    A8;
    
        per cases ;
    
          suppose phi1 is
    exal;
    
          then
    
          reconsider phi11 = phi1 as
    exal(n
    + 1) 
    -wff  
    string of S1; 
    
          reconsider l1 = (F1
    . phi11) as 
    literal  
    Element of S1; 
    
          
    
          
    
    A10: (I1 
    . l1) 
    = (I2 
    . l1) by 
    A8,
    FOMODEL1:def 19,
    FUNCT_1: 49;
    
          l1
    in ( 
    dom I2) by 
    A10,
    FUNCT_1:def 2;
    
          then l1
    in O2; 
    
          then
    
          reconsider l2 = l1 as
    own  
    Element of S2; 
    
          (
    |.(
    ar l2).| 
    -tuples_on U) 
    = ( 
    dom (I2 
    . l2)) by 
    PARTFUN1:def 2
    
          .= (
    0  
    -tuples_on U) by 
    A10,
    FUNCT_2:def 1;
    
          then not l2 is
    relational & not l2 is 
    operational;
    
          then
    
          reconsider l2 as
    literal  
    Element of S2; 
    
          reconsider phi2 = (
    <*l2*>
    ^ h2) as (n 
    + 1) 
    -wff
    exal  
    string of S2; 
    
          take phi2;
    
          
    
          
    
    A11: phi1 
    = (( 
    <*l1*>
    ^ h1) 
    ^ ( 
    tail phi11)) by 
    FOMODEL2: 23
    
          .= (
    <*l1*>
    ^ h1); 
    
          hence phi1
    = phi2 by 
    A9;
    
          (I1
    -TruthEval phi11) 
    = 1 iff (I2 
    -TruthEval phi2) 
    = 1 
    
          proof
    
            hereby
    
              assume (I1
    -TruthEval phi11) 
    = 1; 
    
              then
    
              consider u such that
    
              
    
    A12: (((l1,u) 
    ReassignIn I1) 
    -TruthEval h1) 
    = 1 by 
    FOMODEL2: 19,
    A11;
    
              reconsider I11 = ((l1,u)
    ReassignIn I1) as 
    Element of II1; 
    
              reconsider I22 = ((l2,u)
    ReassignIn I2) as 
    Element of II2; 
    
              (I11
    | O1) 
    = ((I1 
    | O1) 
    +* ((l1 
    .--> ( 
    {}  
    .--> u)) 
    | O1)) by 
    FUNCT_4: 71
    
              .= (I22
    | O1) by 
    A8,
    FUNCT_4: 71;
    
              then
    
              consider h22 be n
    -wff  
    string of S2 such that 
    
              
    
    A13: h22 
    = h1 & (I11 
    -TruthEval h1) 
    = (I22 
    -TruthEval h22) by 
    A7;
    
              thus (I2
    -TruthEval phi2) 
    = 1 by 
    FOMODEL2: 19,
    A13,
    A9,
    A12;
    
            end;
    
            assume (I2
    -TruthEval phi2) 
    = 1; 
    
            then
    
            consider u2 such that
    
            
    
    A14: (((l2,u2) 
    ReassignIn I2) 
    -TruthEval h2) 
    = 1 by 
    FOMODEL2: 19;
    
            reconsider I11 = ((l1,u2)
    ReassignIn I1) as 
    Element of II1; 
    
            reconsider I22 = ((l2,u2)
    ReassignIn I2) as 
    Element of II2; 
    
            (I11
    | O1) 
    = ((I1 
    | O1) 
    +* ((l1 
    .--> ( 
    {}  
    .--> u2)) 
    | O1)) by 
    FUNCT_4: 71
    
            .= (I22
    | O1) by 
    A8,
    FUNCT_4: 71;
    
            then
    
            consider h222 be n
    -wff  
    string of S2 such that 
    
            
    
    A15: h222 
    = h1 & (I11 
    -TruthEval h1) 
    = (I22 
    -TruthEval h222) by 
    A7;
    
            thus (I1
    -TruthEval phi11) 
    = 1 by 
    FOMODEL2: 19,
    A11,
    A14,
    A15,
    A9;
    
          end;
    
          then (I1
    -TruthEval phi1) 
    = 1 iff not (I2 
    -TruthEval phi2) 
    =  
    0 by 
    FOMODEL0: 39;
    
          hence (I1
    -TruthEval phi1) 
    = (I2 
    -TruthEval phi2) by 
    FOMODEL0: 39;
    
        end;
    
          suppose not phi1 is
    0wff & not phi1 is 
    exal;
    
          then
    
          reconsider phi11 = phi1 as non
    0wff non 
    exal(n
    + 1) 
    -wff  
    string of S1; 
    
          reconsider t1 = (
    tail phi11) as n 
    -wff  
    string of S1; 
    
          consider t2 be n
    -wff  
    string of S2 such that 
    
          
    
    A16: t1 
    = t2 & (I1 
    -TruthEval t1) 
    = (I2 
    -TruthEval t2) by 
    A7,
    A8;
    
          reconsider phi2 = ((
    <*N2*>
    ^ h2) 
    ^ t2) as (n 
    + 1) 
    -wff non 
    exal non 
    0wff  
    string of S2; 
    
          take phi2;
    
          ((F1
    . phi11) 
    \+\ N1) 
    =  
    {} & ((F2 
    . phi2) 
    \+\ N2) 
    =  
    {} ; 
    
          then
    
          
    
    A17: (F1 
    . phi1) 
    = N1 & (F2 
    . phi2) 
    = N2 & phi11 
    = (( 
    <*(F1
    . phi11)*> 
    ^ h1) 
    ^ t1) & h2 
    = ( 
    head phi2) & t2 
    = ( 
    tail phi2) by 
    FOMODEL2: 23,
    FOMODEL0: 29;
    
          hence phi1
    = phi2 by 
    A16,
    A9,
    A1;
    
          set b1 = (I1
    -TruthEval h1), c1 = (I1 
    -TruthEval t1), b2 = (I2 
    -TruthEval h2), c2 = (I2 
    -TruthEval t2), A1 = (I1 
    -TruthEval phi11), A2 = (I2 
    -TruthEval phi2); 
    
          (A1
    \+\ ((I1 
    -TruthEval ( 
    head phi11)) 
    'nor' (I1 
    -TruthEval ( 
    tail phi11)))) 
    =  
    {} & (A2 
    \+\ ((I2 
    -TruthEval ( 
    head phi2)) 
    'nor' (I2 
    -TruthEval ( 
    tail phi2)))) 
    =  
    {} ; 
    
          then A1
    = (b1 
    'nor' c1) & A2 
    = (b2 
    'nor' c2) by 
    A17,
    FOMODEL0: 29;
    
          hence thesis by
    A9,
    A16;
    
        end;
    
          suppose phi1 is
    0wff;
    
          then
    
          consider phi2 be
    0  
    -wff  
    string of S2 such that 
    
          
    
    A18: phi1 
    = phi2 & (I1 
    -TruthEval phi1) 
    = (I2 
    -TruthEval phi2) by 
    A3,
    A8;
    
          phi2 is (
    0  
    + ( 
    0  
    * (n 
    + 1))) 
    -wff;
    
          then phi2 is (
    0  
    + (n 
    + 1)) 
    -wff;
    
          then
    
          reconsider phi22 = phi2 as (n
    + 1) 
    -wff  
    string of S2; 
    
          take phi22;
    
          thus thesis by
    A18;
    
        end;
    
      end;
    
      
    
      
    
    A19: for n holds 
    P[n] from
    NAT_1:sch 2(
    A3,
    A6);
    
      let I1 be
    Element of II1, I2 be 
    Element of II2, phi1 be 
    wff  
    string of S1; 
    
      set d = (
    Depth phi1); 
    
      reconsider phi11 = (phi1
    null  
    0 ) as (d 
    +  
    0 ) 
    -wff  
    string of S1; 
    
      assume (I1
    | O1) 
    = (I2 
    | O1); 
    
      then ex phi2 be d
    -wff  
    string of S2 st (phi2 
    = phi11 & (I2 
    -TruthEval phi2) 
    = (I1 
    -TruthEval phi11)) by 
    A19;
    
      hence thesis;
    
    end;
    
    
    
    
    
    Lm49: for I1 be 
    Element of (U 
    -InterpretersOf S1), I2 be 
    Element of (U 
    -InterpretersOf S2) st S2 is S1 
    -extending & X 
    c= ( 
    AllFormulasOf S1) & (I1 
    | ( 
    OwnSymbolsOf S1)) 
    = (I2 
    | ( 
    OwnSymbolsOf S1)) holds (X is I1 
    -satisfied iff X is I2 
    -satisfied)
    
    proof
    
      set II1 = (U
    -InterpretersOf S1), II2 = (U 
    -InterpretersOf S2), a1 = the 
    adicity of S1, a2 = the 
    adicity of S2, O1 = ( 
    OwnSymbolsOf S1), E1 = ( 
    TheEqSymbOf S1), E2 = ( 
    TheEqSymbOf S2), N1 = ( 
    TheNorSymbOf S1), N2 = ( 
    TheNorSymbOf S2), FF1 = ( 
    AllFormulasOf S1), AS1 = ( 
    AtomicFormulaSymbolsOf S1); 
    
      (
    dom a1) 
    = AS1 & O1 
    c= AS1 by 
    FUNCT_2:def 1,
    FOMODEL1: 1;
    
      then
    
      reconsider O11 = O1 as
    Subset of ( 
    dom a1); 
    
      let I1 be
    Element of II1, I2 be 
    Element of II2; 
    
      assume
    
      
    
    A1: S2 is S1 
    -extending;
    
      
    
      then (a1
    | O1) 
    = ((a2 
    | ( 
    dom a1)) 
    | O1) by 
    GRFUNC_1: 34
    
      .= (a2
    | (O11 
    null ( 
    dom a1))) by 
    RELAT_1: 71;
    
      then
    
      
    
    A2: (a1 
    | O1) 
    = (a2 
    | O1) & N1 
    = N2 & E1 
    = E2 by 
    A1;
    
      assume
    
      
    
    A3: X 
    c= FF1 & (I1 
    | O1) 
    = (I2 
    | O1); 
    
      hereby
    
        assume
    
        
    
    A4: X is I1 
    -satisfied;
    
        now
    
          let phi2 be
    wff  
    string of S2; 
    
          assume
    
          
    
    A5: phi2 
    in X; 
    
          then phi2
    in FF1 by 
    A3;
    
          then
    
          reconsider phi1 = phi2 as
    wff  
    string of S1; 
    
          consider phi22 be
    wff  
    string of S2 such that 
    
          
    
    A6: phi1 
    = phi22 & (I1 
    -TruthEval phi1) 
    = (I2 
    -TruthEval phi22) by 
    Th12,
    A2,
    A3;
    
          thus (I2
    -TruthEval phi2) 
    = 1 by 
    A6,
    A5,
    A4;
    
        end;
    
        hence X is I2
    -satisfied;
    
      end;
    
      assume
    
      
    
    A7: X is I2 
    -satisfied;
    
      now
    
        let phi1 be
    wff  
    string of S1; 
    
        assume
    
        
    
    A8: phi1 
    in X; 
    
        consider phi2 be
    wff  
    string of S2 such that 
    
        
    
    A9: phi1 
    = phi2 & (I1 
    -TruthEval phi1) 
    = (I2 
    -TruthEval phi2) by 
    Th12,
    A2,
    A3;
    
        thus (I1
    -TruthEval phi1) 
    = 1 by 
    A9,
    A8,
    A7;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    FOMODEL3:13
    
    
    
    
    
    Th13: for I1,I2 be 
    Element of (U 
    -InterpretersOf S) st (I1 
    | (( 
    rng phi) 
    /\ ( 
    OwnSymbolsOf S))) 
    = (I2 
    | (( 
    rng phi) 
    /\ ( 
    OwnSymbolsOf S))) holds (I1 
    -TruthEval phi) 
    = (I2 
    -TruthEval phi) 
    
    proof
    
      set O = (
    OwnSymbolsOf S), II = (U 
    -InterpretersOf S), a = the 
    adicity of S, E = ( 
    TheEqSymbOf S), F = (S 
    -firstChar ), C = (S 
    -multiCat ); 
    
      defpred
    
    P[
    Nat] means for I1,I2 be
    Element of II, phi be $1 
    -wff  
    string of S st (I1 
    | (( 
    rng phi) 
    /\ O)) 
    = (I2 
    | (( 
    rng phi) 
    /\ O)) holds (I1 
    -TruthEval phi) 
    = (I2 
    -TruthEval phi); 
    
      
    
      
    
    A1: 
    P[
    0 ] 
    
      proof
    
        let I1,I2 be
    Element of II; 
    
        let phi be
    0  
    -wff  
    string of S; 
    
        reconsider phi1 = phi as
    0wff  
    string of S; 
    
        assume (I1
    | (( 
    rng phi) 
    /\ O)) 
    = (I2 
    | (( 
    rng phi) 
    /\ O)); 
    
        then (I1
    | (( 
    rng phi1) 
    /\ O)) 
    = (I2 
    | (( 
    rng phi1) 
    /\ O)) & (a 
    | (( 
    rng phi1) 
    /\ O)) 
    = (a 
    | (( 
    rng phi1) 
    /\ O)) & E 
    = E; 
    
        then
    
        consider phi2 be
    0wff  
    string of S such that 
    
        
    
    A2: phi2 
    = phi1 & (I2 
    -AtomicEval phi2) 
    = (I1 
    -AtomicEval phi1) by 
    Lm48;
    
        thus thesis by
    A2;
    
      end;
    
      
    
      
    
    A3: for n st 
    P[n] holds
    P[(n
    + 1)] 
    
      proof
    
        let n;
    
        assume
    
        
    
    A4: 
    P[n];
    
        let I1,I2 be
    Element of II; 
    
        let phi be (n
    + 1) 
    -wff  
    string of S; 
    
        assume
    
        
    
    A5: (I1 
    | (( 
    rng phi) 
    /\ O)) 
    = (I2 
    | (( 
    rng phi) 
    /\ O)); 
    
        per cases ;
    
          suppose not phi is
    0wff & not phi is 
    exal;
    
          then
    
          reconsider phii = phi as non
    0wff non 
    exal(n
    + 1) 
    -wff  
    string of S; 
    
          set X = ((
    rng phii) 
    /\ O), s = (F 
    . phii); 
    
          reconsider h = (
    head phii), t = ( 
    tail phii) as n 
    -wff  
    string of S; 
    
          phii
    = (( 
    <*s*>
    ^ h) 
    ^ t) by 
    FOMODEL2: 23
    
          .= (
    <*s*>
    ^ (h 
    ^ t)) by 
    FINSEQ_1: 32;
    
          then (
    rng (h 
    ^ t)) 
    c= ( 
    rng phii) & ( 
    rng t) 
    c= ( 
    rng (h 
    ^ t)) & ( 
    rng h) 
    c= ( 
    rng (h 
    ^ t)) by 
    FINSEQ_1: 29,
    FINSEQ_1: 30;
    
          then (
    rng h) 
    c= ( 
    rng phii) & ( 
    rng t) 
    c= ( 
    rng phii) by 
    XBOOLE_1: 1;
    
          then
    
          reconsider rh = ((
    rng h) 
    /\ O), rt = (( 
    rng t) 
    /\ O) as 
    Subset of X by 
    XBOOLE_1: 26;
    
          set v1 = (I1
    -TruthEval phii), v2 = (I2 
    -TruthEval phii), h1 = (I1 
    -TruthEval h), h2 = (I2 
    -TruthEval h), t1 = (I1 
    -TruthEval t), t2 = (I2 
    -TruthEval t); 
    
          
    
          
    
    A6: (I1 
    | rh) 
    = (I1 
    | (rh 
    null X)) 
    
          .= ((I1
    | X) 
    | rh) by 
    RELAT_1: 71
    
          .= (I2
    | (rh 
    null X)) by 
    A5,
    RELAT_1: 71;
    
          (I1
    | rt) 
    = (I1 
    | (rt 
    null X)) 
    
          .= ((I1
    | X) 
    | rt) by 
    RELAT_1: 71
    
          .= (I2
    | (rt 
    null X)) by 
    A5,
    RELAT_1: 71;
    
          then
    
          
    
    A7: t1 
    = t2 by 
    A4;
    
          (v1
    \+\ (h1 
    'nor' t1)) 
    =  
    {} & (v2 
    \+\ (h2 
    'nor' t2)) 
    =  
    {} ; 
    
          then v1
    = (h1 
    'nor' t1) & v2 
    = (h2 
    'nor' t2) by 
    FOMODEL0: 29;
    
          hence thesis by
    A4,
    A6,
    A7;
    
        end;
    
          suppose phi is
    exal & not phi is 
    0wff;
    
          then
    
          reconsider phii = phi as
    exal
    wff  
    string of S; 
    
          set l = (F
    . phii); 
    
          reconsider h = (
    head phii) as n 
    -wff  
    string of S; 
    
          
    
          
    
    A8: phii 
    = (( 
    <*l*>
    ^ h) 
    ^ ( 
    tail phii)) by 
    FOMODEL2: 23
    
          .= (
    <*l*>
    ^ h); 
    
          then
    
          reconsider rh = (
    rng h) as 
    Subset of ( 
    rng phii) by 
    FINSEQ_1: 30;
    
          now
    
            hereby
    
              assume (I1
    -TruthEval phii) 
    = 1; 
    
              then
    
              consider u such that
    
              
    
    A9: (((l,u) 
    ReassignIn I1) 
    -TruthEval h) 
    = 1 by 
    A8,
    FOMODEL2: 19;
    
              set f = (l
    .--> ( 
    {}  
    .--> u)); 
    
              reconsider I1u = ((l,u)
    ReassignIn I1), I2u = ((l,u) 
    ReassignIn I2) as 
    Element of II; 
    
              (I1u
    | (( 
    rng h) 
    /\ O)) 
    = ((I1 
    | ((rh 
    null ( 
    rng phii)) 
    /\ O)) 
    +* (f 
    | (rh 
    /\ O))) by 
    FUNCT_4: 71
    
              .= ((I1
    | (rh 
    /\ (( 
    rng phii) 
    /\ O))) 
    +* (f 
    | (rh 
    /\ O))) by 
    XBOOLE_1: 16
    
              .= (((I1
    | (( 
    rng phii) 
    /\ O)) 
    | rh) 
    +* (f 
    | (rh 
    /\ O))) by 
    RELAT_1: 71
    
              .= ((I2
    | ((( 
    rng phii) 
    /\ O) 
    /\ rh)) 
    +* (f 
    | (rh 
    /\ O))) by 
    RELAT_1: 71,
    A5
    
              .= ((I2
    | ((( 
    rng phii) 
    /\ rh) 
    /\ O)) 
    +* (f 
    | (rh 
    /\ O))) by 
    XBOOLE_1: 16
    
              .= (I2u
    | (( 
    rng h) 
    /\ O)) by 
    FUNCT_4: 71;
    
              then (I2u
    -TruthEval h) 
    = 1 by 
    A9,
    A4;
    
              hence (I2
    -TruthEval phii) 
    = 1 by 
    A8,
    FOMODEL2: 19;
    
            end;
    
            assume (I2
    -TruthEval phii) 
    = 1; 
    
            then
    
            consider u such that
    
            
    
    A10: (((l,u) 
    ReassignIn I2) 
    -TruthEval h) 
    = 1 by 
    A8,
    FOMODEL2: 19;
    
            set f = (l
    .--> ( 
    {}  
    .--> u)); 
    
            reconsider I1u = ((l,u)
    ReassignIn I1), I2u = ((l,u) 
    ReassignIn I2) as 
    Element of II; 
    
            (I1u
    | (( 
    rng h) 
    /\ O)) 
    = ((I1 
    | ((rh 
    null ( 
    rng phii)) 
    /\ O)) 
    +* (f 
    | (rh 
    /\ O))) by 
    FUNCT_4: 71
    
            .= ((I1
    | (rh 
    /\ (( 
    rng phii) 
    /\ O))) 
    +* (f 
    | (rh 
    /\ O))) by 
    XBOOLE_1: 16
    
            .= (((I1
    | (( 
    rng phii) 
    /\ O)) 
    | rh) 
    +* (f 
    | (rh 
    /\ O))) by 
    RELAT_1: 71
    
            .= ((I2
    | ((( 
    rng phii) 
    /\ O) 
    /\ rh)) 
    +* (f 
    | (rh 
    /\ O))) by 
    RELAT_1: 71,
    A5
    
            .= ((I2
    | ((( 
    rng phii) 
    /\ rh) 
    /\ O)) 
    +* (f 
    | (rh 
    /\ O))) by 
    XBOOLE_1: 16
    
            .= (I2u
    | (( 
    rng h) 
    /\ O)) by 
    FUNCT_4: 71;
    
            then (I1u
    -TruthEval h) 
    = 1 by 
    A10,
    A4;
    
            hence (I1
    -TruthEval phii) 
    = 1 by 
    A8,
    FOMODEL2: 19;
    
          end;
    
          then (I1
    -TruthEval phii) 
    = 1 iff not (I2 
    -TruthEval phii) 
    =  
    0 by 
    FOMODEL0: 39;
    
          hence thesis by
    FOMODEL0: 39;
    
        end;
    
          suppose phi is
    0wff;
    
          hence thesis by
    A1,
    A5;
    
        end;
    
      end;
    
      
    
      
    
    A11: for n holds 
    P[n] from
    NAT_1:sch 2(
    A1,
    A3);
    
      let I1,I2 be
    Element of II; 
    
      set d = (
    Depth phi); 
    
      (phi
    null  
    0 ) is (d 
    +  
    0 ) 
    -wff;
    
      then
    
      reconsider phii = phi as d
    -wff  
    string of S; 
    
      assume (I1
    | (( 
    rng phi) 
    /\ O)) 
    = (I2 
    | (( 
    rng phi) 
    /\ O)); 
    
      then (I1
    | (( 
    rng phii) 
    /\ O)) 
    = (I2 
    | (( 
    rng phii) 
    /\ O)); 
    
      hence thesis by
    A11;
    
    end;
    
    theorem :: 
    
    FOMODEL3:14
    
    for I be
    Element of (U 
    -InterpretersOf S) st l is X 
    -absent & X is I 
    -satisfied holds X is ((l,u) 
    ReassignIn I) 
    -satisfied
    
    proof
    
      set II = (U
    -InterpretersOf S); 
    
      let I be
    Element of II; 
    
      set O = (
    OwnSymbolsOf S), I2 = ((l,u) 
    ReassignIn I), f2 = (l 
    .--> ( 
    {}  
    .--> u)); 
    
      assume
    
      
    
    A1: l is X 
    -absent & X is I 
    -satisfied;
    
      now
    
        let phi;
    
        reconsider no = ((
    rng phi) 
    /\ O) as 
    Subset of ( 
    rng phi); 
    
        assume
    
        
    
    A2: phi 
    in X; 
    
        then
    
        reconsider Phi =
    {phi} as
    Subset of X by 
    ZFMISC_1: 31;
    
        
    
        
    
    A3: (I 
    -TruthEval phi) 
    = 1 by 
    A1,
    A2;
    
        l is (X
    /\ Phi) 
    -absent by 
    A1;
    
        then not l
    in no by 
    FOMODEL2: 28;
    
        then
    {l}
    misses no by 
    ZFMISC_1: 50;
    
        then (
    dom f2) 
    misses no; 
    
        then ((I
    | no) 
    +* (f2 
    | no)) 
    = ((I 
    | no) 
    null  
    {} ) by 
    RELAT_1: 66;
    
        then (I2
    | no) 
    = (I 
    | no) by 
    FUNCT_4: 71;
    
        hence (I2
    -TruthEval phi) 
    = 1 by 
    A3,
    Th13;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    FOMODEL3:15
    
    for E be
    Equivalence_Relation of U, i be E 
    -respecting  
    Element of (U 
    -InterpretersOf S) holds ((l,((E 
    -class ) 
    . u)) 
    ReassignIn (i 
    quotient E)) 
    = (((l,u) 
    ReassignIn i) 
    quotient E) 
    
    proof
    
      set II = (U
    -InterpretersOf S); 
    
      let E be
    Equivalence_Relation of U; 
    
      let i be E
    -respecting  
    Element of II; 
    
      set x = u;
    
      set O = (
    OwnSymbolsOf S), UU = ( 
    Class E), III = (UU 
    -InterpretersOf S); 
    
      reconsider X = ((E
    -class ) 
    . x) as 
    Element of UU; 
    
      reconsider I = (i
    quotient E) as 
    Element of III; 
    
      reconsider j = ((l,x)
    ReassignIn i) as 
    Element of II; 
    
      reconsider Jj = ((l,X)
    ReassignIn I qua 
    Element of III) as 
    Element of III; 
    
      reconsider jJ = (j
    quotient E) as 
    Function;
    
      
    
      
    
    A1: ( 
    dom Jj) 
    = O & ( 
    dom jJ) 
    = O by 
    Def17,
    PARTFUN1:def 2;
    
      set jJ = (j qua
    Element of II 
    quotient E), g = (l 
    .--> ( 
    {
    {} } 
    --> x)), h = ( 
    {
    {} } 
    --> x), G = (l 
    .--> ( 
    {
    {} } 
    --> X)); 
    
      reconsider n =
    |.(
    ar l).| as 
    Nat;
    
      
    
      
    
    A2: 
    {
    {} } 
    = ( 
    0  
    -tuples_on U) & ( 
    id  
    {
    {} }) is 
    Equivalence_Relation of 
    {
    {} } by 
    FOMODEL0: 10;
    
      then
    
      reconsider Enn = (
    id  
    {
    {} }) as 
    Equivalence_Relation of ( 
    0  
    -tuples_on U); 
    
      set En = (n
    -placesOf E), nE = (n 
    -tuple2Class E); 
    
      
    
      
    
    A3: ( 
    dom g) 
    =  
    {l} & (
    dom G) 
    =  
    {l} & l
    in ( 
    dom g) & l 
    in ( 
    dom G) by 
    TARSKI:def 1;
    
      
    
      
    
    A4: En 
    = Enn & ( 
    dom (E 
    -class )) 
    = U & ( 
    dom ( 
    {
    {} } 
    --> ((E 
    -class ) 
    . x))) 
    =  
    {
    {} } & ( 
    dom h) 
    =  
    {
    {} } & (( 
    id  
    {
    {} }) 
    \+\ ( 
    {}  
    .-->  
    {} )) 
    =  
    {} by 
    Lm30,
    FUNCT_2:def 1;
    
      then
    
      
    
    A5: En 
    = Enn & x 
    in ( 
    dom (E 
    -class )) & 
    {}  
    in ( 
    dom ( 
    {
    {} } 
    --> ((E 
    -class ) 
    . x))) & ( 
    id  
    {
    {} }) 
    = ( 
    {}  
    .-->  
    {} ) by 
    TARSKI:def 1,
    FOMODEL0: 29;
    
      
    {}  
    in ( 
    dom h) by 
    TARSKI:def 1;
    
      then
    
      reconsider hh = h as Enn, E
    -respecting  
    Function by 
    Lm22;
    
      reconsider hhh = hh as En, E
    -respecting  
    Function of (n 
    -tuples_on U), U by 
    A2,
    A4;
    
      now
    
        let s be
    object;
    
        assume s
    in O; 
    
        then
    
        reconsider ss = s as
    own  
    Element of S; 
    
        per cases ;
    
          suppose
    
          
    
    A6: s 
    in ( 
    dom G); 
    
          
    
          
    
    A7: s 
    = l by 
    A6,
    TARSKI:def 1;
    
          
    
          then
    
          
    
    A8: (jJ 
    . s) 
    = ((j 
    . l) 
    quotient E) by 
    Def18
    
          .= ((n
    -tuple2Class E) 
    * ((j 
    . l) 
    quotient ((n 
    -placesOf E),E))) by 
    Def15
    
          .= (nE
    * ((g 
    . l) 
    quotient (En,E))) by 
    A3,
    FUNCT_4: 13
    
          .= (nE
    * (h 
    quotient (En,E)) qua 
    Relation) by
    FUNCOP_1: 72
    
          .= ((n
    -placesOf ((E 
    -class ) qua 
    Relation of U, ( 
    Class E) 
    ~ )) 
    * ((E 
    -class ) 
    * hhh)) by 
    Lm21
    
          .= ((
    id  
    {
    {} }) qua 
    Relation
    * ((E 
    -class ) 
    * hhh)) by 
    Lm30
    
          .= ((
    {
    {} } 
    --> ((E 
    -class ) 
    . x)) 
    * ( 
    {
    {} } 
    -->  
    {} )) by 
    FUNCOP_1: 17,
    A5
    
          .= (
    {
    {} } 
    --> (( 
    {}  
    .--> ((E 
    -class ) 
    . x)) 
    .  
    {} )) by 
    FUNCOP_1: 17,
    A5
    
          .= (
    {
    {} } 
    --> X) by 
    FUNCOP_1: 72;
    
          (Jj
    . s) 
    = (G 
    . l) by 
    A6,
    A7,
    FUNCT_4: 13
    
          .= (
    {
    {} } 
    --> X) by 
    FUNCOP_1: 72;
    
          hence (Jj
    . s) 
    = (jJ 
    . s) by 
    A8;
    
        end;
    
          suppose
    
          
    
    A9: not s 
    in ( 
    dom G); 
    
          
    
          then (Jj
    . s) 
    = (I 
    . s) by 
    FUNCT_4: 11
    
          .= ((i
    . ss) 
    quotient E) by 
    Def18
    
          .= ((j
    . ss) 
    quotient E) by 
    A9,
    FUNCT_4: 11
    
          .= (jJ
    . ss) by 
    Def18;
    
          hence (Jj
    . s) 
    = (jJ 
    . s); 
    
        end;
    
      end;
    
      hence thesis by
    A1,
    FUNCT_1: 2;
    
    end;
    
    theorem :: 
    
    FOMODEL3:16
    
    ((
    TheEqSymbOf S1) 
    = ( 
    TheEqSymbOf S2) & ( 
    TheNorSymbOf S1) 
    = ( 
    TheNorSymbOf S2)) implies for I1 be 
    Element of (U 
    -InterpretersOf S1), I2 be 
    Element of (U 
    -InterpretersOf S2), phi1 be 
    wff  
    string of S1 st ((the 
    adicity of S1 
    | (( 
    rng phi1) 
    /\ ( 
    OwnSymbolsOf S1))) 
    = (the 
    adicity of S2 
    | (( 
    rng phi1) 
    /\ ( 
    OwnSymbolsOf S1))) & (I1 
    | (( 
    rng phi1) 
    /\ ( 
    OwnSymbolsOf S1))) 
    = (I2 
    | (( 
    rng phi1) 
    /\ ( 
    OwnSymbolsOf S1)))) holds ex phi2 be 
    wff  
    string of S2 st phi1 
    = phi2 
    
    proof
    
      set O1 = (
    OwnSymbolsOf S1), O2 = ( 
    OwnSymbolsOf S2), a1 = the 
    adicity of S1, a2 = the 
    adicity of S2, E1 = ( 
    TheEqSymbOf S1), E2 = ( 
    TheEqSymbOf S2), F1 = (S1 
    -firstChar ), F2 = (S2 
    -firstChar ), AS1 = ( 
    AtomicFormulaSymbolsOf S1), AS2 = ( 
    AtomicFormulaSymbolsOf S2), N1 = ( 
    TheNorSymbOf S1), N2 = ( 
    TheNorSymbOf S2), II1 = (U 
    -InterpretersOf S1), II2 = (U 
    -InterpretersOf S2); 
    
      assume
    
      
    
    A1: E1 
    = E2 & N1 
    = N2; 
    
      defpred
    
    P[
    Nat] means for I1 be
    Element of II1, I2 be 
    Element of II2, phi1 be $1 
    -wff  
    string of S1 st (a1 
    | (( 
    rng phi1) 
    /\ O1)) 
    = (a2 
    | (( 
    rng phi1) 
    /\ O1)) & (I1 
    | (( 
    rng phi1) 
    /\ O1)) 
    = (I2 
    | (( 
    rng phi1) 
    /\ O1)) holds ex phi2 be $1 
    -wff  
    string of S2 st phi1 
    = phi2; 
    
      
    
      
    
    A2: 
    P[
    0 ] 
    
      proof
    
        let I1 be
    Element of II1, I2 be 
    Element of II2; 
    
        let phi1 be
    0  
    -wff  
    string of S1; 
    
        reconsider phi11 = phi1 as
    0wff  
    string of S1; 
    
        set x1 = (
    rng phi1), x11 = (x1 
    /\ O1); 
    
        assume (a1
    | x11) 
    = (a2 
    | x11) & (I1 
    | x11) 
    = (I2 
    | x11); 
    
        then
    
        consider phi2 be
    0wff  
    string of S2 such that 
    
        
    
    A3: phi11 
    = phi2 & (I1 
    -AtomicEval phi11) 
    = (I2 
    -AtomicEval phi2) by 
    Lm48,
    A1;
    
        thus thesis by
    A3;
    
      end;
    
      
    
      
    
    A4: for n st 
    P[n] holds
    P[(n
    + 1)] 
    
      proof
    
        let n;
    
        set N = (n
    + 1); 
    
        assume
    
        
    
    A5: 
    P[n];
    
        let I1 be
    Element of II1, I2 be 
    Element of II2; 
    
        let phi1 be N
    -wff  
    string of S1; 
    
        set x1 = (
    rng phi1), x11 = (x1 
    /\ O1); 
    
        assume
    
        
    
    A6: (a1 
    | x11) 
    = (a2 
    | x11) & (I1 
    | x11) 
    = (I2 
    | x11); 
    
        per cases ;
    
          suppose phi1 is
    0wff;
    
          then
    
          reconsider phi11 = phi1 as
    0  
    -wff  
    string of S1; 
    
          consider phi2 be
    0  
    -wff  
    string of S2 such that 
    
          
    
    A7: phi11 
    = phi2 by 
    A2,
    A6;
    
          phi2 is (
    0  
    + ( 
    0  
    * N)) 
    -wff;
    
          then phi2 is (
    0  
    + N) 
    -wff;
    
          then
    
          reconsider phi22 = phi2 as N
    -wff  
    string of S2; 
    
          take phi22;
    
          thus thesis by
    A7;
    
        end;
    
          suppose not phi1 is
    0wff;
    
          then
    
          reconsider phi11 = phi1 as non
    0wffN
    -wff  
    string of S1; 
    
          reconsider h1 = (
    head phi11) as n 
    -wff  
    string of S1; 
    
          set t11 = (
    tail phi11), l11 = (F1 
    . phi11); 
    
          
    
          
    
    A8: phi11 
    = (( 
    <*l11*>
    ^ h1) 
    ^ t11) by 
    FOMODEL2: 23;
    
          then (
    rng h1) 
    c= ( 
    rng ( 
    <*l11*>
    ^ h1)) & ( 
    rng ( 
    <*l11*>
    ^ h1)) 
    c= x1 by 
    FINSEQ_1: 30,
    FINSEQ_1: 29;
    
          then
    
          reconsider y1 = (
    rng h1) as non 
    empty  
    Subset of x1 by 
    XBOOLE_1: 1;
    
          reconsider y11 = (y1
    /\ O1) as 
    Subset of x11 by 
    XBOOLE_1: 26;
    
          
    
          
    
    A9: (I1 
    | (y11 
    null x11)) 
    = ((I1 
    | x11) 
    | y11) by 
    RELAT_1: 71
    
          .= (I2
    | (y11 
    null x11)) by 
    RELAT_1: 71,
    A6;
    
          (a1
    | (y11 
    null x11)) 
    = ((a1 
    | x11) 
    | y11) by 
    RELAT_1: 71
    
          .= (a2
    | (y11 
    null x11)) by 
    RELAT_1: 71,
    A6;
    
          then
    
          consider h2 be n
    -wff  
    string of S2 such that 
    
          
    
    A10: h1 
    = h2 by 
    A5,
    A9;
    
          per cases ;
    
            suppose phi11 is
    exal;
    
            then
    
            reconsider phi11 as
    exal non 
    0wffN
    -wff  
    string of S1; 
    
            reconsider l1 = (F1
    . phi11) as 
    literal  
    Element of S1; 
    
            (phi1
    null  
    {} ) is (x1 
    \/  
    {} ) 
    -valued;
    
            then (
    {(phi1
    . 1)} 
    \ x1) 
    =  
    {} ; 
    
            then (phi1
    . 1) 
    in x1 by 
    ZFMISC_1: 60;
    
            then l1
    in x1 & l1 
    in O1 & ( 
    dom a1) 
    = AS1 by 
    FOMODEL0: 6,
    FOMODEL1:def 19,
    FUNCT_2:def 1;
    
            then
    
            
    
    A11: l1 
    in x11 & ( 
    dom (a1 
    | x11)) 
    = (AS1 
    /\ x11) & l1 
    in AS1 by 
    RELAT_1: 61,
    XBOOLE_0:def 4,
    FOMODEL1:def 20;
    
            then l1
    in ( 
    dom (a2 
    | x11)) & ( 
    dom (a2 
    | x11)) 
    = (x11 
    /\ ( 
    dom a2)) by 
    XBOOLE_0:def 4,
    RELAT_1: 61,
    A6;
    
            then l1
    in ( 
    dom a2) & ( 
    dom a2) 
    = AS2 by 
    FUNCT_2:def 1;
    
            then
    
            reconsider l2 = l1 as
    ofAtomicFormula  
    Element of S2 by 
    FOMODEL1:def 20;
    
            l2
    in O2 by 
    A1,
    FOMODEL1: 15;
    
            then
    
            reconsider l2 as
    own  
    Element of S2; 
    
            (
    ar l1) 
    = ((a1 
    | x11) 
    . l1) by 
    A11,
    FUNCT_1: 49
    
            .= (
    ar l2) by 
    A6,
    A11,
    FUNCT_1: 49;
    
            then not l2 is
    low-compounding;
    
            then
    
            reconsider l2 as
    literal  
    Element of S2; 
    
            take phi2 = (
    <*l2*>
    ^ h2); 
    
            phi11
    = (( 
    <*l2*>
    ^ h1) 
    ^ ( 
    tail phi11)) by 
    FOMODEL2: 23;
    
            hence phi1
    = phi2 by 
    A10;
    
            reconsider l2 as
    literal  
    Element of S2; 
    
          end;
    
            suppose not phi11 is
    exal;
    
            then
    
            reconsider phi11 as non
    exal non 
    0wffN
    -wff  
    string of S1; 
    
            reconsider t1 = (
    tail phi11) as n 
    -wff  
    string of S1; 
    
            reconsider z1 = (
    rng t1) as non 
    empty  
    Subset of x1 by 
    A8,
    FINSEQ_1: 30;
    
            reconsider z11 = (z1
    /\ O1) as 
    Subset of x11 by 
    XBOOLE_1: 26;
    
            
    
            
    
    A12: (I1 
    | (z11 
    null x11)) 
    = ((I2 
    | x11) 
    | z11) by 
    A6,
    RELAT_1: 71
    
            .= (I2
    | (z11 
    null x11)) by 
    RELAT_1: 71;
    
            (a1
    | (z11 
    null x11)) 
    = ((a1 
    | x11) 
    | z11) by 
    RELAT_1: 71
    
            .= (a2
    | (z11 
    null x11)) by 
    RELAT_1: 71,
    A6;
    
            then
    
            consider t2 be n
    -wff  
    string of S2 such that 
    
            
    
    A13: t1 
    = t2 by 
    A5,
    A12;
    
            take phi2 = ((
    <*N2*>
    ^ h2) 
    ^ t2); 
    
            ((F1
    . phi11) 
    \+\ N1) 
    =  
    {} ; 
    
            hence phi1
    = phi2 by 
    A1,
    A10,
    A13,
    A8,
    FOMODEL0: 29;
    
          end;
    
        end;
    
      end;
    
      
    
      
    
    A14: for n holds 
    P[n] from
    NAT_1:sch 2(
    A2,
    A4);
    
      let I1 be
    Element of II1, I2 be 
    Element of II2, phi1 be 
    wff  
    string of S1; 
    
      set d = (
    Depth phi1); 
    
      (phi1
    null  
    0 ) is (d 
    +  
    0 ) 
    -wff;
    
      then
    
      reconsider phi11 = phi1 as d
    -wff  
    string of S1; 
    
      set x1 = (
    rng phi1), x11 = (x1 
    /\ O1); 
    
      assume (a1
    | x11) 
    = (a2 
    | x11) & (I1 
    | x11) 
    = (I2 
    | x11); 
    
      then
    
      consider phi2 be d
    -wff  
    string of S2 such that 
    
      
    
    A15: phi2 
    = phi11 by 
    A14;
    
      take phi2;
    
      thus thesis by
    A15;
    
    end;
    
    theorem :: 
    
    FOMODEL3:17
    
    for I1 be
    Element of (U 
    -InterpretersOf S1), I2 be 
    Element of (U 
    -InterpretersOf S2) st S2 is S1 
    -extending & X 
    c= ( 
    AllFormulasOf S1) & (I1 
    | ( 
    OwnSymbolsOf S1)) 
    = (I2 
    | ( 
    OwnSymbolsOf S1)) holds (X is I1 
    -satisfied iff X is I2 
    -satisfied) by
    Lm49;
    
    
    
    
    
    Lm50: for R be 
    total
    reflexive  
    Relation of U, f be 
    Function of X, U st x 
    in X holds f is 
    {
    [x, x]}, R
    -respecting
    
    proof
    
      let R be
    total
    reflexive  
    Relation of U; 
    
      let f be
    Function of X, U; 
    
      reconsider E =
    {
    [x, x]} as
    Relation;
    
      assume
    
      
    
    A1: x 
    in X; 
    
      then
    
      reconsider XX = X as non
    empty  
    set;
    
      reconsider ff = f as
    Function of XX, U; 
    
      now
    
        let x1,x2 be
    set;
    
        assume
    [x1, x2]
    in E; 
    
        then
    
        
    
    A2: 
    [x1, x2]
    =  
    [x, x] by
    TARSKI:def 1;
    
        then
    
        
    
    A3: x1 
    = x & x2 
    = x by 
    XTUPLE_0: 1;
    
        reconsider x11 = x1, x22 = x2 as
    Element of XX by 
    A1,
    A2,
    XTUPLE_0: 1;
    
        (ff
    . x11) 
    in U & (ff 
    . x22) 
    in U & (ff 
    . x11) 
    = (ff 
    . x22) by 
    A3;
    
        hence
    [(f
    . x1), (f 
    . x2)] 
    in R by 
    EQREL_1: 5;
    
      end;
    
      hence thesis;
    
    end;
    
    
    
    
    
    Lm51: for E be 
    total
    reflexive  
    Relation of U, f be 
    Interpreter of l, U holds f is E 
    -respecting
    
    proof
    
      let E be
    total
    reflexive  
    Relation of U; 
    
      reconsider m =
    |.(
    ar l).| as 
    zero  
    Nat;
    
      let f be
    Interpreter of l, U; 
    
      (m
    -tuples_on U) 
    =  
    {
    {} } by 
    FOMODEL0: 10;
    
      then
    
      reconsider ff = f as
    Function of 
    {
    {} }, U by 
    FOMODEL2:def 2;
    
      
    {}  
    in  
    {
    {} } by 
    TARSKI:def 1;
    
      then ff is
    {
    [
    {} , 
    {} ]}, E 
    -respecting by 
    Lm50;
    
      then f is (m
    -placesOf E), E 
    -respecting;
    
      hence thesis by
    Def10;
    
    end;
    
    theorem :: 
    
    FOMODEL3:18
    
    for E be
    total
    reflexive  
    Relation of U, f be 
    Interpreter of l, U holds f is E 
    -respecting by 
    Lm51;