trees_2.miz
    
    begin
    
    reserve x,y,z,a,b,c,X,X1,X2,Y,Z for
    set, 
    
W,W1,W2 for
    Tree, 
    
w,w9 for
    Element of W, 
    
f for
    Function, 
    
D,D9 for non
    empty  
    set, 
    
i,k,k1,k2,l,m,n for
    Nat, 
    
v,v1,v2 for
    FinSequence, 
    
p,q,r,r1,r2 for
    FinSequence of 
    NAT ; 
    
    theorem :: 
    
    TREES_2:1
    
    
    
    
    
    Th1: for v1, v2, v st v1 
    is_a_prefix_of v & v2 
    is_a_prefix_of v holds (v1,v2) 
    are_c=-comparable  
    
    proof
    
      let p,q,r be
    FinSequence;
    
      assume p
    is_a_prefix_of r; 
    
      then
    
      
    
    A1: ex p9 be 
    FinSequence st r 
    = (p 
    ^ p9) by 
    TREES_1: 1;
    
      assume q
    is_a_prefix_of r; 
    
      then
    
      
    
    A2: ex q9 be 
    FinSequence st r 
    = (q 
    ^ q9) by 
    TREES_1: 1;
    
      (
    len p) 
    <= ( 
    len q) or ( 
    len q) 
    <= ( 
    len p); 
    
      then (ex t be
    FinSequence st (p 
    ^ t) 
    = q) or ex t be 
    FinSequence st (q 
    ^ t) 
    = p by 
    A1,
    A2,
    FINSEQ_1: 47;
    
      hence p
    is_a_prefix_of q or q 
    is_a_prefix_of p by 
    TREES_1: 1;
    
    end;
    
    theorem :: 
    
    TREES_2:2
    
    
    
    
    
    Th2: for v1, v2, v st v1 
    is_a_proper_prefix_of v & v2 
    is_a_prefix_of v holds (v1,v2) 
    are_c=-comparable by 
    Th1;
    
    theorem :: 
    
    TREES_2:3
    
    
    
    
    
    Th3: ( 
    len v1) 
    = (k 
    + 1) implies ex v2, x st v1 
    = (v2 
    ^  
    <*x*>) & (
    len v2) 
    = k 
    
    proof
    
      assume
    
      
    
    A1: ( 
    len v1) 
    = (k 
    + 1); 
    
      reconsider v2 = (v1
    | ( 
    Seg k)) as 
    FinSequence by 
    FINSEQ_1: 15;
    
      v2
    is_a_prefix_of v1; 
    
      then
    
      consider v such that
    
      
    
    A2: v1 
    = (v2 
    ^ v) by 
    TREES_1: 1;
    
      take v2, (v
    . 1); 
    
      
    
      
    
    A3: k 
    <= (k 
    + 1) by 
    NAT_1: 11;
    
      then (
    len v2) 
    = k by 
    A1,
    FINSEQ_1: 17;
    
      then (k
    + ( 
    len v)) 
    = (k 
    + 1) by 
    A1,
    A2,
    FINSEQ_1: 22;
    
      hence thesis by
    A1,
    A2,
    A3,
    FINSEQ_1: 17,
    FINSEQ_1: 40;
    
    end;
    
    theorem :: 
    
    TREES_2:4
    
    
    
    
    
    Th4: ( 
    ProperPrefixes (v 
    ^  
    <*x*>))
    = (( 
    ProperPrefixes v) 
    \/  
    {v})
    
    proof
    
      thus (
    ProperPrefixes (v 
    ^  
    <*x*>))
    c= (( 
    ProperPrefixes v) 
    \/  
    {v})
    
      proof
    
        let y be
    object;
    
        assume y
    in ( 
    ProperPrefixes (v 
    ^  
    <*x*>));
    
        then
    
        consider v1 such that
    
        
    
    A1: y 
    = v1 and 
    
        
    
    A2: v1 
    is_a_proper_prefix_of (v 
    ^  
    <*x*>) by
    TREES_1:def 2;
    
        v1
    is_a_prefix_of v & v1 
    <> v or v1 
    = v by 
    A2,
    TREES_1: 9;
    
        then v1
    is_a_proper_prefix_of v or v1 
    in  
    {v} by
    TARSKI:def 1;
    
        then y
    in ( 
    ProperPrefixes v) or y 
    in  
    {v} by
    A1,
    TREES_1:def 2;
    
        hence thesis by
    XBOOLE_0:def 3;
    
      end;
    
      let y be
    object;
    
      assume y
    in (( 
    ProperPrefixes v) 
    \/  
    {v});
    
      then
    
      
    
    A3: y 
    in ( 
    ProperPrefixes v) or y 
    in  
    {v} by
    XBOOLE_0:def 3;
    
      
    
    A4: 
    
      now
    
        assume y
    in ( 
    ProperPrefixes v); 
    
        then
    
        consider v1 such that
    
        
    
    A5: y 
    = v1 and 
    
        
    
    A6: v1 
    is_a_proper_prefix_of v by 
    TREES_1:def 2;
    
        v
    is_a_prefix_of (v 
    ^  
    <*x*>) by
    TREES_1: 1;
    
        then v1
    is_a_proper_prefix_of (v 
    ^  
    <*x*>) by
    A6,
    XBOOLE_1: 58;
    
        hence thesis by
    A5,
    TREES_1:def 2;
    
      end;
    
      (v
    ^  
    {} ) 
    = v by 
    FINSEQ_1: 34;
    
      then v
    is_a_prefix_of (v 
    ^  
    <*x*>) & v
    <> (v 
    ^  
    <*x*>) by
    FINSEQ_1: 33,
    TREES_1: 1;
    
      then v
    is_a_proper_prefix_of (v 
    ^  
    <*x*>);
    
      then y
    in ( 
    ProperPrefixes v) or y 
    = v & v 
    in ( 
    ProperPrefixes (v 
    ^  
    <*x*>)) by
    A3,
    TARSKI:def 1,
    TREES_1:def 2;
    
      hence thesis by
    A4;
    
    end;
    
    scheme :: 
    
    TREES_2:sch1
    
    TreeStructInd { T() ->
    Tree , P[ 
    set] } :
    
for t be 
    Element of T() holds P[t] 
    
      provided
    
      
    
    A1: P[ 
    {} ] 
    
       and 
    
      
    
    A2: for t be 
    Element of T(), n st P[t] & (t 
    ^  
    <*n*>)
    in T() holds P[(t 
    ^  
    <*n*>)];
    
      defpred
    
    X[
    set] means for t be
    Element of T() st ( 
    len t) 
    = $1 holds P[t]; 
    
      (
    card x) 
    =  
    0 implies x 
    =  
    {} ; 
    
      then
    
      
    
    A3: 
    X[
    0 ] by 
    A1;
    
      
    
      
    
    A4: 
    X[k] implies
    X[(k
    + 1)] 
    
      proof
    
        assume
    
        
    
    A5: for t be 
    Element of T() st ( 
    len t) 
    = k holds P[t]; 
    
        let t be
    Element of T(); 
    
        assume (
    len t) 
    = (k 
    + 1); 
    
        then
    
        consider v, x such that
    
        
    
    A6: t 
    = (v 
    ^  
    <*x*>) and
    
        
    
    A7: ( 
    len v) 
    = k by 
    Th3;
    
        reconsider v as
    FinSequence of 
    NAT by 
    A6,
    FINSEQ_1: 36;
    
        reconsider v as
    Element of T() by 
    A6,
    TREES_1: 21;
    
        (
    rng  
    <*x*>)
    c= ( 
    rng t) by 
    A6,
    FINSEQ_1: 30;
    
        then (
    rng  
    <*x*>)
    =  
    {x} & (
    rng  
    <*x*>)
    c=  
    NAT by 
    FINSEQ_1: 39,
    XBOOLE_1: 1;
    
        then
    
        reconsider x as
    Element of 
    NAT by 
    ZFMISC_1: 31;
    
        
    
        
    
    A8: P[v] by 
    A5,
    A7;
    
        x
    = x; 
    
        hence thesis by
    A2,
    A6,
    A8;
    
      end;
    
      
    
      
    
    A9: 
    X[k] from
    NAT_1:sch 2(
    A3,
    A4);
    
      let t be
    Element of T(); 
    
      (
    len t) 
    = ( 
    len t); 
    
      hence thesis by
    A9;
    
    end;
    
    theorem :: 
    
    TREES_2:5
    
    
    
    
    
    Th5: (for p holds p 
    in W1 iff p 
    in W2) implies W1 
    = W2 
    
    proof
    
      assume
    
      
    
    A1: for p holds p 
    in W1 iff p 
    in W2; 
    
      thus W1
    c= W2 
    
      proof
    
        let x be
    object;
    
        assume x
    in W1; 
    
        then
    
        reconsider p = x as
    Element of W1; 
    
        p
    in W2 by 
    A1;
    
        hence thesis;
    
      end;
    
      let x be
    object;
    
      assume x
    in W2; 
    
      then
    
      reconsider p = x as
    Element of W2; 
    
      p
    in W1 by 
    A1;
    
      hence thesis;
    
    end;
    
    definition
    
      let W1, W2;
    
      :: original:
    =
    
      redefine
    
      :: 
    
    TREES_2:def1
    
      pred W1
    
    = W2 means for p holds p 
    in W1 iff p 
    in W2; 
    
      compatibility by
    Th5;
    
    end
    
    theorem :: 
    
    TREES_2:6
    
    p
    in W implies W 
    = (W 
    with-replacement (p,(W 
    | p))) 
    
    proof
    
      assume
    
      
    
    A1: p 
    in W; 
    
      now
    
        let q;
    
        thus q
    in W implies q 
    in (W 
    with-replacement (p,(W 
    | p))) 
    
        proof
    
          assume
    
          
    
    A2: q 
    in W; 
    
          now
    
            assume p
    is_a_proper_prefix_of q; 
    
            then p
    is_a_prefix_of q; 
    
            then
    
            consider r be
    FinSequence such that 
    
            
    
    A3: q 
    = (p 
    ^ r) by 
    TREES_1: 1;
    
            (
    rng r) 
    c= ( 
    rng q) by 
    A3,
    FINSEQ_1: 30;
    
            then (
    rng r) 
    c=  
    NAT by 
    XBOOLE_1: 1;
    
            then
    
            reconsider r as
    FinSequence of 
    NAT by 
    FINSEQ_1:def 4;
    
            take r;
    
            thus r
    in (W 
    | p) & q 
    = (p 
    ^ r) by 
    A1,
    A2,
    A3,
    TREES_1:def 6;
    
          end;
    
          hence thesis by
    A1,
    A2,
    TREES_1:def 9;
    
        end;
    
        assume that
    
        
    
    A4: q 
    in (W 
    with-replacement (p,(W 
    | p))) and 
    
        
    
    A5: not q 
    in W; 
    
        ex r st r
    in (W 
    | p) & q 
    = (p 
    ^ r) by 
    A1,
    A4,
    A5,
    TREES_1:def 9;
    
        hence contradiction by
    A1,
    A5,
    TREES_1:def 6;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    TREES_2:7
    
    
    
    
    
    Th7: p 
    in W & q 
    in W & not p 
    is_a_prefix_of q implies q 
    in (W 
    with-replacement (p,W1)) 
    
    proof
    
       not p
    is_a_prefix_of q implies not p 
    is_a_proper_prefix_of q; 
    
      hence thesis by
    TREES_1:def 9;
    
    end;
    
    theorem :: 
    
    TREES_2:8
    
    p
    in W & q 
    in W & not (p,q) 
    are_c=-comparable implies ((W 
    with-replacement (p,W1)) 
    with-replacement (q,W2)) 
    = ((W 
    with-replacement (q,W2)) 
    with-replacement (p,W1)) 
    
    proof
    
      assume that
    
      
    
    A1: p 
    in W and 
    
      
    
    A2: q 
    in W and 
    
      
    
    A3: not (p,q) 
    are_c=-comparable ; 
    
      
    
      
    
    A4: not p 
    is_a_prefix_of q by 
    A3;
    
       not q
    is_a_prefix_of p by 
    A3;
    
      then
    
      
    
    A5: p 
    in (W 
    with-replacement (q,W2)) by 
    A1,
    A2,
    Th7;
    
      
    
      
    
    A6: q 
    in (W 
    with-replacement (p,W1)) by 
    A1,
    A2,
    A4,
    Th7;
    
      let r;
    
      thus r
    in ((W 
    with-replacement (p,W1)) 
    with-replacement (q,W2)) implies r 
    in ((W 
    with-replacement (q,W2)) 
    with-replacement (p,W1)) 
    
      proof
    
        assume r
    in ((W 
    with-replacement (p,W1)) 
    with-replacement (q,W2)); 
    
        then r
    in (W 
    with-replacement (p,W1)) & not q 
    is_a_proper_prefix_of r or ex r1 st r1 
    in W2 & r 
    = (q 
    ^ r1) by 
    A6,
    TREES_1:def 9;
    
        then r
    in W & not p 
    is_a_proper_prefix_of r & not q 
    is_a_proper_prefix_of r or (ex r2 st r2 
    in W1 & r 
    = (p 
    ^ r2)) & not q 
    is_a_proper_prefix_of r or q 
    is_a_prefix_of r & ex r1 st r1 
    in W2 & r 
    = (q 
    ^ r1) by 
    A1,
    TREES_1: 1,
    TREES_1:def 9;
    
        then r
    in (W 
    with-replacement (q,W2)) & not p 
    is_a_proper_prefix_of r or ex r1 st r1 
    in W1 & r 
    = (p 
    ^ r1) by 
    A2,
    A3,
    Th2,
    TREES_1:def 9;
    
        hence thesis by
    A5,
    TREES_1:def 9;
    
      end;
    
      assume r
    in ((W 
    with-replacement (q,W2)) 
    with-replacement (p,W1)); 
    
      then r
    in (W 
    with-replacement (q,W2)) & not p 
    is_a_proper_prefix_of r or ex r1 st r1 
    in W1 & r 
    = (p 
    ^ r1) by 
    A5,
    TREES_1:def 9;
    
      then r
    in W & not q 
    is_a_proper_prefix_of r & not p 
    is_a_proper_prefix_of r or (ex r2 st r2 
    in W2 & r 
    = (q 
    ^ r2)) & not p 
    is_a_proper_prefix_of r or p 
    is_a_prefix_of r & ex r1 st r1 
    in W1 & r 
    = (p 
    ^ r1) by 
    A2,
    TREES_1: 1,
    TREES_1:def 9;
    
      then r
    in (W 
    with-replacement (p,W1)) & not q 
    is_a_proper_prefix_of r or ex r1 st r1 
    in W2 & r 
    = (q 
    ^ r1) by 
    A1,
    A3,
    Th2,
    TREES_1:def 9;
    
      hence thesis by
    A6,
    TREES_1:def 9;
    
    end;
    
    definition
    
      let IT be
    Tree;
    
      :: 
    
    TREES_2:def2
    
      attr IT is
    
    finite-order means ex n st for t be 
    Element of IT holds not (t 
    ^  
    <*n*>)
    in IT; 
    
    end
    
    registration
    
      cluster 
    finite-order for 
    Tree;
    
      existence
    
      proof
    
        reconsider T =
    {
    {} } as 
    Tree;
    
        take T,
    0 ; 
    
        let t be
    Element of T; 
    
        thus thesis by
    TARSKI:def 1;
    
      end;
    
    end
    
    definition
    
      let W;
    
      :: 
    
    TREES_2:def3
    
      mode
    
    Chain of W -> 
    Subset of W means 
    
      :
    
    Def3: for p, q st p 
    in it & q 
    in it holds (p,q) 
    are_c=-comparable ; 
    
      existence
    
      proof
    
        reconsider S =
    {} as 
    Subset of W by 
    XBOOLE_1: 2;
    
        take S;
    
        let p, q;
    
        thus thesis;
    
      end;
    
      :: 
    
    TREES_2:def4
    
      mode
    
    Level of W -> 
    Subset of W means 
    
      :
    
    Def4: ex n be 
    Nat st it 
    = { w : ( 
    len w) 
    = n }; 
    
      existence
    
      proof
    
        
    {}  
    in W by 
    TREES_1: 22;
    
        then
    
        reconsider L =
    {
    {} } as 
    Subset of W by 
    ZFMISC_1: 31;
    
        take L,
    0 ; 
    
        thus L
    c= { w : ( 
    len w) 
    =  
    0 } 
    
        proof
    
          let x be
    object;
    
          assume
    
          
    
    A1: x 
    in L; 
    
          then
    
          
    
    A2: x 
    =  
    {} by 
    TARSKI:def 1;
    
          (
    len  
    {} ) 
    =  
    0 ; 
    
          hence thesis by
    A1,
    A2;
    
        end;
    
        let x be
    object;
    
        assume x
    in { w : ( 
    len w) 
    =  
    0 }; 
    
        then ex w st x
    = w & ( 
    len w) 
    =  
    0 ; 
    
        then x
    =  
    {} ; 
    
        hence thesis by
    TARSKI:def 1;
    
      end;
    
      let w;
    
      :: 
    
    TREES_2:def5
    
      func
    
    succ w -> 
    Subset of W equals { (w 
    ^  
    <*n*>) : (w
    ^  
    <*n*>)
    in W }; 
    
      coherence
    
      proof
    
        { (w
    ^  
    <*n*>) : (w
    ^  
    <*n*>)
    in W } 
    c= W 
    
        proof
    
          let x be
    object;
    
          assume x
    in { (w 
    ^  
    <*n*>) : (w
    ^  
    <*n*>)
    in W }; 
    
          then ex n st x
    = (w 
    ^  
    <*n*>) & (w
    ^  
    <*n*>)
    in W; 
    
          hence thesis;
    
        end;
    
        hence thesis;
    
      end;
    
    end
    
    theorem :: 
    
    TREES_2:9
    
    for L be
    Level of W holds L is 
    AntiChain_of_Prefixes of W 
    
    proof
    
      let L be
    Level of W; 
    
      consider n be
    Nat such that 
    
      
    
    A1: L 
    = { w : ( 
    len w) 
    = n } by 
    Def4;
    
      L is
    AntiChain_of_Prefixes-like
    
      proof
    
        thus for x st x
    in L holds x is 
    FinSequence
    
        proof
    
          let x;
    
          assume x
    in L; 
    
          then x is
    Element of W; 
    
          hence thesis;
    
        end;
    
        let v1, v2;
    
        assume v1
    in L; 
    
        then
    
        
    
    A2: ex w1 be 
    Element of W st v1 
    = w1 & ( 
    len w1) 
    = n by 
    A1;
    
        assume v2
    in L; 
    
        then ex w2 be
    Element of W st v2 
    = w2 & ( 
    len w2) 
    = n by 
    A1;
    
        hence thesis by
    A2,
    TREES_1: 4;
    
      end;
    
      hence thesis by
    TREES_1:def 11;
    
    end;
    
    theorem :: 
    
    TREES_2:10
    
    (
    succ w) is 
    AntiChain_of_Prefixes of W 
    
    proof
    
      (
    succ w) is 
    AntiChain_of_Prefixes-like
    
      proof
    
        thus for x st x
    in ( 
    succ w) holds x is 
    FinSequence
    
        proof
    
          let x;
    
          assume x
    in ( 
    succ w); 
    
          then ex i st x
    = (w 
    ^  
    <*i*>) & (w
    ^  
    <*i*>)
    in W; 
    
          hence thesis;
    
        end;
    
        let v1, v2;
    
        assume v1
    in ( 
    succ w); 
    
        then
    
        
    
    A1: ex k1 st v1 
    = (w 
    ^  
    <*k1*>) & (w
    ^  
    <*k1*>)
    in W; 
    
        assume v2
    in ( 
    succ w); 
    
        then
    
        
    
    A2: ex k2 st v2 
    = (w 
    ^  
    <*k2*>) & (w
    ^  
    <*k2*>)
    in W; 
    
        
    
        
    
    A3: ( 
    len v1) 
    = (( 
    len w) 
    + 1) by 
    A1,
    FINSEQ_2: 16;
    
        (
    len v2) 
    = (( 
    len w) 
    + 1) by 
    A2,
    FINSEQ_2: 16;
    
        hence thesis by
    A3,
    TREES_1: 4;
    
      end;
    
      hence thesis by
    TREES_1:def 11;
    
    end;
    
    theorem :: 
    
    TREES_2:11
    
    for A be
    AntiChain_of_Prefixes of W, C be 
    Chain of W holds ex w st (A 
    /\ C) 
    c=  
    {w}
    
    proof
    
      let A be
    AntiChain_of_Prefixes of W, C be 
    Chain of W; 
    
      
    
    A1: 
    
      now
    
        let p, q;
    
        assume
    
        
    
    A2: p 
    in (A 
    /\ C) & q 
    in (A 
    /\ C); 
    
        then
    
        
    
    A3: p 
    in A & q 
    in A by 
    XBOOLE_0:def 4;
    
        p
    in C & q 
    in C by 
    A2,
    XBOOLE_0:def 4;
    
        then (p,q)
    are_c=-comparable by 
    Def3;
    
        hence p
    = q by 
    A3,
    TREES_1:def 10;
    
      end;
    
      set w = the
    Element of W; 
    
      now
    
        per cases ;
    
          suppose (A
    /\ C) 
    =  
    {} ; 
    
          then (A
    /\ C) 
    c=  
    {w};
    
          hence thesis;
    
        end;
    
          suppose
    
          
    
    A4: (A 
    /\ C) 
    <>  
    {} ; 
    
          set x = the
    Element of (A 
    /\ C); 
    
          x
    in C by 
    A4,
    XBOOLE_0:def 4;
    
          then
    
          reconsider x as
    Element of W; 
    
          take x;
    
          thus (A
    /\ C) 
    c=  
    {x}
    
          proof
    
            let y be
    object;
    
            assume
    
            
    
    A5: y 
    in (A 
    /\ C); 
    
            then y is
    Element of W; 
    
            then
    
            reconsider y9 = y as
    FinSequence of 
    NAT ; 
    
            x
    = y9 by 
    A1,
    A5;
    
            hence thesis by
    TARSKI:def 1;
    
          end;
    
        end;
    
      end;
    
      hence thesis;
    
    end;
    
    definition
    
      let W;
    
      let n be
    Nat;
    
      :: 
    
    TREES_2:def6
    
      func W
    
    -level n -> 
    Level of W equals { w : ( 
    len w) 
    = n }; 
    
      coherence
    
      proof
    
        defpred
    
    X[
    Element of W] means ( 
    len $1) 
    = n; 
    
        { w :
    X[w] } is
    Subset of W from 
    DOMAIN_1:sch 7;
    
        hence thesis by
    Def4;
    
      end;
    
    end
    
    theorem :: 
    
    TREES_2:12
    
    (w
    ^  
    <*n*>)
    in ( 
    succ w) iff (w 
    ^  
    <*n*>)
    in W; 
    
    theorem :: 
    
    TREES_2:13
    
    w
    =  
    {} implies (W 
    -level 1) 
    = ( 
    succ w) 
    
    proof
    
      assume
    
      
    
    A1: w 
    =  
    {} ; 
    
      thus (W
    -level 1) 
    c= ( 
    succ w) 
    
      proof
    
        let x be
    object;
    
        assume x
    in (W 
    -level 1); 
    
        then
    
        consider w9 such that
    
        
    
    A2: x 
    = w9 and 
    
        
    
    A3: ( 
    len w9) 
    = 1; 
    
        
    
        
    
    A4: w9 
    =  
    <*(w9
    . 1)*> by 
    A3,
    FINSEQ_1: 40;
    
        then (
    rng w9) 
    =  
    {(w9
    . 1)} by 
    FINSEQ_1: 39;
    
        then
    
        reconsider n = (w9
    . 1) as 
    Element of 
    NAT by 
    ZFMISC_1: 31;
    
        w9
    = (w 
    ^  
    <*n*>) by
    A1,
    A4,
    FINSEQ_1: 34;
    
        hence thesis by
    A2;
    
      end;
    
      let x be
    object;
    
      assume x
    in ( 
    succ w); 
    
      then
    
      consider i such that
    
      
    
    A5: x 
    = (w 
    ^  
    <*i*>) and
    
      
    
    A6: (w 
    ^  
    <*i*>)
    in W; 
    
      reconsider w9 = (w
    ^  
    <*i*>) as
    Element of W by 
    A6;
    
      (
    len  
    <*i*>)
    = 1 & w9 
    =  
    <*i*> by
    A1,
    FINSEQ_1: 34,
    FINSEQ_1: 39;
    
      hence thesis by
    A5;
    
    end;
    
    theorem :: 
    
    TREES_2:14
    
    
    
    
    
    Th14: W 
    = ( 
    union the set of all (W 
    -level n)) 
    
    proof
    
      thus W
    c= ( 
    union the set of all (W 
    -level n)) 
    
      proof
    
        let x be
    object;
    
        assume x
    in W; 
    
        then
    
        reconsider w = x as
    Element of W; 
    
        
    
        
    
    A1: x 
    in (W 
    -level ( 
    len w)); 
    
        (W
    -level ( 
    len w)) 
    in the set of all (W 
    -level n); 
    
        hence thesis by
    A1,
    TARSKI:def 4;
    
      end;
    
      let x be
    object;
    
      assume x
    in ( 
    union the set of all (W 
    -level n)); 
    
      then
    
      consider X such that
    
      
    
    A2: x 
    in X & X 
    in the set of all (W 
    -level n) by 
    TARSKI:def 4;
    
      ex n st X
    = (W 
    -level n) by 
    A2;
    
      hence thesis by
    A2;
    
    end;
    
    theorem :: 
    
    TREES_2:15
    
    for W be
    finite  
    Tree holds W 
    = ( 
    union { (W 
    -level n) : n 
    <= ( 
    height W) }) 
    
    proof
    
      let W be
    finite  
    Tree;
    
      thus W
    c= ( 
    union { (W 
    -level n) : n 
    <= ( 
    height W) }) 
    
      proof
    
        let x be
    object;
    
        assume x
    in W; 
    
        then
    
        reconsider w = x as
    Element of W; 
    
        
    
        
    
    A1: ( 
    len w) 
    <= ( 
    height W) by 
    TREES_1:def 12;
    
        
    
        
    
    A2: w 
    in (W 
    -level ( 
    len w)); 
    
        (W
    -level ( 
    len w)) 
    in { (W 
    -level n) : n 
    <= ( 
    height W) } by 
    A1;
    
        hence thesis by
    A2,
    TARSKI:def 4;
    
      end;
    
      let x be
    object;
    
      assume x
    in ( 
    union { (W 
    -level n) : n 
    <= ( 
    height W) }); 
    
      then
    
      consider X such that
    
      
    
    A3: x 
    in X & X 
    in { (W 
    -level n) : n 
    <= ( 
    height W) } by 
    TARSKI:def 4;
    
      ex n st X
    = (W 
    -level n) & n 
    <= ( 
    height W) by 
    A3;
    
      hence thesis by
    A3;
    
    end;
    
    theorem :: 
    
    TREES_2:16
    
    for L be
    Level of W holds ex n st L 
    = (W 
    -level n) 
    
    proof
    
      let L be
    Level of W; 
    
      consider n be
    Nat such that 
    
      
    
    A1: L 
    = { w : ( 
    len w) 
    = n } by 
    Def4;
    
      reconsider n as
    Nat;
    
      take n;
    
      thus thesis by
    A1;
    
    end;
    
    scheme :: 
    
    TREES_2:sch2
    
    FraenkelCard { A() -> non
    empty  
    set , X() -> 
    set , F( 
    object) ->
    set } : 
    
(
    card { F(w) where w be 
    Element of A() : w 
    in X() }) 
    c= ( 
    card X()); 
    
      consider f such that
    
      
    
    A1: ( 
    dom f) 
    = X() & for x be 
    object st x 
    in X() holds (f 
    . x) 
    = F(x) from 
    FUNCT_1:sch 3;
    
      { F(w) where w be
    Element of A() : w 
    in X() } 
    c= ( 
    rng f) 
    
      proof
    
        let x be
    object;
    
        assume x
    in { F(w) where w be 
    Element of A() : w 
    in X() }; 
    
        then
    
        consider w be
    Element of A() such that 
    
        
    
    A2: x 
    = F(w) and 
    
        
    
    A3: w 
    in X(); 
    
        (f
    . w) 
    = x by 
    A1,
    A2,
    A3;
    
        hence thesis by
    A1,
    A3,
    FUNCT_1:def 3;
    
      end;
    
      hence thesis by
    A1,
    CARD_1: 12;
    
    end;
    
    scheme :: 
    
    TREES_2:sch3
    
    FraenkelFinCard { A() -> non
    empty  
    set , X,Y() -> 
    finite  
    set , F( 
    set) ->
    set } : 
    
(
    card Y()) 
    <= ( 
    card X()) 
    
      provided
    
      
    
    A1: Y() 
    = { F(w) where w be 
    Element of A() : w 
    in X() }; 
    
      (
    card { F(w) where w be 
    Element of A() : w 
    in X() }) 
    c= ( 
    card X()) from 
    FraenkelCard;
    
      then (
    Segm ( 
    card Y())) 
    c= ( 
    Segm ( 
    card X())) by 
    A1;
    
      hence thesis by
    NAT_1: 39;
    
    end;
    
    theorem :: 
    
    TREES_2:17
    
    
    
    
    
    Th17: W is 
    finite-order implies ex n st for w holds ex B be 
    finite  
    set st B 
    = ( 
    succ w) & ( 
    card B) 
    <= n 
    
    proof
    
      given n such that
    
      
    
    A1: for w holds not (w 
    ^  
    <*n*>)
    in W; 
    
      
    
      
    
    A2: ( 
    Seg n) is 
    finite;
    
      take n;
    
      let w;
    
      deffunc
    
    U(
    Real) = (w
    ^  
    <*($1
    - 1)*>); 
    
      
    
      
    
    A3: { 
    U(r) where r be
    Element of 
    REAL : r 
    in ( 
    Seg n) } is 
    finite from 
    FRAENKEL:sch 21(
    A2);
    
      
    
      
    
    A4: ( 
    succ w) 
    c= { (w 
    ^  
    <*(r
    - 1)*>) where r be 
    Element of 
    REAL : r 
    in ( 
    Seg n) } 
    
      proof
    
        let x be
    object;
    
        assume x
    in ( 
    succ w); 
    
        then
    
        consider k such that
    
        
    
    A5: x 
    = (w 
    ^  
    <*k*>) and
    
        
    
    A6: (w 
    ^  
    <*k*>)
    in W; 
    
         not (w
    ^  
    <*n*>)
    in W by 
    A1;
    
        then k
    < n by 
    A6,
    TREES_1:def 3;
    
        then
    
        
    
    A7: (k 
    + 1) 
    <= n by 
    NAT_1: 13;
    
        1
    <= (k 
    + 1) by 
    NAT_1: 11;
    
        then
    
        
    
    A8: (k 
    + 1) 
    in ( 
    Seg n) by 
    A7,
    FINSEQ_1: 1;
    
        
    
        
    
    A9: (k 
    + 1) 
    in  
    REAL by 
    XREAL_0:def 1;
    
        ((k
    + 1) 
    - 1) 
    = k; 
    
        hence thesis by
    A5,
    A8,
    A9;
    
      end;
    
      then
    
      reconsider B = (
    succ w) as 
    finite  
    set by 
    A3;
    
      take B;
    
      thus B
    = ( 
    succ w); 
    
      set C = {
    U(r) where r be
    Element of 
    REAL : r 
    in ( 
    Seg n) }; 
    
      C is
    finite from 
    FRAENKEL:sch 21(
    A2);
    
      then
    
      reconsider C as
    finite  
    set;
    
      
    
      
    
    A10: C 
    = { 
    U(r) where r be
    Element of 
    REAL : r 
    in ( 
    Seg n) }; 
    
      (
    card C) 
    <= ( 
    card ( 
    Seg n)) from 
    FraenkelFinCard(
    A10);
    
      then
    
      
    
    A11: ( 
    card C) 
    <= n by 
    FINSEQ_1: 57;
    
      (
    card B) 
    <= ( 
    card C) by 
    A4,
    NAT_1: 43;
    
      hence thesis by
    A11,
    XXREAL_0: 2;
    
    end;
    
    theorem :: 
    
    TREES_2:18
    
    
    
    
    
    Th18: W is 
    finite-order implies ( 
    succ w) is 
    finite
    
    proof
    
      assume W is
    finite-order;
    
      then
    
      consider n such that
    
      
    
    A1: for w holds ex B be 
    finite  
    set st B 
    = ( 
    succ w) & ( 
    card B) 
    <= n by 
    Th17;
    
      ex B be
    finite  
    set st B 
    = ( 
    succ w) & ( 
    card B) 
    <= n by 
    A1;
    
      hence thesis;
    
    end;
    
    registration
    
      let W be
    finite-order  
    Tree;
    
      let w be
    Element of W; 
    
      cluster ( 
    succ w) -> 
    finite;
    
      coherence by
    Th18;
    
    end
    
    theorem :: 
    
    TREES_2:19
    
    
    
    
    
    Th19: 
    {} is 
    Chain of W 
    
    proof
    
      reconsider S =
    {} as 
    Subset of W by 
    XBOOLE_1: 2;
    
      S is
    Chain of W 
    
      proof
    
        let p, q;
    
        thus thesis;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    TREES_2:20
    
    
    
    
    
    Th20: 
    {
    {} } is 
    Chain of W 
    
    proof
    
      
    {}  
    in W by 
    TREES_1: 22;
    
      then
    
      reconsider S =
    {
    {} } as 
    Subset of W by 
    ZFMISC_1: 31;
    
      S is
    Chain of W 
    
      proof
    
        let p, q;
    
        assume that
    
        
    
    A1: p 
    in S and 
    
        
    
    A2: q 
    in S; 
    
        p
    =  
    {} by 
    A1,
    TARSKI:def 1;
    
        hence thesis by
    A2,
    TARSKI:def 1;
    
      end;
    
      hence thesis;
    
    end;
    
    registration
    
      let W;
    
      cluster non 
    empty for 
    Chain of W; 
    
      existence
    
      proof
    
        
    {
    {} } is 
    Chain of W by 
    Th20;
    
        hence thesis;
    
      end;
    
    end
    
    definition
    
      let W;
    
      let IT be
    Chain of W; 
    
      :: 
    
    TREES_2:def7
    
      attr IT is
    
    Branch-like means 
    
      :
    
    Def7: (for p st p 
    in IT holds ( 
    ProperPrefixes p) 
    c= IT) & not ex p st p 
    in W & for q st q 
    in IT holds q 
    is_a_proper_prefix_of p; 
    
    end
    
    registration
    
      let W;
    
      cluster 
    Branch-like for 
    Chain of W; 
    
      existence
    
      proof
    
        defpred
    
    X[
    set] means $1 is
    Chain of W & for p st p 
    in $1 holds ( 
    ProperPrefixes p) 
    c= $1; 
    
        consider X such that
    
        
    
    A1: Y 
    in X iff Y 
    in ( 
    bool W) & 
    X[Y] from
    XFAMILY:sch 1;
    
        
    {} is 
    Chain of W & for p st p 
    in  
    {} holds ( 
    ProperPrefixes p) 
    c=  
    {} by 
    Th19;
    
        then
    
        
    
    A2: X 
    <>  
    {} by 
    A1;
    
        now
    
          let Z;
    
          assume that Z
    <>  
    {} and 
    
          
    
    A3: Z 
    c= X and 
    
          
    
    A4: Z is 
    c=-linear;
    
          (
    union Z) 
    c= W 
    
          proof
    
            let x be
    object;
    
            assume x
    in ( 
    union Z); 
    
            then
    
            consider Y such that
    
            
    
    A5: x 
    in Y and 
    
            
    
    A6: Y 
    in Z by 
    TARSKI:def 4;
    
            Y
    in ( 
    bool W) by 
    A1,
    A3,
    A6;
    
            hence thesis by
    A5;
    
          end;
    
          then
    
          reconsider Z9 = (
    union Z) as 
    Subset of W; 
    
          
    
          
    
    A7: Z9 is 
    Chain of W 
    
          proof
    
            let p, q;
    
            assume p
    in Z9; 
    
            then
    
            consider X1 such that
    
            
    
    A8: p 
    in X1 and 
    
            
    
    A9: X1 
    in Z by 
    TARSKI:def 4;
    
            assume q
    in Z9; 
    
            then
    
            consider X2 such that
    
            
    
    A10: q 
    in X2 and 
    
            
    
    A11: X2 
    in Z by 
    TARSKI:def 4;
    
            (X1,X2)
    are_c=-comparable by 
    A4,
    A9,
    A11;
    
            then
    
            
    
    A12: X1 
    c= X2 or X2 
    c= X1; 
    
            
    
            
    
    A13: X1 is 
    Chain of W by 
    A1,
    A3,
    A9;
    
            X2 is
    Chain of W by 
    A1,
    A3,
    A11;
    
            hence thesis by
    A8,
    A10,
    A12,
    A13,
    Def3;
    
          end;
    
          now
    
            let p;
    
            assume p
    in ( 
    union Z); 
    
            then
    
            consider X1 such that
    
            
    
    A14: p 
    in X1 & X1 
    in Z by 
    TARSKI:def 4;
    
            (
    ProperPrefixes p) 
    c= X1 & X1 
    c= ( 
    union Z) by 
    A1,
    A3,
    A14,
    ZFMISC_1: 74;
    
            hence (
    ProperPrefixes p) 
    c= ( 
    union Z); 
    
          end;
    
          hence (
    union Z) 
    in X by 
    A1,
    A7;
    
        end;
    
        then
    
        consider Y such that
    
        
    
    A15: Y 
    in X and 
    
        
    
    A16: Z 
    in X & Z 
    <> Y implies not Y 
    c= Z by 
    A2,
    ORDERS_1: 67;
    
        reconsider Y as
    Chain of W by 
    A1,
    A15;
    
        take Y;
    
        thus for p st p
    in Y holds ( 
    ProperPrefixes p) 
    c= Y by 
    A1,
    A15;
    
        given p such that
    
        
    
    A17: p 
    in W and 
    
        
    
    A18: for q st q 
    in Y holds q 
    is_a_proper_prefix_of p; 
    
        set Z = ((
    ProperPrefixes p) 
    \/  
    {p});
    
        (
    ProperPrefixes p) 
    c= W & 
    {p}
    c= W by 
    A17,
    TREES_1:def 3,
    ZFMISC_1: 31;
    
        then
    
        reconsider Z9 = Z as
    Subset of W by 
    XBOOLE_1: 8;
    
        
    
        
    
    A19: Z9 is 
    Chain of W 
    
        proof
    
          let q, r;
    
          assume that
    
          
    
    A20: q 
    in Z9 and 
    
          
    
    A21: r 
    in Z9; 
    
          
    
          
    
    A22: q 
    in ( 
    ProperPrefixes p) or q 
    in  
    {p} by
    A20,
    XBOOLE_0:def 3;
    
          
    
          
    
    A23: r 
    in ( 
    ProperPrefixes p) or r 
    in  
    {p} by
    A21,
    XBOOLE_0:def 3;
    
          
    
          
    
    A24: q 
    is_a_proper_prefix_of p or q 
    = p by 
    A22,
    TARSKI:def 1,
    TREES_1: 12;
    
          
    
          
    
    A25: r 
    is_a_proper_prefix_of p or r 
    = p by 
    A23,
    TARSKI:def 1,
    TREES_1: 12;
    
          
    
          
    
    A26: q 
    is_a_prefix_of p by 
    A24;
    
          r
    is_a_prefix_of p by 
    A25;
    
          hence thesis by
    A26,
    Th1;
    
        end;
    
        now
    
          let q;
    
          assume q
    in Z; 
    
          then q
    in ( 
    ProperPrefixes p) or q 
    in  
    {p} by
    XBOOLE_0:def 3;
    
          then q
    is_a_proper_prefix_of p or q 
    = p by 
    TARSKI:def 1,
    TREES_1: 12;
    
          then q
    is_a_prefix_of p; 
    
          then
    
          
    
    A27: ( 
    ProperPrefixes q) 
    c= ( 
    ProperPrefixes p) by 
    TREES_1: 17;
    
          (
    ProperPrefixes p) 
    c= Z by 
    XBOOLE_1: 7;
    
          hence (
    ProperPrefixes q) 
    c= Z by 
    A27;
    
        end;
    
        then
    
        
    
    A28: Z 
    in X by 
    A1,
    A19;
    
        
    
        
    
    A29: p 
    in  
    {p} by
    TARSKI:def 1;
    
        
    
        
    
    A30: not p 
    in Y by 
    A18;
    
        
    
        
    
    A31: p 
    in Z by 
    A29,
    XBOOLE_0:def 3;
    
        Y
    c= Z 
    
        proof
    
          let x be
    object;
    
          assume
    
          
    
    A32: x 
    in Y; 
    
          then
    
          reconsider t = x as
    Element of W; 
    
          t
    is_a_proper_prefix_of p by 
    A18,
    A32;
    
          then t
    in ( 
    ProperPrefixes p) by 
    TREES_1: 12;
    
          hence thesis by
    XBOOLE_0:def 3;
    
        end;
    
        hence thesis by
    A16,
    A28,
    A30,
    A31;
    
      end;
    
    end
    
    definition
    
      let W;
    
      mode
    
    Branch of W is 
    Branch-like  
    Chain of W; 
    
    end
    
    registration
    
      let W;
    
      cluster 
    Branch-like -> non 
    empty for 
    Chain of W; 
    
      coherence
    
      proof
    
        let B be
    Chain of W such that 
    
        
    
    A1: B is 
    Branch-like
    empty;
    
        set t = the
    Element of W; 
    
        for q st q
    in B holds q 
    is_a_proper_prefix_of t by 
    A1;
    
        hence contradiction by
    A1;
    
      end;
    
    end
    
    reserve C for
    Chain of W, 
    
B for
    Branch of W; 
    
    theorem :: 
    
    TREES_2:21
    
    
    
    
    
    Th21: v1 
    in C & v2 
    in C implies v1 
    in ( 
    ProperPrefixes v2) or v2 
    is_a_prefix_of v1 
    
    proof
    
      assume
    
      
    
    A1: v1 
    in C & v2 
    in C; 
    
      then
    
      reconsider p = v1, q = v2 as
    Element of W; 
    
      assume
    
      
    
    A2: not v1 
    in ( 
    ProperPrefixes v2); 
    
      
    
      
    
    A3: (p,q) 
    are_c=-comparable by 
    A1,
    Def3;
    
      
    
      
    
    A4: not v1 
    is_a_proper_prefix_of v2 by 
    A2,
    TREES_1: 12;
    
      v1
    is_a_prefix_of v2 or v2 
    is_a_prefix_of v1 by 
    A3;
    
      hence thesis by
    A4;
    
    end;
    
    theorem :: 
    
    TREES_2:22
    
    
    
    
    
    Th22: v1 
    in C & v2 
    in C & v 
    is_a_prefix_of v2 implies v1 
    in ( 
    ProperPrefixes v) or v 
    is_a_prefix_of v1 
    
    proof
    
      assume that
    
      
    
    A1: v1 
    in C & v2 
    in C and 
    
      
    
    A2: v 
    is_a_prefix_of v2; 
    
      v1
    in ( 
    ProperPrefixes v2) or v2 
    is_a_prefix_of v1 by 
    A1,
    Th21;
    
      then v1
    is_a_proper_prefix_of v2 or v 
    is_a_prefix_of v1 by 
    A2,
    TREES_1: 12;
    
      then (v,v1)
    are_c=-comparable by 
    A2,
    Th2;
    
      then v
    is_a_proper_prefix_of v1 or v 
    = v1 or v1 
    is_a_proper_prefix_of v; 
    
      hence thesis by
    TREES_1: 12;
    
    end;
    
    registration
    
      let W;
    
      cluster 
    finite for 
    Chain of W; 
    
      existence
    
      proof
    
        reconsider C =
    {} as 
    Chain of W by 
    Th19;
    
        take C;
    
        thus thesis;
    
      end;
    
    end
    
    theorem :: 
    
    TREES_2:23
    
    
    
    
    
    Th23: for C be 
    finite  
    Chain of W st ( 
    card C) 
    > n holds ex p st p 
    in C & ( 
    len p) 
    >= n 
    
    proof
    
      let C be
    finite  
    Chain of W; 
    
      defpred
    
    X[
    Nat] means $1
    < ( 
    card C) implies ex p st p 
    in C & ( 
    len p) 
    >= $1; 
    
      
    
      
    
    A1: 
    X[
    0 ] 
    
      proof
    
        assume
    
        
    
    A2: 
    0  
    < ( 
    card C); 
    
        then
    
        
    
    A3: C 
    <>  
    {} ; 
    
        set x = the
    Element of C; 
    
        reconsider x as
    Element of W by 
    A2,
    CARD_1: 27,
    TARSKI:def 3;
    
        reconsider x as
    FinSequence of 
    NAT ; 
    
        take x;
    
        thus thesis by
    A3;
    
      end;
    
      
    
      
    
    A4: 
    X[k] implies
    X[(k
    + 1)] 
    
      proof
    
        assume that
    
        
    
    A5: k 
    < ( 
    card C) implies ex p st p 
    in C & ( 
    len p) 
    >= k and 
    
        
    
    A6: (k 
    + 1) 
    < ( 
    card C); 
    
        
    
        
    
    A7: k 
    <= (k 
    + 1) by 
    NAT_1: 11;
    
        then
    
        
    
    A8: k 
    < ( 
    card C) by 
    A6,
    XXREAL_0: 2;
    
        consider p such that
    
        
    
    A9: p 
    in C and 
    
        
    
    A10: ( 
    len p) 
    >= k by 
    A5,
    A6,
    A7,
    XXREAL_0: 2;
    
        reconsider q = (p
    | ( 
    Seg k)) as 
    FinSequence by 
    FINSEQ_1: 15;
    
        
    
        
    
    A11: ( 
    len q) 
    = k by 
    A10,
    FINSEQ_1: 17;
    
        then
    
        
    
    A12: ( 
    card ( 
    ProperPrefixes q)) 
    = k by 
    TREES_1: 35;
    
        then (
    card ( 
    ProperPrefixes q)) 
    in ( 
    Segm ( 
    card C)) by 
    A8,
    NAT_1: 44;
    
        then
    
        
    
    A13: (C 
    \ ( 
    ProperPrefixes q)) 
    <>  
    {} by 
    CARD_1: 68;
    
        set x = the
    Element of (C 
    \ ( 
    ProperPrefixes q)); 
    
        
    
        
    
    A14: x 
    in C by 
    A13,
    XBOOLE_0:def 5;
    
        
    
        
    
    A15: not x 
    in ( 
    ProperPrefixes q) by 
    A13,
    XBOOLE_0:def 5;
    
        reconsider x as
    Element of W by 
    A14;
    
        (
    card (( 
    ProperPrefixes q) 
    \/  
    {x}))
    = (k 
    + 1) by 
    A12,
    A15,
    CARD_2: 41;
    
        then (
    card (( 
    ProperPrefixes q) 
    \/  
    {x}))
    in ( 
    Segm ( 
    card C)) by 
    A6,
    NAT_1: 44;
    
        then
    
        
    
    A16: (C 
    \ (( 
    ProperPrefixes q) 
    \/  
    {x}))
    <>  
    {} by 
    CARD_1: 68;
    
        set y = the
    Element of (C 
    \ (( 
    ProperPrefixes q) 
    \/  
    {x}));
    
        
    
        
    
    A17: y 
    in C by 
    A16,
    XBOOLE_0:def 5;
    
        
    
        
    
    A18: not y 
    in (( 
    ProperPrefixes q) 
    \/  
    {x}) by
    A16,
    XBOOLE_0:def 5;
    
        reconsider y as
    Element of W by 
    A17;
    
        
    
        
    
    A19: not y 
    in ( 
    ProperPrefixes q) by 
    A18,
    XBOOLE_0:def 3;
    
        
    
        
    
    A20: not y 
    in  
    {x} by
    A18,
    XBOOLE_0:def 3;
    
        
    
        
    
    A21: q 
    is_a_prefix_of p; 
    
        then
    
        
    
    A22: q 
    is_a_prefix_of x by 
    A9,
    A14,
    A15,
    Th22;
    
        
    
        
    
    A23: q 
    is_a_prefix_of y by 
    A9,
    A17,
    A19,
    A21,
    Th22;
    
        
    
        
    
    A24: x 
    <> y by 
    A20,
    TARSKI:def 1;
    
        q
    is_a_proper_prefix_of y or q 
    is_a_proper_prefix_of x by 
    A22,
    A23,
    A24;
    
        then k
    < ( 
    len x) or k 
    < ( 
    len y) by 
    A11,
    TREES_1: 6;
    
        then (k
    + 1) 
    <= ( 
    len x) or (k 
    + 1) 
    <= ( 
    len y) by 
    NAT_1: 13;
    
        hence thesis by
    A14,
    A17;
    
      end;
    
      
    X[k] from
    NAT_1:sch 2(
    A1,
    A4);
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    TREES_2:24
    
    
    
    
    
    Th24: for C holds { w : ex p st p 
    in C & w 
    is_a_prefix_of p } is 
    Chain of W 
    
    proof
    
      let C;
    
      { w : ex p st p
    in C & w 
    is_a_prefix_of p } 
    c= W 
    
      proof
    
        let x be
    object;
    
        assume x
    in { w : ex p st p 
    in C & w 
    is_a_prefix_of p }; 
    
        then ex w st x
    = w & ex p st p 
    in C & w 
    is_a_prefix_of p; 
    
        hence thesis;
    
      end;
    
      then
    
      reconsider Z = { w : ex p st p
    in C & w 
    is_a_prefix_of p } as 
    Subset of W; 
    
      Z is
    Chain of W 
    
      proof
    
        let p, q;
    
        assume p
    in Z; 
    
        then ex w st p
    = w & ex p st p 
    in C & w 
    is_a_prefix_of p; 
    
        then
    
        consider r1 such that
    
        
    
    A1: r1 
    in C and 
    
        
    
    A2: p 
    is_a_prefix_of r1; 
    
        assume q
    in Z; 
    
        then ex w9 st q
    = w9 & ex p st p 
    in C & w9 
    is_a_prefix_of p; 
    
        then
    
        consider r2 such that
    
        
    
    A3: r2 
    in C and 
    
        
    
    A4: q 
    is_a_prefix_of r2; 
    
        (r1,r2)
    are_c=-comparable by 
    A1,
    A3,
    Def3;
    
        then r1
    is_a_prefix_of r2 or r2 
    is_a_prefix_of r1; 
    
        then p
    is_a_prefix_of r2 or q 
    is_a_prefix_of r1 by 
    A2,
    A4;
    
        hence thesis by
    A2,
    A4,
    Th1;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    TREES_2:25
    
    
    
    
    
    Th25: p 
    is_a_prefix_of q & q 
    in B implies p 
    in B 
    
    proof
    
      assume p
    is_a_prefix_of q; 
    
      then p
    is_a_proper_prefix_of q or p 
    = q; 
    
      then
    
      
    
    A1: p 
    in ( 
    ProperPrefixes q) or p 
    = q by 
    TREES_1:def 2;
    
      assume
    
      
    
    A2: q 
    in B; 
    
      then (
    ProperPrefixes q) 
    c= B by 
    Def7;
    
      hence thesis by
    A1,
    A2;
    
    end;
    
    theorem :: 
    
    TREES_2:26
    
    
    
    
    
    Th26: 
    {}  
    in B 
    
    proof
    
      set x = the
    Element of B; 
    
      reconsider x as
    Element of W; 
    
      (
    <*>  
    NAT ) 
    is_a_prefix_of x; 
    
      hence thesis by
    Th25;
    
    end;
    
    theorem :: 
    
    TREES_2:27
    
    
    
    
    
    Th27: p 
    in C & q 
    in C & ( 
    len p) 
    <= ( 
    len q) implies p 
    is_a_prefix_of q 
    
    proof
    
      assume p
    in C & q 
    in C & ( 
    len p) 
    <= ( 
    len q) & not p 
    is_a_prefix_of q; 
    
      then q
    in ( 
    ProperPrefixes p) & not q 
    is_a_proper_prefix_of p by 
    Th21,
    TREES_1: 6;
    
      hence contradiction by
    TREES_1: 12;
    
    end;
    
    theorem :: 
    
    TREES_2:28
    
    
    
    
    
    Th28: ex B st C 
    c= B 
    
    proof
    
      defpred
    
    X[
    set] means $1 is
    Chain of W & C 
    c= $1 & for p st p 
    in $1 holds ( 
    ProperPrefixes p) 
    c= $1; 
    
      consider X such that
    
      
    
    A1: Y 
    in X iff Y 
    in ( 
    bool W) & 
    X[Y] from
    XFAMILY:sch 1;
    
      set Z = { w : ex p st p
    in C & w 
    is_a_prefix_of p }; 
    
      
    
      
    
    A2: Z is 
    Chain of W by 
    Th24;
    
      
    
      
    
    A3: C 
    c= Z 
    
      proof
    
        let x be
    object;
    
        assume
    
        
    
    A4: x 
    in C; 
    
        then
    
        reconsider w = x as
    Element of W; 
    
        w
    is_a_prefix_of w; 
    
        hence thesis by
    A4;
    
      end;
    
      now
    
        let p;
    
        assume p
    in Z; 
    
        then
    
        
    
    A5: ex w st p 
    = w & ex p st p 
    in C & w 
    is_a_prefix_of p; 
    
        then
    
        consider q such that
    
        
    
    A6: q 
    in C and 
    
        
    
    A7: p 
    is_a_prefix_of q; 
    
        thus (
    ProperPrefixes p) 
    c= Z 
    
        proof
    
          let x be
    object;
    
          assume x
    in ( 
    ProperPrefixes p); 
    
          then
    
          consider r be
    FinSequence such that 
    
          
    
    A8: x 
    = r and 
    
          
    
    A9: r 
    is_a_proper_prefix_of p by 
    TREES_1:def 2;
    
          r
    is_a_prefix_of p by 
    A9;
    
          then r
    is_a_prefix_of q & r 
    in W by 
    A5,
    A7,
    TREES_1: 20;
    
          hence thesis by
    A6,
    A8;
    
        end;
    
      end;
    
      then
    
      
    
    A10: X 
    <>  
    {} by 
    A1,
    A2,
    A3;
    
      now
    
        let Z;
    
        assume that
    
        
    
    A11: Z 
    <>  
    {} and 
    
        
    
    A12: Z 
    c= X and 
    
        
    
    A13: Z is 
    c=-linear;
    
        (
    union Z) 
    c= W 
    
        proof
    
          let x be
    object;
    
          assume x
    in ( 
    union Z); 
    
          then
    
          consider Y such that
    
          
    
    A14: x 
    in Y and 
    
          
    
    A15: Y 
    in Z by 
    TARSKI:def 4;
    
          Y
    in ( 
    bool W) by 
    A1,
    A12,
    A15;
    
          hence thesis by
    A14;
    
        end;
    
        then
    
        reconsider Z9 = (
    union Z) as 
    Subset of W; 
    
        
    
        
    
    A16: Z9 is 
    Chain of W 
    
        proof
    
          let p, q;
    
          assume p
    in Z9; 
    
          then
    
          consider X1 such that
    
          
    
    A17: p 
    in X1 and 
    
          
    
    A18: X1 
    in Z by 
    TARSKI:def 4;
    
          assume q
    in Z9; 
    
          then
    
          consider X2 such that
    
          
    
    A19: q 
    in X2 and 
    
          
    
    A20: X2 
    in Z by 
    TARSKI:def 4;
    
          (X1,X2)
    are_c=-comparable by 
    A13,
    A18,
    A20;
    
          then
    
          
    
    A21: X1 
    c= X2 or X2 
    c= X1; 
    
          
    
          
    
    A22: X1 is 
    Chain of W by 
    A1,
    A12,
    A18;
    
          X2 is
    Chain of W by 
    A1,
    A12,
    A20;
    
          hence thesis by
    A17,
    A19,
    A21,
    A22,
    Def3;
    
        end;
    
        
    
    A23: 
    
        now
    
          let p;
    
          assume p
    in ( 
    union Z); 
    
          then
    
          consider X1 such that
    
          
    
    A24: p 
    in X1 & X1 
    in Z by 
    TARSKI:def 4;
    
          (
    ProperPrefixes p) 
    c= X1 & X1 
    c= ( 
    union Z) by 
    A1,
    A12,
    A24,
    ZFMISC_1: 74;
    
          hence (
    ProperPrefixes p) 
    c= ( 
    union Z); 
    
        end;
    
        set x = the
    Element of Z; 
    
        x
    in X by 
    A11,
    A12;
    
        then
    
        
    
    A25: C 
    c= x by 
    A1;
    
        x
    c= ( 
    union Z) by 
    A11,
    ZFMISC_1: 74;
    
        then C
    c= ( 
    union Z) by 
    A25;
    
        hence (
    union Z) 
    in X by 
    A1,
    A16,
    A23;
    
      end;
    
      then
    
      consider Y such that
    
      
    
    A26: Y 
    in X and 
    
      
    
    A27: for Z st Z 
    in X & Z 
    <> Y holds not Y 
    c= Z by 
    A10,
    ORDERS_1: 67;
    
      reconsider Y as
    Chain of W by 
    A1,
    A26;
    
      now
    
        thus for p st p
    in Y holds ( 
    ProperPrefixes p) 
    c= Y by 
    A1,
    A26;
    
        given p such that
    
        
    
    A28: p 
    in W and 
    
        
    
    A29: for q st q 
    in Y holds q 
    is_a_proper_prefix_of p; 
    
        set Z = ((
    ProperPrefixes p) 
    \/  
    {p});
    
        (
    ProperPrefixes p) 
    c= W & 
    {p}
    c= W by 
    A28,
    TREES_1:def 3,
    ZFMISC_1: 31;
    
        then
    
        reconsider Z9 = Z as
    Subset of W by 
    XBOOLE_1: 8;
    
        
    
        
    
    A30: Z9 is 
    Chain of W 
    
        proof
    
          let q, r;
    
          assume that
    
          
    
    A31: q 
    in Z9 and 
    
          
    
    A32: r 
    in Z9; 
    
          
    
          
    
    A33: q 
    in ( 
    ProperPrefixes p) or q 
    in  
    {p} by
    A31,
    XBOOLE_0:def 3;
    
          
    
          
    
    A34: r 
    in ( 
    ProperPrefixes p) or r 
    in  
    {p} by
    A32,
    XBOOLE_0:def 3;
    
          
    
          
    
    A35: q 
    is_a_proper_prefix_of p or q 
    = p by 
    A33,
    TARSKI:def 1,
    TREES_1: 12;
    
          
    
          
    
    A36: r 
    is_a_proper_prefix_of p or r 
    = p by 
    A34,
    TARSKI:def 1,
    TREES_1: 12;
    
          
    
          
    
    A37: q 
    is_a_prefix_of p by 
    A35;
    
          r
    is_a_prefix_of p by 
    A36;
    
          hence thesis by
    A37,
    Th1;
    
        end;
    
        
    
    A38: 
    
        now
    
          let q;
    
          assume q
    in Z; 
    
          then q
    in ( 
    ProperPrefixes p) or q 
    in  
    {p} by
    XBOOLE_0:def 3;
    
          then q
    is_a_proper_prefix_of p or q 
    = p by 
    TARSKI:def 1,
    TREES_1: 12;
    
          then q
    is_a_prefix_of p; 
    
          then
    
          
    
    A39: ( 
    ProperPrefixes q) 
    c= ( 
    ProperPrefixes p) by 
    TREES_1: 17;
    
          (
    ProperPrefixes p) 
    c= Z by 
    XBOOLE_1: 7;
    
          hence (
    ProperPrefixes q) 
    c= Z by 
    A39;
    
        end;
    
        
    
        
    
    A40: Y 
    c= Z 
    
        proof
    
          let x be
    object;
    
          assume
    
          
    
    A41: x 
    in Y; 
    
          then
    
          reconsider t = x as
    Element of W; 
    
          t
    is_a_proper_prefix_of p by 
    A29,
    A41;
    
          then t
    in ( 
    ProperPrefixes p) by 
    TREES_1: 12;
    
          hence thesis by
    XBOOLE_0:def 3;
    
        end;
    
        C
    c= Y by 
    A1,
    A26;
    
        then C
    c= Z by 
    A40;
    
        then
    
        
    
    A42: Z 
    in X by 
    A1,
    A30,
    A38;
    
        
    
        
    
    A43: p 
    in  
    {p} by
    TARSKI:def 1;
    
        
    
        
    
    A44: not p 
    in Y by 
    A29;
    
        p
    in Z by 
    A43,
    XBOOLE_0:def 3;
    
        hence contradiction by
    A27,
    A40,
    A42,
    A44;
    
      end;
    
      then
    
      reconsider Y as
    Branch of W by 
    Def7;
    
      take Y;
    
      thus thesis by
    A1,
    A26;
    
    end;
    
    scheme :: 
    
    TREES_2:sch4
    
    FuncExOfMinNat { P[
    object, 
    Nat], X() ->
    set } : 
    
ex f st ( 
    dom f) 
    = X() & for x be 
    object st x 
    in X() holds ex n st (f 
    . x) 
    = n & P[x, n] & for m st P[x, m] holds n 
    <= m 
    
      provided
    
      
    
    A1: for x be 
    object st x 
    in X() holds ex n st P[x, n]; 
    
      defpred
    
    Q[
    object, 
    object] means ex n st $2
    = n & P[$1, n] & for m st P[$1, m] holds n 
    <= m; 
    
      
    
      
    
    A2: for x be 
    object st x 
    in X() holds ex y be 
    object st 
    Q[x, y]
    
      proof
    
        let x be
    object;
    
        defpred
    
    X[
    Nat] means P[x, $1];
    
        assume x
    in X(); 
    
        then ex n st
    X[n] by
    A1;
    
        then
    
        
    
    A3: ex n be 
    Nat st 
    X[n];
    
        consider n be
    Nat such that 
    
        
    
    A4: 
    X[n] & for m be
    Nat st 
    X[m] holds n
    <= m from 
    NAT_1:sch 5(
    A3);
    
        take n;
    
        thus thesis by
    A4;
    
      end;
    
      thus ex f st (
    dom f) 
    = X() & for x be 
    object st x 
    in X() holds 
    Q[x, (f
    . x)] from 
    CLASSES1:sch 1(
    A2);
    
    end;
    
    
    
    
    
    Lm1: X is 
    finite implies ex n st for k st k 
    in X holds k 
    <= n 
    
    proof
    
      assume
    
      
    
    A1: X is 
    finite;
    
      defpred
    
    P[
    object, 
    object] means ex k1,k2 be
    Nat st $1 
    = k1 & $2 
    = k2 & k1 
    >= k2; 
    
      now
    
        per cases ;
    
          suppose
    
          
    
    A2: (X 
    /\  
    NAT ) 
    =  
    {} ; 
    
          thus thesis
    
          proof
    
            take
    0 ; 
    
            let k;
    
            
    
            
    
    A3: k 
    in  
    NAT by 
    ORDINAL1:def 12;
    
            assume k
    in X; 
    
            hence thesis by
    A2,
    XBOOLE_0:def 4,
    A3;
    
          end;
    
        end;
    
          suppose
    
          
    
    A4: (X 
    /\  
    NAT ) 
    <>  
    {} ; 
    
          reconsider XN = (X
    /\  
    NAT ) as 
    finite  
    set by 
    A1;
    
          
    
          
    
    A5: XN 
    <>  
    {} by 
    A4;
    
          
    
          
    
    A6: for x,y be 
    object holds 
    P[x, y] &
    P[y, x] implies x
    = y by 
    XXREAL_0: 1;
    
          
    
          
    
    A7: for x,y,z be 
    object st 
    P[x, y] &
    P[y, z] holds
    P[x, z] by
    XXREAL_0: 2;
    
          consider x be
    object such that 
    
          
    
    A8: x 
    in XN & for y be 
    object st y 
    in XN & y 
    <> x holds not 
    P[y, x] from
    CARD_2:sch 1(
    A5,
    A6,
    A7);
    
          x
    in  
    NAT by 
    A8,
    XBOOLE_0:def 4;
    
          then
    
          reconsider n = x as
    Nat;
    
          take n;
    
          let k;
    
          
    
          
    
    A9: k 
    in  
    NAT by 
    ORDINAL1:def 12;
    
          assume k
    in X; 
    
          then k
    in (X 
    /\  
    NAT ) by 
    XBOOLE_0:def 4,
    A9;
    
          hence k
    <= n by 
    A8;
    
        end;
    
      end;
    
      hence thesis;
    
    end;
    
    scheme :: 
    
    TREES_2:sch5
    
    InfiniteChain { X() ->
    set , a() -> 
    object , Q[ 
    object], P[
    object, 
    object] } :
    
ex f st ( 
    dom f) 
    =  
    NAT & ( 
    rng f) 
    c= X() & (f 
    .  
    0 ) 
    = a() & for k holds P[(f 
    . k), (f 
    . (k 
    + 1))] & Q[(f 
    . k)] 
    
      provided
    
      
    
    A1: a() 
    in X() & Q[a()] 
    
       and 
    
      
    
    A2: for x be 
    object st x 
    in X() & Q[x] holds ex y be 
    object st y 
    in X() & P[x, y] & Q[y]; 
    
      consider Y such that
    
      
    
    A3: for x be 
    object holds x 
    in Y iff x 
    in X() & Q[x] from 
    XBOOLE_0:sch 1;
    
      defpred
    
    Q[
    object, 
    object] means $2
    in Y & P[$1, $2]; 
    
      
    
      
    
    A4: for x be 
    object st x 
    in Y holds ex y be 
    object st 
    Q[x, y]
    
      proof
    
        let x be
    object;
    
        assume x
    in Y; 
    
        then x
    in X() & Q[x] by 
    A3;
    
        then
    
        consider y be
    object such that 
    
        
    
    A5: y 
    in X() & P[x, y] & Q[y] by 
    A2;
    
        take y;
    
        thus thesis by
    A3,
    A5;
    
      end;
    
      consider g be
    Function such that 
    
      
    
    A6: ( 
    dom g) 
    = Y & for x be 
    object st x 
    in Y holds 
    Q[x, (g
    . x)] from 
    CLASSES1:sch 1(
    A4);
    
      deffunc
    
    U(
    set, 
    set) = (g
    . $2); 
    
      consider f such that
    
      
    
    A7: ( 
    dom f) 
    =  
    NAT & (f 
    .  
    0 ) 
    = a() & for n be 
    Nat holds (f 
    . (n 
    + 1)) 
    =  
    U(n,.) from
    NAT_1:sch 11;
    
      take f;
    
      thus (
    dom f) 
    =  
    NAT by 
    A7;
    
      defpred
    
    X[
    Nat] means (f
    . $1) 
    in Y; 
    
      
    
      
    
    A8: 
    X[
    0 ] by 
    A1,
    A3,
    A7;
    
      
    
      
    
    A9: 
    X[k] implies
    X[(k
    + 1)] 
    
      proof
    
        assume (f
    . k) 
    in Y; 
    
        then (g
    . (f 
    . k)) 
    in Y by 
    A6;
    
        hence thesis by
    A7;
    
      end;
    
      
    
      
    
    A10: 
    X[k] from
    NAT_1:sch 2(
    A8,
    A9);
    
      thus (
    rng f) 
    c= X() 
    
      proof
    
        let x be
    object;
    
        assume x
    in ( 
    rng f); 
    
        then
    
        consider y be
    object such that 
    
        
    
    A11: y 
    in ( 
    dom f) and 
    
        
    
    A12: x 
    = (f 
    . y) by 
    FUNCT_1:def 3;
    
        reconsider y as
    Nat by 
    A7,
    A11;
    
        (f
    . y) 
    in Y by 
    A10;
    
        hence thesis by
    A3,
    A12;
    
      end;
    
      thus (f
    .  
    0 ) 
    = a() by 
    A7;
    
      let k;
    
      
    
      
    
    A13: (f 
    . k) 
    in Y by 
    A10;
    
      then P[(f
    . k), (g 
    . (f 
    . k))] by 
    A6;
    
      hence thesis by
    A3,
    A7,
    A13;
    
    end;
    
    theorem :: 
    
    TREES_2:29
    
    
    
    
    
    Th29: for T be 
    Tree st (for n holds ex C be 
    finite  
    Chain of T st ( 
    card C) 
    = n) & for t be 
    Element of T holds ( 
    succ t) is 
    finite holds ex B be 
    Chain of T st not B is 
    finite
    
    proof
    
      let T be
    Tree;
    
      assume that
    
      
    
    A1: for n holds ex X be 
    finite  
    Chain of T st ( 
    card X) 
    = n and 
    
      
    
    A2: for t be 
    Element of T holds ( 
    succ t) is 
    finite;
    
      defpred
    
    P[
    FinSequence] means for n holds ex B be
    Branch of T st $1 
    in B & ex p st p 
    in B & ( 
    len p) 
    >= (( 
    len $1) 
    + n); 
    
      
    
      
    
    A3: for x be 
    Element of T st 
    P[x] holds ex n st (x
    ^  
    <*n*>)
    in T & 
    P[(x
    ^  
    <*n*>)]
    
      proof
    
        let x be
    Element of T such that 
    
        
    
    A4: 
    P[x] and
    
        
    
    A5: for n st (x 
    ^  
    <*n*>)
    in T holds not 
    P[(x
    ^  
    <*n*>)];
    
        
    
        
    
    A6: ( 
    succ x) is 
    finite by 
    A2;
    
        defpred
    
    X[
    object, 
    Nat] means for B be
    Branch of T, p, q st p 
    = $1 & $1 
    in B & q 
    in B holds (( 
    len p) 
    + $2) 
    > ( 
    len q); 
    
        
    
        
    
    A7: for y be 
    object st y 
    in ( 
    succ x) holds ex n st 
    X[y, n]
    
        proof
    
          let y be
    object;
    
          assume y
    in ( 
    succ x); 
    
          then
    
          consider k such that
    
          
    
    A8: y 
    = (x 
    ^  
    <*k*>) and
    
          
    
    A9: (x 
    ^  
    <*k*>)
    in T; 
    
          consider n such that
    
          
    
    A10: for B be 
    Branch of T st (x 
    ^  
    <*k*>)
    in B holds for p st p 
    in B holds ( 
    len p) 
    < (( 
    len (x 
    ^  
    <*k*>))
    + n) by 
    A5,
    A9;
    
          take n;
    
          thus thesis by
    A8,
    A10;
    
        end;
    
        consider f such that
    
        
    
    A11: ( 
    dom f) 
    = ( 
    succ x) and 
    
        
    
    A12: for y be 
    object st y 
    in ( 
    succ x) holds ex n st (f 
    . y) 
    = n & 
    X[y, n] & for m st
    X[y, m] holds n
    <= m from 
    FuncExOfMinNat(
    A7);
    
        consider k such that
    
        
    
    A13: for m st m 
    in ( 
    rng f) holds m 
    <= k by 
    A6,
    A11,
    Lm1,
    FINSET_1: 8;
    
        consider B be
    Branch of T such that 
    
        
    
    A14: x 
    in B and 
    
        
    
    A15: ex p st p 
    in B & ( 
    len p) 
    >= (( 
    len x) 
    + (k 
    + 1)) by 
    A4;
    
        consider p such that
    
        
    
    A16: p 
    in B and 
    
        
    
    A17: ( 
    len p) 
    >= (( 
    len x) 
    + (k 
    + 1)) by 
    A15;
    
        reconsider r = (p
    | ( 
    Seg (( 
    len x) 
    + 1))) as 
    FinSequence of 
    NAT by 
    FINSEQ_1: 18;
    
        ((
    len x) 
    + 1) 
    <= ((( 
    len x) 
    + 1) 
    + k) by 
    NAT_1: 11;
    
        then
    
        
    
    A18: ( 
    len p) 
    >= (( 
    len x) 
    + 1) by 
    A17,
    XXREAL_0: 2;
    
        
    
        
    
    A19: r 
    is_a_prefix_of p; 
    
        
    
        
    
    A20: ( 
    len r) 
    = (( 
    len x) 
    + 1) by 
    A18,
    FINSEQ_1: 17;
    
        
    
        
    
    A21: r 
    in B by 
    A16,
    A19,
    Th25;
    
        then x
    is_a_prefix_of r by 
    A14,
    A20,
    Th27,
    NAT_1: 11;
    
        then
    
        consider j be
    FinSequence such that 
    
        
    
    A22: r 
    = (x 
    ^ j) by 
    TREES_1: 1;
    
        ((
    len x) 
    + ( 
    len j)) 
    = ( 
    len r) by 
    A22,
    FINSEQ_1: 22;
    
        then
    
        
    
    A23: j 
    =  
    <*(j
    . 1)*> by 
    A20,
    FINSEQ_1: 40;
    
        
    
        
    
    A24: ( 
    dom r) 
    = ( 
    Seg ( 
    len r)) & 1 
    <= (1 
    + ( 
    len x)) by 
    FINSEQ_1:def 3,
    NAT_1: 11;
    
        ((
    len x) 
    + 1) 
    <= ( 
    len r) by 
    A18,
    FINSEQ_1: 17;
    
        then ((x
    ^  
    <*(j
    . 1)*>) 
    . (( 
    len x) 
    + 1)) 
    = (j 
    . 1) & (( 
    len x) 
    + 1) 
    in ( 
    dom r) by 
    A24,
    FINSEQ_1: 1,
    FINSEQ_1: 42;
    
        then (j
    . 1) 
    in ( 
    rng r) by 
    A22,
    A23,
    FUNCT_1:def 3;
    
        then
    
        reconsider l = (j
    . 1) as 
    Nat;
    
        
    
        
    
    A25: (x 
    ^  
    <*l*>)
    in ( 
    succ x) by 
    A21,
    A22,
    A23;
    
        then
    
        consider n such that
    
        
    
    A26: (f 
    . (x 
    ^  
    <*l*>))
    = n and 
    
        
    
    A27: for B be 
    Branch of T, p, q st p 
    = (x 
    ^  
    <*l*>) & (x
    ^  
    <*l*>)
    in B & q 
    in B holds (( 
    len p) 
    + n) 
    > ( 
    len q) and for m st for B be 
    Branch of T, p, q st p 
    = (x 
    ^  
    <*l*>) & (x
    ^  
    <*l*>)
    in B & q 
    in B holds (( 
    len p) 
    + m) 
    > ( 
    len q) holds n 
    <= m by 
    A12;
    
        n
    in ( 
    rng f) by 
    A11,
    A25,
    A26,
    FUNCT_1:def 3;
    
        then n
    <= k by 
    A13;
    
        then ((
    len r) 
    + n) 
    <= ((( 
    len x) 
    + 1) 
    + k) by 
    A20,
    XREAL_1: 7;
    
        hence contradiction by
    A16,
    A17,
    A21,
    A22,
    A23,
    A27,
    XXREAL_0: 2;
    
      end;
    
      reconsider e =
    {} as 
    Element of T by 
    TREES_1: 22;
    
      
    
      
    
    A28: 
    P[e]
    
      proof
    
        given n such that
    
        
    
    A29: for B be 
    Branch of T st e 
    in B holds for p st p 
    in B holds ( 
    len p) 
    < (( 
    len e) 
    + n); 
    
        consider C be
    finite  
    Chain of T such that 
    
        
    
    A30: ( 
    card C) 
    = (n 
    + 1) by 
    A1;
    
        consider B be
    Branch of T such that 
    
        
    
    A31: C 
    c= B by 
    Th28;
    
        (n
    +  
    0 ) 
    < (n 
    + 1) by 
    XREAL_1: 6;
    
        then
    
        
    
    A32: ex p st p 
    in C & ( 
    len p) 
    >= n by 
    A30,
    Th23;
    
        e
    in B & ( 
    len e) 
    =  
    0 by 
    Th26;
    
        hence contradiction by
    A29,
    A31,
    A32;
    
      end;
    
      defpred
    
    QQ[
    object] means ex t be
    Element of T st t 
    = $1 & 
    P[t];
    
      defpred
    
    PP[
    object, 
    object] means ex p, n st $1
    = p & (p 
    ^  
    <*n*>)
    in T & $2 
    = (p 
    ^  
    <*n*>);
    
      
    
      
    
    A33: e 
    in T & 
    QQ[e] by
    A28;
    
      
    
      
    
    A34: for x be 
    object st x 
    in T & 
    QQ[x] holds ex y be
    object st y 
    in T & 
    PP[x, y] &
    QQ[y]
    
      proof
    
        let x be
    object such that x 
    in T; 
    
        given t be
    Element of T such that 
    
        
    
    A35: t 
    = x and 
    
        
    
    A36: 
    P[t];
    
        consider n such that
    
        
    
    A37: (t 
    ^  
    <*n*>)
    in T and 
    
        
    
    A38: 
    P[(t
    ^  
    <*n*>)] by
    A3,
    A36;
    
        reconsider y = (t
    ^  
    <*n*>) as
    set;
    
        take y;
    
        thus y
    in T & 
    PP[x, y] by
    A35,
    A37;
    
        reconsider t1 = (t
    ^  
    <*n*>) as
    Element of T by 
    A37;
    
        take t1;
    
        thus thesis by
    A38;
    
      end;
    
      ex f st (
    dom f) 
    =  
    NAT & ( 
    rng f) 
    c= T & (f 
    .  
    0 ) 
    = e & for k holds 
    PP[(f
    . k), (f 
    . (k 
    + 1))] & 
    QQ[(f
    . k)] from 
    InfiniteChain(
    A33,
    A34);
    
      then
    
      consider f such that
    
      
    
    A39: ( 
    dom f) 
    =  
    NAT and 
    
      
    
    A40: ( 
    rng f) 
    c= T and 
    
      
    
    A41: (f 
    .  
    0 ) 
    = e and 
    
      
    
    A42: for k holds (ex p, n st (f 
    . k) 
    = p & (p 
    ^  
    <*n*>)
    in T & (f 
    . (k 
    + 1)) 
    = (p 
    ^  
    <*n*>)) & ex t be
    Element of T st t 
    = (f 
    . k) & 
    P[t];
    
      reconsider C = (
    rng f) as 
    Subset of T by 
    A40;
    
      
    
    A43: 
    
      now
    
        let k be
    Nat;
    
        defpred
    
    X[
    Nat] means for p, q st p
    = (f 
    . k) & q 
    = (f 
    . (k 
    + $1)) holds p 
    is_a_prefix_of q; 
    
        
    
        
    
    A44: 
    X[
    0 ]; 
    
        
    
        
    
    A45: for n be 
    Nat st 
    X[n] holds
    X[(n
    + 1)] 
    
        proof
    
          let n be
    Nat;
    
          assume
    
          
    
    A46: for p, q st p 
    = (f 
    . k) & q 
    = (f 
    . (k 
    + n)) holds p 
    is_a_prefix_of q; 
    
          let p, q such that
    
          
    
    A47: p 
    = (f 
    . k) and 
    
          
    
    A48: q 
    = (f 
    . (k 
    + (n 
    + 1))); 
    
          reconsider k, n as
    Nat;
    
          consider r, l such that
    
          
    
    A49: (f 
    . (k 
    + n)) 
    = r and (r 
    ^  
    <*l*>)
    in T and 
    
          
    
    A50: (f 
    . ((k 
    + n) 
    + 1)) 
    = (r 
    ^  
    <*l*>) by
    A42;
    
          
    
          
    
    A51: p 
    is_a_prefix_of r by 
    A46,
    A47,
    A49;
    
          r
    is_a_prefix_of (r 
    ^  
    <*l*>) by
    TREES_1: 1;
    
          hence thesis by
    A48,
    A50,
    A51;
    
        end;
    
        thus for n be
    Nat holds 
    X[n] from
    NAT_1:sch 2(
    A44,
    A45);
    
      end;
    
      
    
    A52: 
    
      now
    
        let k, l;
    
        assume k
    <= l; 
    
        then ex n be
    Nat st l 
    = (k 
    + n) by 
    NAT_1: 10;
    
        hence for p, q st p
    = (f 
    . k) & q 
    = (f 
    . l) holds p 
    is_a_prefix_of q by 
    A43;
    
      end;
    
      C is
    Chain of T 
    
      proof
    
        let p, q;
    
        assume that
    
        
    
    A53: p 
    in C and 
    
        
    
    A54: q 
    in C; 
    
        consider x be
    object such that 
    
        
    
    A55: x 
    in  
    NAT and 
    
        
    
    A56: p 
    = (f 
    . x) by 
    A39,
    A53,
    FUNCT_1:def 3;
    
        consider y be
    object such that 
    
        
    
    A57: y 
    in  
    NAT and 
    
        
    
    A58: q 
    = (f 
    . y) by 
    A39,
    A54,
    FUNCT_1:def 3;
    
        reconsider x, y as
    Nat by 
    A55,
    A57;
    
        x
    <= y or y 
    <= x; 
    
        hence p
    is_a_prefix_of q or q 
    is_a_prefix_of p by 
    A52,
    A56,
    A58;
    
      end;
    
      then
    
      reconsider C as
    Chain of T; 
    
      take C;
    
      defpred
    
    X[
    Nat] means for p st p
    = (f 
    . $1) holds ( 
    len p) 
    = $1; 
    
      
    
      
    
    A59: 
    X[
    0 ] by 
    A41;
    
      
    
      
    
    A60: 
    X[k] implies
    X[(k
    + 1)] 
    
      proof
    
        assume
    
        
    
    A61: for p st p 
    = (f 
    . k) holds ( 
    len p) 
    = k; 
    
        let p such that
    
        
    
    A62: p 
    = (f 
    . (k 
    + 1)); 
    
        consider q, n such that
    
        
    
    A63: (f 
    . k) 
    = q and (q 
    ^  
    <*n*>)
    in T and 
    
        
    
    A64: (f 
    . (k 
    + 1)) 
    = (q 
    ^  
    <*n*>) by
    A42;
    
        
    
        thus (
    len p) 
    = (( 
    len q) 
    + ( 
    len  
    <*n*>)) by
    A62,
    A64,
    FINSEQ_1: 22
    
        .= ((
    len q) 
    + 1) by 
    FINSEQ_1: 39
    
        .= (k
    + 1) by 
    A61,
    A63;
    
      end;
    
      
    
      
    
    A65: 
    X[k] from
    NAT_1:sch 2(
    A59,
    A60);
    
      f is
    one-to-one
    
      proof
    
        let x,y be
    object;
    
        assume x
    in ( 
    dom f) & y 
    in ( 
    dom f); 
    
        then
    
        reconsider x9 = x, y9 = y as
    Nat by 
    A39;
    
        consider p, n such that
    
        
    
    A66: (f 
    . x9) 
    = p and (p 
    ^  
    <*n*>)
    in T and (f 
    . (x9 
    + 1)) 
    = (p 
    ^  
    <*n*>) by
    A42;
    
        
    
        
    
    A67: ex q, k st (f 
    . y9) 
    = q & (q 
    ^  
    <*k*>)
    in T & (f 
    . (y9 
    + 1)) 
    = (q 
    ^  
    <*k*>) by
    A42;
    
        (
    len p) 
    = x9 by 
    A65,
    A66;
    
        hence thesis by
    A65,
    A66,
    A67;
    
      end;
    
      then (
    NAT ,C) 
    are_equipotent by 
    A39,
    WELLORD2:def 4;
    
      hence thesis by
    CARD_1: 38;
    
    end;
    
    ::$Notion-Name
    
    theorem :: 
    
    TREES_2:30
    
    for T be
    finite-order  
    Tree st for n holds ex C be 
    finite  
    Chain of T st ( 
    card C) 
    = n holds ex B be 
    Chain of T st not B is 
    finite
    
    proof
    
      let T be
    finite-order  
    Tree;
    
      for t be
    Element of T holds ( 
    succ t) is 
    finite;
    
      hence thesis by
    Th29;
    
    end;
    
    definition
    
      let IT be
    Relation;
    
      :: 
    
    TREES_2:def8
    
      attr IT is
    
    DecoratedTree-like means 
    
      :
    
    Def8: ( 
    dom IT) is 
    Tree;
    
    end
    
    registration
    
      cluster 
    DecoratedTree-like for 
    Function;
    
      existence
    
      proof
    
        set W = the
    Tree;
    
        take f = (W
    -->  
    0 ); 
    
        thus (
    dom f) is 
    Tree;
    
      end;
    
    end
    
    definition
    
      mode
    
    DecoratedTree is 
    DecoratedTree-like  
    Function;
    
    end
    
    reserve T,T1,T2 for
    DecoratedTree;
    
    registration
    
      let T;
    
      cluster ( 
    dom T) -> non 
    empty
    Tree-like;
    
      coherence by
    Def8;
    
    end
    
    registration
    
      let D;
    
      cluster 
    DecoratedTree-likeD
    -valued for 
    Function;
    
      existence
    
      proof
    
        set W = the
    Tree;
    
        set d = the
    Element of D; 
    
        set f = (W
    --> d); 
    
        (
    dom f) 
    = W; 
    
        then
    
        reconsider f as
    DecoratedTree by 
    Def8;
    
        f is D
    -valued;
    
        hence thesis;
    
      end;
    
    end
    
    definition
    
      let D;
    
      mode
    
    DecoratedTree of D is D 
    -valued  
    DecoratedTree;
    
    end
    
    definition
    
      let D be non
    empty  
    set, T be 
    DecoratedTree of D, t be 
    Element of ( 
    dom T); 
    
      :: original:
    .
    
      redefine
    
      func T
    
    . t -> 
    Element of D ; 
    
      coherence
    
      proof
    
        (T
    . t) 
    in ( 
    rng T) & ( 
    rng T) 
    c= D by 
    FUNCT_1:def 3;
    
        hence thesis;
    
      end;
    
    end
    
    theorem :: 
    
    TREES_2:31
    
    
    
    
    
    Th31: ( 
    dom T1) 
    = ( 
    dom T2) & (for p st p 
    in ( 
    dom T1) holds (T1 
    . p) 
    = (T2 
    . p)) implies T1 
    = T2 
    
    proof
    
      assume that
    
      
    
    A1: ( 
    dom T1) 
    = ( 
    dom T2) and 
    
      
    
    A2: for p st p 
    in ( 
    dom T1) holds (T1 
    . p) 
    = (T2 
    . p); 
    
      now
    
        let x be
    object;
    
        assume x
    in ( 
    dom T1); 
    
        then
    
        reconsider p = x as
    Element of ( 
    dom T1); 
    
        (T1
    . p) 
    = (T2 
    . p) by 
    A2;
    
        hence (T1
    . x) 
    = (T2 
    . x); 
    
      end;
    
      hence thesis by
    A1;
    
    end;
    
    scheme :: 
    
    TREES_2:sch6
    
    DTreeEx { T() ->
    Tree , P[ 
    object, 
    object] } :
    
ex T st ( 
    dom T) 
    = T() & for p st p 
    in T() holds P[p, (T 
    . p)] 
    
      provided
    
      
    
    A1: for p st p 
    in T() holds ex x st P[p, x]; 
    
      
    
      
    
    A2: for x be 
    object st x 
    in T() holds ex y be 
    object st P[x, y] 
    
      proof
    
        let x be
    object;
    
        assume x
    in T(); 
    
        then
    
        reconsider p = x as
    Element of T(); 
    
        ex y st P[p, y] by
    A1;
    
        hence thesis;
    
      end;
    
      consider f such that
    
      
    
    A3: ( 
    dom f) 
    = T() & for x be 
    object st x 
    in T() holds P[x, (f 
    . x)] from 
    CLASSES1:sch 1(
    A2);
    
      reconsider T = f as
    DecoratedTree by 
    A3,
    Def8;
    
      take T;
    
      thus thesis by
    A3;
    
    end;
    
    scheme :: 
    
    TREES_2:sch7
    
    DTreeLambda { T() ->
    Tree , f( 
    object) ->
    set } : 
    
ex T st ( 
    dom T) 
    = T() & for p st p 
    in T() holds (T 
    . p) 
    = f(p); 
    
      consider f such that
    
      
    
    A1: ( 
    dom f) 
    = T() & for x be 
    object st x 
    in T() holds (f 
    . x) 
    = f(x) from 
    FUNCT_1:sch 3;
    
      reconsider T = f as
    DecoratedTree by 
    A1,
    Def8;
    
      take T;
    
      thus thesis by
    A1;
    
    end;
    
    definition
    
      let T;
    
      :: 
    
    TREES_2:def9
    
      func
    
    Leaves T -> 
    set equals (T 
    .: ( 
    Leaves ( 
    dom T))); 
    
      correctness ;
    
      let p;
    
      :: 
    
    TREES_2:def10
    
      func T
    
    | p -> 
    DecoratedTree means 
    
      :
    
    Def10: ( 
    dom it ) 
    = (( 
    dom T) 
    | p) & for q st q 
    in (( 
    dom T) 
    | p) holds (it 
    . q) 
    = (T 
    . (p 
    ^ q)); 
    
      existence
    
      proof
    
        deffunc
    
    U(
    FinSequence) = (T
    . (p 
    ^ $1)); 
    
        thus ex t be
    DecoratedTree st ( 
    dom t) 
    = (( 
    dom T) 
    | p) & for q st q 
    in (( 
    dom T) 
    | p) holds (t 
    . q) 
    =  
    U(q) from
    DTreeLambda;
    
      end;
    
      uniqueness
    
      proof
    
        let T1, T2 such that
    
        
    
    A1: ( 
    dom T1) 
    = (( 
    dom T) 
    | p) and 
    
        
    
    A2: for q st q 
    in (( 
    dom T) 
    | p) holds (T1 
    . q) 
    = (T 
    . (p 
    ^ q)) and 
    
        
    
    A3: ( 
    dom T2) 
    = (( 
    dom T) 
    | p) and 
    
        
    
    A4: for q st q 
    in (( 
    dom T) 
    | p) holds (T2 
    . q) 
    = (T 
    . (p 
    ^ q)); 
    
        now
    
          let q;
    
          assume
    
          
    
    A5: q 
    in (( 
    dom T) 
    | p); 
    
          then (T1
    . q) 
    = (T 
    . (p 
    ^ q)) by 
    A2;
    
          hence (T1
    . q) 
    = (T2 
    . q) by 
    A4,
    A5;
    
        end;
    
        hence thesis by
    A1,
    A3,
    Th31;
    
      end;
    
    end
    
    theorem :: 
    
    TREES_2:32
    
    
    
    
    
    Th32: p 
    in ( 
    dom T) implies ( 
    rng (T 
    | p)) 
    c= ( 
    rng T) 
    
    proof
    
      assume
    
      
    
    A1: p 
    in ( 
    dom T); 
    
      let x be
    object;
    
      assume x
    in ( 
    rng (T 
    | p)); 
    
      then
    
      consider y be
    object such that 
    
      
    
    A2: y 
    in ( 
    dom (T 
    | p)) and 
    
      
    
    A3: x 
    = ((T 
    | p) 
    . y) by 
    FUNCT_1:def 3;
    
      reconsider y as
    Element of ( 
    dom (T 
    | p)) by 
    A2;
    
      
    
      
    
    A4: ( 
    dom (T 
    | p)) 
    = (( 
    dom T) 
    | p) by 
    Def10;
    
      then
    
      
    
    A5: (p 
    ^ y) 
    in ( 
    dom T) by 
    A1,
    TREES_1:def 6;
    
      x
    = (T 
    . (p 
    ^ y)) by 
    A3,
    A4,
    Def10;
    
      hence thesis by
    A5,
    FUNCT_1:def 3;
    
    end;
    
    definition
    
      let D;
    
      let T be
    DecoratedTree of D; 
    
      :: original:
    Leaves
    
      redefine
    
      func
    
    Leaves T -> 
    Subset of D ; 
    
      coherence
    
      proof
    
        (T
    .: ( 
    Leaves ( 
    dom T))) 
    c= ( 
    rng T) & ( 
    rng T) 
    c= D by 
    RELAT_1: 111;
    
        hence thesis by
    XBOOLE_1: 1;
    
      end;
    
    end
    
    registration
    
      let D;
    
      let T be
    DecoratedTree of D; 
    
      let p be
    Element of ( 
    dom T); 
    
      cluster (T 
    | p) -> D 
    -valued;
    
      coherence
    
      proof
    
        (
    rng (T 
    | p)) 
    c= ( 
    rng T) & ( 
    rng T) 
    c= D by 
    Th32;
    
        then (
    rng (T 
    | p)) 
    c= D; 
    
        hence thesis;
    
      end;
    
    end
    
    definition
    
      let T, p, T1;
    
      assume
    
      
    
    A1: p 
    in ( 
    dom T); 
    
      :: 
    
    TREES_2:def11
    
      func T
    
    with-replacement (p,T1) -> 
    DecoratedTree means ( 
    dom it ) 
    = (( 
    dom T) 
    with-replacement (p,( 
    dom T1))) & for q st q 
    in (( 
    dom T) 
    with-replacement (p,( 
    dom T1))) holds not p 
    is_a_prefix_of q & (it 
    . q) 
    = (T 
    . q) or ex r st r 
    in ( 
    dom T1) & q 
    = (p 
    ^ r) & (it 
    . q) 
    = (T1 
    . r); 
    
      existence
    
      proof
    
        defpred
    
    X[
    FinSequence, 
    set] means not p
    is_a_prefix_of $1 & $2 
    = (T 
    . $1) or ex r st r 
    in ( 
    dom T1) & $1 
    = (p 
    ^ r) & $2 
    = (T1 
    . r); 
    
        
    
        
    
    A2: for q st q 
    in (( 
    dom T) 
    with-replacement (p,( 
    dom T1))) holds ex x st 
    X[q, x]
    
        proof
    
          let q such that
    
          
    
    A3: q 
    in (( 
    dom T) 
    with-replacement (p,( 
    dom T1))); 
    
          now
    
            per cases ;
    
              suppose p
    is_a_proper_prefix_of q; 
    
              then
    
              consider r such that
    
              
    
    A4: r 
    in ( 
    dom T1) & q 
    = (p 
    ^ r) by 
    A1,
    A3,
    TREES_1:def 9;
    
              thus thesis
    
              proof
    
                take (T1
    . r); 
    
                thus thesis by
    A4;
    
              end;
    
            end;
    
              suppose
    
              
    
    A5: p 
    = q; 
    
              thus thesis
    
              proof
    
                take (T1
    . ( 
    {}  
    NAT )); 
    
                (
    {}  
    NAT ) 
    in ( 
    dom T1) & q 
    = (p 
    ^ ( 
    <*>  
    NAT )) by 
    A5,
    FINSEQ_1: 34,
    TREES_1: 22;
    
                hence thesis;
    
              end;
    
            end;
    
              suppose not p
    is_a_prefix_of q; 
    
              hence thesis;
    
            end;
    
          end;
    
          hence thesis;
    
        end;
    
        thus ex TT be
    DecoratedTree st ( 
    dom TT) 
    = (( 
    dom T) 
    with-replacement (p,( 
    dom T1))) & for q st q 
    in (( 
    dom T) 
    with-replacement (p,( 
    dom T1))) holds 
    X[q, (TT
    . q)] from 
    DTreeEx(
    A2);
    
      end;
    
      uniqueness
    
      proof
    
        let D1,D2 be
    DecoratedTree such that 
    
        
    
    A6: ( 
    dom D1) 
    = (( 
    dom T) 
    with-replacement (p,( 
    dom T1))) and 
    
        
    
    A7: for q st q 
    in (( 
    dom T) 
    with-replacement (p,( 
    dom T1))) holds not p 
    is_a_prefix_of q & (D1 
    . q) 
    = (T 
    . q) or ex r st r 
    in ( 
    dom T1) & q 
    = (p 
    ^ r) & (D1 
    . q) 
    = (T1 
    . r) and 
    
        
    
    A8: ( 
    dom D2) 
    = (( 
    dom T) 
    with-replacement (p,( 
    dom T1))) and 
    
        
    
    A9: for q st q 
    in (( 
    dom T) 
    with-replacement (p,( 
    dom T1))) holds not p 
    is_a_prefix_of q & (D2 
    . q) 
    = (T 
    . q) or ex r st r 
    in ( 
    dom T1) & q 
    = (p 
    ^ r) & (D2 
    . q) 
    = (T1 
    . r); 
    
        now
    
          let q;
    
          assume that
    
          
    
    A10: q 
    in ( 
    dom D1) and 
    
          
    
    A11: (D1 
    . q) 
    <> (D2 
    . q); 
    
          
    
          
    
    A12: not p 
    is_a_prefix_of q & (D1 
    . q) 
    = (T 
    . q) or ex r st r 
    in ( 
    dom T1) & q 
    = (p 
    ^ r) & (D1 
    . q) 
    = (T1 
    . r) by 
    A6,
    A7,
    A10;
    
           not p
    is_a_prefix_of q & (D2 
    . q) 
    = (T 
    . q) or ex r st r 
    in ( 
    dom T1) & q 
    = (p 
    ^ r) & (D2 
    . q) 
    = (T1 
    . r) by 
    A6,
    A9,
    A10;
    
          hence contradiction by
    A11,
    A12,
    FINSEQ_1: 33,
    TREES_1: 1;
    
        end;
    
        hence thesis by
    A6,
    A8,
    Th31;
    
      end;
    
    end
    
    registration
    
      let W, x;
    
      cluster (W 
    --> x) -> 
    DecoratedTree-like;
    
      coherence ;
    
    end
    
    theorem :: 
    
    TREES_2:33
    
    
    
    
    
    Th33: (for x st x 
    in D holds x is 
    Tree) implies (
    union D) is 
    Tree
    
    proof
    
      assume
    
      
    
    A1: for x st x 
    in D holds x is 
    Tree;
    
      then
    
      reconsider x = the
    Element of D as 
    Tree;
    
      x
    c= ( 
    union D) by 
    ZFMISC_1: 74;
    
      then
    
      reconsider T = (
    union D) as non 
    empty  
    set;
    
      T is
    Tree-like
    
      proof
    
        for X st X
    in D holds X 
    c= ( 
    NAT  
    * ) 
    
        proof
    
          let X;
    
          assume X
    in D; 
    
          then X is
    Tree by 
    A1;
    
          hence thesis by
    TREES_1:def 3;
    
        end;
    
        hence T
    c= ( 
    NAT  
    * ) by 
    ZFMISC_1: 76;
    
        thus for p st p
    in T holds ( 
    ProperPrefixes p) 
    c= T 
    
        proof
    
          let p;
    
          assume p
    in T; 
    
          then
    
          consider X such that
    
          
    
    A2: p 
    in X and 
    
          
    
    A3: X 
    in D by 
    TARSKI:def 4;
    
          reconsider X as
    Tree by 
    A1,
    A3;
    
          (
    ProperPrefixes p) 
    c= X & X 
    c= T by 
    A2,
    A3,
    TREES_1:def 3,
    ZFMISC_1: 74;
    
          hence thesis;
    
        end;
    
        let p, k, n;
    
        assume that
    
        
    
    A4: (p 
    ^  
    <*k*>)
    in T and 
    
        
    
    A5: n 
    <= k; 
    
        consider X such that
    
        
    
    A6: (p 
    ^  
    <*k*>)
    in X and 
    
        
    
    A7: X 
    in D by 
    A4,
    TARSKI:def 4;
    
        reconsider X as
    Tree by 
    A1,
    A7;
    
        (p
    ^  
    <*n*>)
    in X by 
    A5,
    A6,
    TREES_1:def 3;
    
        hence thesis by
    A7,
    TARSKI:def 4;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    TREES_2:34
    
    
    
    
    
    Th34: (for x st x 
    in X holds x is 
    Function) & X is
    c=-linear implies ( 
    union X) is 
    Relation-like
    Function-like
    
    proof
    
      assume that
    
      
    
    A1: for x st x 
    in X holds x is 
    Function and 
    
      
    
    A2: X is 
    c=-linear;
    
      thus for a be
    object holds a 
    in ( 
    union X) implies ex b,c be 
    object st 
    [b, c]
    = a 
    
      proof
    
        let a be
    object;
    
        assume a
    in ( 
    union X); 
    
        then
    
        consider x be
    set such that 
    
        
    
    A3: a 
    in x and 
    
        
    
    A4: x 
    in X by 
    TARSKI:def 4;
    
        reconsider x as
    Function by 
    A1,
    A4;
    
        x
    = x; 
    
        hence thesis by
    A3,
    RELAT_1:def 1;
    
      end;
    
      let a,b,c be
    object;
    
      assume that
    
      
    
    A5: 
    [a, b]
    in ( 
    union X) and 
    
      
    
    A6: 
    [a, c]
    in ( 
    union X); 
    
      consider x be
    set such that 
    
      
    
    A7: 
    [a, b]
    in x and 
    
      
    
    A8: x 
    in X by 
    A5,
    TARSKI:def 4;
    
      consider y be
    set such that 
    
      
    
    A9: 
    [a, c]
    in y and 
    
      
    
    A10: y 
    in X by 
    A6,
    TARSKI:def 4;
    
      reconsider x as
    Function by 
    A1,
    A8;
    
      reconsider y as
    Function by 
    A1,
    A10;
    
      (x,y)
    are_c=-comparable by 
    A2,
    A8,
    A10;
    
      then x
    c= y or y 
    c= x; 
    
      hence thesis by
    A7,
    A9,
    FUNCT_1:def 1;
    
    end;
    
    theorem :: 
    
    TREES_2:35
    
    
    
    
    
    Th35: (for x st x 
    in D holds x is 
    DecoratedTree) & D is
    c=-linear implies ( 
    union D) is 
    DecoratedTree
    
    proof
    
      assume that
    
      
    
    A1: for x st x 
    in D holds x is 
    DecoratedTree and 
    
      
    
    A2: D is 
    c=-linear;
    
      for x holds x
    in D implies x is 
    Function by 
    A1;
    
      then
    
      reconsider T = (
    union D) as 
    Function by 
    A2,
    Th34;
    
      defpred
    
    X[
    object, 
    object] means ex T1 st $1
    = T1 & ( 
    dom T1) 
    = $2; 
    
      
    
      
    
    A3: for x be 
    object st x 
    in D holds ex y be 
    object st 
    X[x, y]
    
      proof
    
        let x be
    object;
    
        assume x
    in D; 
    
        then
    
        reconsider T1 = x as
    DecoratedTree by 
    A1;
    
        (
    dom T1) 
    = ( 
    dom T1); 
    
        hence thesis;
    
      end;
    
      consider f such that
    
      
    
    A4: ( 
    dom f) 
    = D & for x be 
    object st x 
    in D holds 
    X[x, (f
    . x)] from 
    CLASSES1:sch 1(
    A3);
    
      reconsider E = (
    rng f) as non 
    empty  
    set by 
    A4,
    RELAT_1: 42;
    
      now
    
        let x;
    
        assume x
    in E; 
    
        then
    
        consider y be
    object such that 
    
        
    
    A5: y 
    in ( 
    dom f) & x 
    = (f 
    . y) by 
    FUNCT_1:def 3;
    
        ex T1 st y
    = T1 & ( 
    dom T1) 
    = x by 
    A4,
    A5;
    
        hence x is
    Tree;
    
      end;
    
      then
    
      
    
    A6: ( 
    union E) is 
    Tree by 
    Th33;
    
      (
    dom T) 
    = ( 
    union E) 
    
      proof
    
        thus (
    dom T) 
    c= ( 
    union E) 
    
        proof
    
          let x be
    object;
    
          assume x
    in ( 
    dom T); 
    
          then
    
          consider y be
    object such that 
    
          
    
    A7: 
    [x, y]
    in T by 
    XTUPLE_0:def 12;
    
          consider X such that
    
          
    
    A8: 
    [x, y]
    in X and 
    
          
    
    A9: X 
    in D by 
    A7,
    TARSKI:def 4;
    
          consider T1 such that
    
          
    
    A10: X 
    = T1 and 
    
          
    
    A11: ( 
    dom T1) 
    = (f 
    . X) by 
    A4,
    A9;
    
          
    
          
    
    A12: ( 
    dom T1) 
    in ( 
    rng f) by 
    A4,
    A9,
    A11,
    FUNCT_1:def 3;
    
          
    
          
    
    A13: x 
    in ( 
    dom T1) by 
    A8,
    A10,
    XTUPLE_0:def 12;
    
          (
    dom T1) 
    c= ( 
    union E) by 
    A12,
    ZFMISC_1: 74;
    
          hence thesis by
    A13;
    
        end;
    
        let x be
    object;
    
        assume x
    in ( 
    union E); 
    
        then
    
        consider X such that
    
        
    
    A14: x 
    in X and 
    
        
    
    A15: X 
    in E by 
    TARSKI:def 4;
    
        consider y be
    object such that 
    
        
    
    A16: y 
    in ( 
    dom f) and 
    
        
    
    A17: X 
    = (f 
    . y) by 
    A15,
    FUNCT_1:def 3;
    
        consider T1 such that
    
        
    
    A18: y 
    = T1 and 
    
        
    
    A19: ( 
    dom T1) 
    = X by 
    A4,
    A16,
    A17;
    
        
    [x, (T1
    . x)] 
    in T1 by 
    A14,
    A19,
    FUNCT_1: 1;
    
        then
    [x, (T1
    . x)] 
    in ( 
    union D) by 
    A4,
    A16,
    A18,
    TARSKI:def 4;
    
        hence thesis by
    XTUPLE_0:def 12;
    
      end;
    
      hence thesis by
    A6,
    Def8;
    
    end;
    
    theorem :: 
    
    TREES_2:36
    
    
    
    
    
    Th36: (for x st x 
    in D9 holds x is 
    DecoratedTree of D) & D9 is 
    c=-linear implies ( 
    union D9) is 
    DecoratedTree of D 
    
    proof
    
      assume that
    
      
    
    A1: for x st x 
    in D9 holds x is 
    DecoratedTree of D and 
    
      
    
    A2: D9 is 
    c=-linear;
    
      for x st x
    in D9 holds x is 
    DecoratedTree by 
    A1;
    
      then
    
      reconsider T = (
    union D9) as 
    DecoratedTree by 
    A2,
    Th35;
    
      (
    rng T) 
    c= D 
    
      proof
    
        let x be
    object;
    
        assume x
    in ( 
    rng T); 
    
        then
    
        consider y be
    object such that 
    
        
    
    A3: y 
    in ( 
    dom T) & x 
    = (T 
    . y) by 
    FUNCT_1:def 3;
    
        
    [y, x]
    in T by 
    A3,
    FUNCT_1: 1;
    
        then
    
        consider X such that
    
        
    
    A4: 
    [y, x]
    in X and 
    
        
    
    A5: X 
    in D9 by 
    TARSKI:def 4;
    
        reconsider X as
    DecoratedTree of D by 
    A1,
    A5;
    
        y
    in ( 
    dom X) & x 
    = (X 
    . y) by 
    A4,
    FUNCT_1: 1;
    
        then
    
        
    
    A6: x 
    in ( 
    rng X) by 
    FUNCT_1:def 3;
    
        thus thesis by
    A6;
    
      end;
    
      hence thesis by
    RELAT_1:def 19;
    
    end;
    
    scheme :: 
    
    TREES_2:sch8
    
    DTreeStructEx { D() -> non
    empty  
    set , d() -> 
    Element of D() , F( 
    set) ->
    set , S() -> 
    Function of 
    [:D(),
    NAT :], D() } : 
    
ex T be 
    DecoratedTree of D() st (T 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T) holds ( 
    succ t) 
    = { (t 
    ^  
    <*k*>) : k
    in F(.) } & for n st n 
    in F(.) holds (T 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . ((T 
    . t),n)) 
    
      provided
    
      
    
    A1: for d be 
    Element of D(), k1, k2 st k1 
    <= k2 & k2 
    in F(d) holds k1 
    in F(d); 
    
      defpred
    
    P[
    Nat] means ex T be
    DecoratedTree of D() st (T 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T) holds ( 
    len t) 
    <= $1 & (( 
    len t) 
    < $1 implies ( 
    succ t) 
    = { (t 
    ^  
    <*k*>) : k
    in F(.) } & for n, x st x 
    = (T 
    . t) & n 
    in F(x) holds (T 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))); 
    
      reconsider W =
    {
    {} } as 
    Tree;
    
      
    
      
    
    A2: 
    P[
    0 ] 
    
      proof
    
        take T1 = (W
    --> d()); 
    
        
    {}  
    in W by 
    TREES_1: 22;
    
        hence (T1
    .  
    {} ) 
    = d() by 
    FUNCOP_1: 7;
    
        let t be
    Element of ( 
    dom T1); 
    
        t
    =  
    {} by 
    TARSKI:def 1;
    
        hence (
    len t) 
    <=  
    0 ; 
    
        assume (
    len t) 
    <  
    0 ; 
    
        hence thesis;
    
      end;
    
      
    
      
    
    A3: 
    P[k] implies
    P[(k
    + 1)] 
    
      proof
    
        given T be
    DecoratedTree of D() such that 
    
        
    
    A4: (T 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T) holds ( 
    len t) 
    <= k & (( 
    len t) 
    < k implies ( 
    succ t) 
    = { (t 
    ^  
    <*m*>) : m
    in F(.) } & for n, x st x 
    = (T 
    . t) & n 
    in F(x) holds (T 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))); 
    
        reconsider M = ({ (t
    ^  
    <*n*>) where t be
    Element of ( 
    dom T) : n 
    in F(.) } 
    \/ ( 
    dom T)) as non 
    empty  
    set;
    
        M is
    Tree-like
    
        proof
    
          thus M
    c= ( 
    NAT  
    * ) 
    
          proof
    
            let x be
    object;
    
            assume x
    in M; 
    
            then
    
            
    
    A5: x 
    in { (t 
    ^  
    <*n*>) where t be
    Element of ( 
    dom T) : n 
    in F(.) } or x 
    in ( 
    dom T) & ( 
    dom T) 
    c= ( 
    NAT  
    * ) by 
    TREES_1:def 3,
    XBOOLE_0:def 3;
    
            assume
    
            
    
    A6: not x 
    in ( 
    NAT  
    * ); 
    
            then
    
            consider n be
    Nat, t be 
    Element of ( 
    dom T) such that 
    
            
    
    A7: x 
    = (t 
    ^  
    <*n*>) & n
    in F(.) by 
    A5;
    
            reconsider n as
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
            x
    = (t 
    ^  
    <*n*>) by
    A7;
    
            hence thesis by
    A6,
    FINSEQ_1:def 11;
    
          end;
    
          thus for p st p
    in M holds ( 
    ProperPrefixes p) 
    c= M 
    
          proof
    
            let p;
    
            assume p
    in M; 
    
            then
    
            
    
    A8: p 
    in { (t 
    ^  
    <*n*>) where t be
    Element of ( 
    dom T) : n 
    in F(.) } or p 
    in ( 
    dom T) by 
    XBOOLE_0:def 3;
    
            now
    
              assume p
    in { (t 
    ^  
    <*n*>) where t be
    Element of ( 
    dom T) : n 
    in F(.) }; 
    
              then
    
              consider n be
    Nat, t be 
    Element of ( 
    dom T) such that 
    
              
    
    A9: p 
    = (t 
    ^  
    <*n*>) and n
    in F(.); 
    
              
    
              
    
    A10: ( 
    ProperPrefixes t) 
    c= ( 
    dom T) by 
    TREES_1:def 3;
    
              
    
              
    
    A11: ( 
    dom T) 
    c= M by 
    XBOOLE_1: 7;
    
              
    
              
    
    A12: ( 
    ProperPrefixes t) 
    c= M by 
    A10,
    A11;
    
              
    
              
    
    A13: 
    {t}
    c= M by 
    A11,
    ZFMISC_1: 31;
    
              (
    ProperPrefixes p) 
    = (( 
    ProperPrefixes t) 
    \/  
    {t}) by
    A9,
    Th4;
    
              hence thesis by
    A12,
    A13,
    XBOOLE_1: 8;
    
            end;
    
            then (
    ProperPrefixes p) 
    c= M or ( 
    ProperPrefixes p) 
    c= ( 
    dom T) & ( 
    dom T) 
    c= M by 
    A8,
    TREES_1:def 3,
    XBOOLE_1: 7;
    
            hence thesis;
    
          end;
    
          let p, m, n;
    
          assume (p
    ^  
    <*m*>)
    in M; 
    
          then
    
          
    
    A14: (p 
    ^  
    <*m*>)
    in { (t 
    ^  
    <*l*>) where t be
    Element of ( 
    dom T) : l 
    in F(.) } or (p 
    ^  
    <*m*>)
    in ( 
    dom T) by 
    XBOOLE_0:def 3;
    
          assume that
    
          
    
    A15: n 
    <= m and 
    
          
    
    A16: not (p 
    ^  
    <*n*>)
    in M; 
    
           not (p
    ^  
    <*n*>)
    in ( 
    dom T) by 
    A16,
    XBOOLE_0:def 3;
    
          then
    
          consider l be
    Nat, t be 
    Element of ( 
    dom T) such that 
    
          
    
    A17: (p 
    ^  
    <*m*>)
    = (t 
    ^  
    <*l*>) and
    
          
    
    A18: l 
    in F(.) by 
    A14,
    A15,
    TREES_1:def 3;
    
          
    
          
    
    A19: ( 
    len (p 
    ^  
    <*m*>))
    = (( 
    len p) 
    + ( 
    len  
    <*m*>)) & (
    len  
    <*m*>)
    = 1 by 
    FINSEQ_1: 22,
    FINSEQ_1: 40;
    
          
    
          
    
    A20: ( 
    len (t 
    ^  
    <*l*>))
    = (( 
    len t) 
    + ( 
    len  
    <*l*>)) & (
    len  
    <*l*>)
    = 1 by 
    FINSEQ_1: 22,
    FINSEQ_1: 40;
    
          
    
          
    
    A21: ((p 
    ^  
    <*m*>)
    . (( 
    len p) 
    + 1)) 
    = m & ((t 
    ^  
    <*l*>)
    . (( 
    len t) 
    + 1)) 
    = l by 
    FINSEQ_1: 42;
    
          then
    
          
    
    A22: p 
    = t by 
    A17,
    A19,
    A20,
    FINSEQ_1: 33;
    
          n
    in F(.) by 
    A1,
    A15,
    A17,
    A18,
    A19,
    A20,
    A21;
    
          then (p
    ^  
    <*n*>)
    in { (s 
    ^  
    <*i*>) where s be
    Element of ( 
    dom T) : i 
    in F(.) } by 
    A22;
    
          hence thesis by
    A16,
    XBOOLE_0:def 3;
    
        end;
    
        then
    
        reconsider M as
    Tree;
    
        defpred
    
    P[
    FinSequence, 
    set] means $1
    in ( 
    dom T) & $2 
    = (T 
    . $1) or not $1 
    in ( 
    dom T) & ex n, q st $1 
    = (q 
    ^  
    <*n*>) & $2
    = (S() 
    . ((T 
    . q),n)); 
    
        
    
        
    
    A23: for p st p 
    in M holds ex x st 
    P[p, x]
    
        proof
    
          let p;
    
          assume p
    in M; 
    
          then
    
          
    
    A24: p 
    in { (t 
    ^  
    <*l*>) where t be
    Element of ( 
    dom T) : l 
    in F(.) } or p 
    in ( 
    dom T) by 
    XBOOLE_0:def 3;
    
          now
    
            assume
    
            
    
    A25: not p 
    in ( 
    dom T); 
    
            then
    
            consider l be
    Nat, t be 
    Element of ( 
    dom T) such that 
    
            
    
    A26: p 
    = (t 
    ^  
    <*l*>) and l
    in F(.) by 
    A24;
    
            take x = (S()
    . ((T 
    . t),l)); 
    
            thus p
    in ( 
    dom T) & x 
    = (T 
    . p) or not p 
    in ( 
    dom T) & ex n, q st p 
    = (q 
    ^  
    <*n*>) & x
    = (S() 
    . ((T 
    . q),n)) by 
    A25,
    A26;
    
          end;
    
          hence thesis;
    
        end;
    
        consider T9 be
    DecoratedTree such that 
    
        
    
    A27: ( 
    dom T9) 
    = M & for p st p 
    in M holds 
    P[p, (T9
    . p)] from 
    DTreeEx(
    A23);
    
        (
    rng T9) 
    c= D() 
    
        proof
    
          let x be
    object;
    
          assume x
    in ( 
    rng T9); 
    
          then
    
          consider y be
    object such that 
    
          
    
    A28: y 
    in ( 
    dom T9) and 
    
          
    
    A29: x 
    = (T9 
    . y) by 
    FUNCT_1:def 3;
    
          reconsider y as
    Element of ( 
    dom T9) by 
    A28;
    
          
    
    A30: 
    
          now
    
            assume y
    in ( 
    dom T); 
    
            then
    
            reconsider t = y as
    Element of ( 
    dom T); 
    
            (T
    . t) 
    in D(); 
    
            hence thesis by
    A27,
    A29;
    
          end;
    
          now
    
            assume
    
            
    
    A31: not y 
    in ( 
    dom T); 
    
            then
    
            consider n, q such that
    
            
    
    A32: y 
    = (q 
    ^  
    <*n*>) and
    
            
    
    A33: (T9 
    . y) 
    = (S() 
    . ((T 
    . q),n)) by 
    A27;
    
            y
    in { (t 
    ^  
    <*l*>) where t be
    Element of ( 
    dom T) : l 
    in F(.) } by 
    A27,
    A31,
    XBOOLE_0:def 3;
    
            then
    
            consider l be
    Nat, t be 
    Element of ( 
    dom T) such that 
    
            
    
    A34: y 
    = (t 
    ^  
    <*l*>) and l
    in F(.); 
    
            
    
            
    
    A35: ( 
    len  
    <*n*>)
    = 1 by 
    FINSEQ_1: 39;
    
            
    
            
    
    A36: ( 
    len  
    <*l*>)
    = 1 by 
    FINSEQ_1: 39;
    
            
    
            
    
    A37: ( 
    len (q 
    ^  
    <*n*>))
    = (( 
    len q) 
    + 1) by 
    A35,
    FINSEQ_1: 22;
    
            
    
            
    
    A38: ( 
    len (t 
    ^  
    <*l*>))
    = (( 
    len t) 
    + 1) by 
    A36,
    FINSEQ_1: 22;
    
            ((q
    ^  
    <*n*>)
    . (( 
    len q) 
    + 1)) 
    = n & ((t 
    ^  
    <*l*>)
    . (( 
    len t) 
    + 1)) 
    = l by 
    FINSEQ_1: 42;
    
            then
    
            
    
    A39: q 
    = t by 
    A32,
    A34,
    A37,
    A38,
    FINSEQ_1: 33;
    
            
    
            
    
    A40: n 
    in  
    NAT by 
    ORDINAL1:def 12;
    
            (T
    . t) 
    in D(); 
    
            then
    [(T
    . q), n] 
    in  
    [:D(),
    NAT :] by 
    A39,
    ZFMISC_1: 87,
    A40;
    
            hence thesis by
    A29,
    A33,
    FUNCT_2: 5;
    
          end;
    
          hence thesis by
    A30;
    
        end;
    
        then
    
        reconsider T9 as
    DecoratedTree of D() by 
    RELAT_1:def 19;
    
        take T9;
    
        (
    <*>  
    NAT ) 
    in M & ( 
    <*>  
    NAT ) 
    in ( 
    dom T) by 
    TREES_1: 22;
    
        hence (T9
    .  
    {} ) 
    = d() by 
    A4,
    A27;
    
        let t be
    Element of ( 
    dom T9); 
    
        
    
    A41: 
    
        now
    
          assume t
    in { (s 
    ^  
    <*l*>) where s be
    Element of ( 
    dom T) : l 
    in F(.) }; 
    
          then
    
          consider l be
    Nat, s be 
    Element of ( 
    dom T) such that 
    
          
    
    A42: t 
    = (s 
    ^  
    <*l*>) and l
    in F(.); 
    
          (
    len s) 
    <= k by 
    A4;
    
          then (
    len  
    <*l*>)
    = 1 & (( 
    len s) 
    + 1) 
    <= (k 
    + 1) by 
    FINSEQ_1: 39,
    XREAL_1: 7;
    
          hence (
    len t) 
    <= (k 
    + 1) by 
    A42,
    FINSEQ_1: 22;
    
        end;
    
        now
    
          assume t
    in ( 
    dom T); 
    
          then
    
          reconsider s = t as
    Element of ( 
    dom T); 
    
          (
    len s) 
    <= k & k 
    <= (k 
    + 1) by 
    A4,
    NAT_1: 11;
    
          hence (
    len t) 
    <= (k 
    + 1) by 
    XXREAL_0: 2;
    
        end;
    
        hence (
    len t) 
    <= (k 
    + 1) by 
    A27,
    A41,
    XBOOLE_0:def 3;
    
        assume
    
        
    
    A43: ( 
    len t) 
    < (k 
    + 1); 
    
        
    
    A44: 
    
        now
    
          assume
    
          
    
    A45: not t 
    in ( 
    dom T); 
    
          then t
    in { (s 
    ^  
    <*l*>) where s be
    Element of ( 
    dom T) : l 
    in F(.) } by 
    A27,
    XBOOLE_0:def 3;
    
          then
    
          consider l be
    Nat, s be 
    Element of ( 
    dom T) such that 
    
          
    
    A46: t 
    = (s 
    ^  
    <*l*>) and
    
          
    
    A47: l 
    in F(.); 
    
          
    
          
    
    A48: ( 
    len t) 
    = (( 
    len s) 
    + ( 
    len  
    <*l*>)) by
    A46,
    FINSEQ_1: 22;
    
          (
    len  
    <*l*>)
    = 1 & ( 
    len t) 
    <= k by 
    A43,
    FINSEQ_1: 39,
    NAT_1: 13;
    
          then (
    len s) 
    < k by 
    A48,
    NAT_1: 13;
    
          then (
    succ s) 
    = { (s 
    ^  
    <*m*>) : m
    in F(.) } by 
    A4;
    
          then t
    in ( 
    succ s) by 
    A46,
    A47;
    
          hence contradiction by
    A45;
    
        end;
    
        then
    
        
    
    A49: (T9 
    . t) 
    = (T 
    . t) by 
    A27;
    
        reconsider t9 = t as
    Element of ( 
    dom T) by 
    A44;
    
        thus (
    succ t) 
    c= { (t 
    ^  
    <*i*>) : i
    in F(.) } 
    
        proof
    
          let x be
    object;
    
          assume x
    in ( 
    succ t); 
    
          then
    
          consider n such that
    
          
    
    A50: x 
    = (t 
    ^  
    <*n*>) and
    
          
    
    A51: (t 
    ^  
    <*n*>)
    in ( 
    dom T9); 
    
          now
    
            per cases ;
    
              suppose
    
              
    
    A52: (t 
    ^  
    <*n*>)
    in ( 
    dom T); 
    
              then
    
              reconsider s = (t
    ^  
    <*n*>), t9 = t as
    Element of ( 
    dom T) by 
    TREES_1: 21;
    
              (
    len s) 
    <= k & ( 
    len s) 
    = (( 
    len t) 
    + 1) by 
    A4,
    FINSEQ_2: 16;
    
              then (
    len t) 
    < k by 
    NAT_1: 13;
    
              then (
    succ t9) 
    = { (t9 
    ^  
    <*m*>) : m
    in F(.) } by 
    A4;
    
              hence thesis by
    A49,
    A50,
    A52;
    
            end;
    
              suppose not (t
    ^  
    <*n*>)
    in ( 
    dom T); 
    
              then (t
    ^  
    <*n*>)
    in { (s 
    ^  
    <*l*>) where s be
    Element of ( 
    dom T) : l 
    in F(.) } by 
    A27,
    A51,
    XBOOLE_0:def 3;
    
              then
    
              consider l be
    Nat, s be 
    Element of ( 
    dom T) such that 
    
              
    
    A53: (t 
    ^  
    <*n*>)
    = (s 
    ^  
    <*l*>) and
    
              
    
    A54: l 
    in F(.); 
    
              t
    = s by 
    A53,
    FINSEQ_2: 17;
    
              hence thesis by
    A49,
    A50,
    A53,
    A54;
    
            end;
    
          end;
    
          hence thesis;
    
        end;
    
        thus
    
        
    
    A55: { (t 
    ^  
    <*i*>) : i
    in F(.) } 
    c= ( 
    succ t) 
    
        proof
    
          let x be
    object;
    
          assume x
    in { (t 
    ^  
    <*i*>) : i
    in F(.) }; 
    
          then
    
          consider n such that
    
          
    
    A56: x 
    = (t 
    ^  
    <*n*>) and
    
          
    
    A57: n 
    in F(.); 
    
          x
    = (t9 
    ^  
    <*n*>) by
    A56;
    
          then x
    in { (s 
    ^  
    <*l*>) where s be
    Element of ( 
    dom T) : l 
    in F(.) } by 
    A49,
    A57;
    
          then x
    in ( 
    dom T9) by 
    A27,
    XBOOLE_0:def 3;
    
          hence thesis by
    A56;
    
        end;
    
        let n, x;
    
        assume that
    
        
    
    A58: x 
    = (T9 
    . t) and 
    
        
    
    A59: n 
    in F(x); 
    
        (t
    ^  
    <*n*>)
    in { (t 
    ^  
    <*i*>) : i
    in F(.) } by 
    A58,
    A59;
    
        then
    
        
    
    A60: (t 
    ^  
    <*n*>)
    in ( 
    succ t) by 
    A55;
    
        reconsider n as
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
        now
    
          per cases ;
    
            suppose
    
            
    
    A61: (t 
    ^  
    <*n*>)
    in ( 
    dom T); 
    
            then
    
            reconsider s = (t
    ^  
    <*n*>) as
    Element of ( 
    dom T); 
    
            (
    len s) 
    <= k & ( 
    len s) 
    = (( 
    len t) 
    + 1) by 
    A4,
    FINSEQ_2: 16;
    
            then (
    len t9) 
    < k by 
    NAT_1: 13;
    
            then (T
    . (t9 
    ^  
    <*n*>))
    = (S() 
    . (x,n)) by 
    A4,
    A49,
    A58,
    A59;
    
            hence thesis by
    A27,
    A60,
    A61;
    
          end;
    
            suppose not (t
    ^  
    <*n*>)
    in ( 
    dom T); 
    
            then
    
            consider l, q such that
    
            
    
    A62: (t 
    ^  
    <*n*>)
    = (q 
    ^  
    <*l*>) and
    
            
    
    A63: (T9 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . ((T 
    . q),l)) by 
    A27,
    A60;
    
            t
    = q & n 
    = l by 
    A62,
    FINSEQ_2: 17;
    
            hence thesis by
    A27,
    A44,
    A58,
    A63;
    
          end;
    
        end;
    
        hence thesis;
    
      end;
    
      
    
      
    
    A64: 
    P[k] from
    NAT_1:sch 2(
    A2,
    A3);
    
      defpred
    
    P[
    object, 
    object] means ex T be
    DecoratedTree of D(), k st $1 
    = k & $2 
    = T & (T 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T) holds ( 
    len t) 
    <= k & (( 
    len t) 
    < k implies ( 
    succ t) 
    = { (t 
    ^  
    <*i*>) : i
    in F(.) } & for n, x st x 
    = (T 
    . t) & n 
    in F(x) holds (T 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))); 
    
      
    
      
    
    A65: for x be 
    object st x 
    in  
    NAT holds ex y be 
    object st 
    P[x, y]
    
      proof
    
        let x be
    object;
    
        assume x
    in  
    NAT ; 
    
        then
    
        reconsider N = x as
    Nat;
    
        consider T be
    DecoratedTree of D() such that 
    
        
    
    A66: (T 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T) holds ( 
    len t) 
    <= N & (( 
    len t) 
    < N implies ( 
    succ t) 
    = { (t 
    ^  
    <*k*>) : k
    in F(.) } & for n, x st x 
    = (T 
    . t) & n 
    in F(x) holds (T 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))) by 
    A64;
    
        reconsider y = T as
    set;
    
        take y, T, N;
    
        thus thesis by
    A66;
    
      end;
    
      consider f such that
    
      
    
    A67: ( 
    dom f) 
    =  
    NAT & for x be 
    object st x 
    in  
    NAT holds 
    P[x, (f
    . x)] from 
    CLASSES1:sch 1(
    A65);
    
      
    
      
    
    A68: for x be 
    Nat holds 
    P[x, (f
    . x)] by 
    ORDINAL1:def 12,
    A67;
    
      reconsider E = (
    rng f) as non 
    empty  
    set by 
    A67,
    RELAT_1: 42;
    
      
    
      
    
    A69: for x st x 
    in E holds x is 
    DecoratedTree of D() 
    
      proof
    
        let x;
    
        assume x
    in E; 
    
        then
    
        consider y be
    object such that 
    
        
    
    A70: y 
    in ( 
    dom f) and 
    
        
    
    A71: x 
    = (f 
    . y) by 
    FUNCT_1:def 3;
    
        ex T be
    DecoratedTree of D(), k st y 
    = k & (f 
    . y) 
    = T & (T 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T) holds ( 
    len t) 
    <= k & (( 
    len t) 
    < k implies ( 
    succ t) 
    = { (t 
    ^  
    <*i*>) : i
    in F(.) } & for n, x st x 
    = (T 
    . t) & n 
    in F(x) holds (T 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))) by 
    A67,
    A70;
    
        hence thesis by
    A71;
    
      end;
    
      
    
      
    
    A72: for T1, T2, k1, k2 st T1 
    = (f 
    . k1) & T2 
    = (f 
    . k2) & k1 
    <= k2 holds T1 
    c= T2 
    
      proof
    
        let T1, T2;
    
        let x,y be
    Nat such that 
    
        
    
    A73: T1 
    = (f 
    . x) and 
    
        
    
    A74: T2 
    = (f 
    . y) and 
    
        
    
    A75: x 
    <= y; 
    
        consider T19 be
    DecoratedTree of D(), k1 such that 
    
        
    
    A76: x 
    = k1 & (f 
    . x) 
    = T19 & (T19 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T19) holds ( 
    len t) 
    <= k1 & (( 
    len t) 
    < k1 implies ( 
    succ t) 
    = { (t 
    ^  
    <*i*>) : i
    in F(.) } & for n, x st x 
    = (T19 
    . t) & n 
    in F(x) holds (T19 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))) by 
    A68;
    
        consider T29 be
    DecoratedTree of D(), k2 such that 
    
        
    
    A77: y 
    = k2 & (f 
    . y) 
    = T29 & (T29 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T29) holds ( 
    len t) 
    <= k2 & (( 
    len t) 
    < k2 implies ( 
    succ t) 
    = { (t 
    ^  
    <*i*>) : i
    in F(.) } & for n, x st x 
    = (T29 
    . t) & n 
    in F(x) holds (T29 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))) by 
    A68;
    
        defpred
    
    I[
    Nat] means for t be
    Element of ( 
    dom T1) st ( 
    len t) 
    <= $1 holds t 
    in ( 
    dom T2) & (T1 
    . t) 
    = (T2 
    . t); 
    
        
    
        
    
    A78: 
    I[
    0 ] 
    
        proof
    
          let t be
    Element of ( 
    dom T1) such that 
    
          
    
    A79: ( 
    len t) 
    <=  
    0 ; 
    
          t
    =  
    {} by 
    A79;
    
          hence thesis by
    A73,
    A74,
    A76,
    A77,
    TREES_1: 22;
    
        end;
    
        
    
        
    
    A80: 
    I[k] implies
    I[(k
    + 1)] 
    
        proof
    
          assume
    
          
    
    A81: for t be 
    Element of ( 
    dom T1) st ( 
    len t) 
    <= k holds t 
    in ( 
    dom T2) & (T1 
    . t) 
    = (T2 
    . t); 
    
          let t be
    Element of ( 
    dom T1); 
    
          assume (
    len t) 
    <= (k 
    + 1); 
    
          then
    
          
    
    A82: ( 
    len t) 
    <= k or ( 
    len t) 
    = (k 
    + 1) by 
    NAT_1: 8;
    
          now
    
            assume
    
            
    
    A83: ( 
    len t) 
    = (k 
    + 1); 
    
            reconsider p = (t
    | ( 
    Seg k)) as 
    FinSequence of 
    NAT by 
    FINSEQ_1: 18;
    
            p
    is_a_prefix_of t; 
    
            then
    
            reconsider p as
    Element of ( 
    dom T1) by 
    TREES_1: 20;
    
            
    
            
    
    A84: k 
    <= (k 
    + 1) by 
    NAT_1: 11;
    
            
    
            
    
    A85: (k 
    + 1) 
    <= k1 by 
    A73,
    A76,
    A83;
    
            
    
            
    
    A86: ( 
    len p) 
    = k by 
    A83,
    A84,
    FINSEQ_1: 17;
    
            
    
            
    
    A87: k 
    < k1 by 
    A85,
    NAT_1: 13;
    
            
    
            
    
    A88: (T1 
    . p) 
    = (T2 
    . p) by 
    A81,
    A86;
    
            reconsider p9 = p as
    Element of ( 
    dom T2) by 
    A81,
    A86;
    
            t
    <>  
    {} by 
    A83;
    
            then
    
            consider q be
    FinSequence, x be 
    object such that 
    
            
    
    A89: t 
    = (q 
    ^  
    <*x*>) by
    FINSEQ_1: 46;
    
            
    
            
    
    A90: p 
    is_a_prefix_of t & q 
    is_a_prefix_of t by 
    A89,
    TREES_1: 1;
    
            (k
    + 1) 
    = (( 
    len q) 
    + 1) by 
    A83,
    A89,
    FINSEQ_2: 16;
    
            then
    
            
    
    A91: p 
    = q by 
    A86,
    A90,
    Th1,
    TREES_1: 4;
    
            
    <*x*> is
    FinSequence of 
    NAT by 
    A89,
    FINSEQ_1: 36;
    
            then
    
            
    
    A92: ( 
    rng  
    <*x*>)
    c=  
    NAT by 
    FINSEQ_1:def 4;
    
            (
    rng  
    <*x*>)
    =  
    {x} & x
    in  
    {x} by
    FINSEQ_1: 38,
    TARSKI:def 1;
    
            then
    
            reconsider x as
    Nat by 
    A92;
    
            
    
            
    
    A93: (p 
    ^  
    <*x*>)
    in ( 
    succ p) by 
    A89,
    A91;
    
            (
    succ p) 
    = { (p 
    ^  
    <*i*>) : i
    in F(.) } by 
    A73,
    A76,
    A86,
    A87;
    
            then
    
            consider i such that
    
            
    
    A94: (p 
    ^  
    <*x*>)
    = (p 
    ^  
    <*i*>) and
    
            
    
    A95: i 
    in F(.) by 
    A93;
    
            
    
            
    
    A96: k 
    < k2 by 
    A75,
    A76,
    A77,
    A87,
    XXREAL_0: 2;
    
            then
    
            
    
    A97: ( 
    succ p9) 
    = { (p9 
    ^  
    <*l*>) : l
    in F(.) } by 
    A74,
    A77,
    A86;
    
            
    
            
    
    A98: x 
    = i by 
    A94,
    FINSEQ_2: 17;
    
            
    
            
    
    A99: t 
    in ( 
    succ p9) by 
    A88,
    A89,
    A91,
    A94,
    A95,
    A97;
    
            (T19
    . t) 
    = (S() 
    . ((T19 
    . p),x)) by 
    A73,
    A76,
    A86,
    A87,
    A89,
    A91,
    A95,
    A98;
    
            hence thesis by
    A73,
    A74,
    A76,
    A77,
    A86,
    A88,
    A89,
    A91,
    A95,
    A96,
    A98,
    A99;
    
          end;
    
          hence thesis by
    A81,
    A82;
    
        end;
    
        
    
        
    
    A100: 
    I[k] from
    NAT_1:sch 2(
    A78,
    A80);
    
        let x be
    object;
    
        assume
    
        
    
    A101: x 
    in T1; 
    
        then
    
        consider y,z be
    object such that 
    
        
    
    A102: 
    [y, z]
    = x by 
    RELAT_1:def 1;
    
        
    
        
    
    A103: (T1 
    . y) 
    = z by 
    A101,
    A102,
    FUNCT_1: 1;
    
        reconsider y as
    Element of ( 
    dom T1) by 
    A101,
    A102,
    FUNCT_1: 1;
    
        (
    len y) 
    <= ( 
    len y); 
    
        then y
    in ( 
    dom T2) & (T1 
    . y) 
    = (T2 
    . y) by 
    A100;
    
        hence thesis by
    A102,
    A103,
    FUNCT_1: 1;
    
      end;
    
      E is
    c=-linear
    
      proof
    
        let T1,T2 be
    set;
    
        assume
    
        
    
    A104: T1 
    in E; 
    
        then
    
        consider x be
    object such that 
    
        
    
    A105: x 
    in ( 
    dom f) and 
    
        
    
    A106: T1 
    = (f 
    . x) by 
    FUNCT_1:def 3;
    
        assume
    
        
    
    A107: T2 
    in E; 
    
        then
    
        consider y be
    object such that 
    
        
    
    A108: y 
    in ( 
    dom f) and 
    
        
    
    A109: T2 
    = (f 
    . y) by 
    FUNCT_1:def 3;
    
        
    
        
    
    A110: T1 is 
    DecoratedTree by 
    A69,
    A104;
    
        
    
        
    
    A111: T2 is 
    DecoratedTree by 
    A69,
    A107;
    
        reconsider x, y as
    Nat by 
    A67,
    A105,
    A108;
    
        x
    <= y or y 
    <= x; 
    
        hence T1
    c= T2 or T2 
    c= T1 by 
    A72,
    A106,
    A109,
    A110,
    A111;
    
      end;
    
      then
    
      reconsider T = (
    union ( 
    rng f)) as 
    DecoratedTree of D() by 
    A69,
    Th36;
    
      take T;
    
      consider T9 be
    DecoratedTree of D(), k such that 
    
      
    
    A112: 
    0  
    = k & (f 
    .  
    0 ) 
    = T9 & (T9 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T9) holds ( 
    len t) 
    <= k & (( 
    len t) 
    < k implies ( 
    succ t) 
    = { (t 
    ^  
    <*i*>) : i
    in F(.) } & for n, x st x 
    = (T9 
    . t) & n 
    in F(x) holds (T9 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))) by 
    A67;
    
      
    {}  
    in ( 
    dom T9) by 
    TREES_1: 22;
    
      then
    
      
    
    A113: 
    [
    {} , d()] 
    in T9 by 
    A112,
    FUNCT_1: 1;
    
      T9
    in ( 
    rng f) by 
    A67,
    A112,
    FUNCT_1:def 3;
    
      then
    [
    {} , d()] 
    in T by 
    A113,
    TARSKI:def 4;
    
      hence (T
    .  
    {} ) 
    = d() by 
    FUNCT_1: 1;
    
      
    
      
    
    A114: for T1, x st T1 
    in E & x 
    in ( 
    dom T1) holds x 
    in ( 
    dom T) & (T1 
    . x) 
    = (T 
    . x) 
    
      proof
    
        let T1, x;
    
        assume that
    
        
    
    A115: T1 
    in E and 
    
        
    
    A116: x 
    in ( 
    dom T1); 
    
        
    [x, (T1
    . x)] 
    in T1 by 
    A116,
    FUNCT_1: 1;
    
        then
    [x, (T1
    . x)] 
    in T by 
    A115,
    TARSKI:def 4;
    
        hence thesis by
    FUNCT_1: 1;
    
      end;
    
      let t be
    Element of ( 
    dom T); 
    
      thus (
    succ t) 
    c= { (t 
    ^  
    <*i*>) : i
    in F(.) } 
    
      proof
    
        let x be
    object;
    
        assume x
    in ( 
    succ t); 
    
        then
    
        consider l such that
    
        
    
    A117: x 
    = (t 
    ^  
    <*l*>) and
    
        
    
    A118: (t 
    ^  
    <*l*>)
    in ( 
    dom T); 
    
        
    [x, (T
    . x)] 
    in T by 
    A117,
    A118,
    FUNCT_1: 1;
    
        then
    
        consider X such that
    
        
    
    A119: 
    [x, (T
    . x)] 
    in X and 
    
        
    
    A120: X 
    in ( 
    rng f) by 
    TARSKI:def 4;
    
        consider y be
    object such that 
    
        
    
    A121: y 
    in  
    NAT and 
    
        
    
    A122: X 
    = (f 
    . y) by 
    A67,
    A120,
    FUNCT_1:def 3;
    
        consider T1 be
    DecoratedTree of D(), k1 such that 
    
        
    
    A123: y 
    = k1 & (f 
    . y) 
    = T1 & (T1 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T1) holds ( 
    len t) 
    <= k1 & (( 
    len t) 
    < k1 implies ( 
    succ t) 
    = { (t 
    ^  
    <*i*>) : i
    in F(.) } & for n, x st x 
    = (T1 
    . t) & n 
    in F(x) holds (T1 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))) by 
    A67,
    A121;
    
        
    
        
    
    A124: (t 
    ^  
    <*l*>)
    in ( 
    dom T1) by 
    A117,
    A119,
    A122,
    A123,
    FUNCT_1: 1;
    
        then
    
        reconsider t9 = t, p = (t
    ^  
    <*l*>) as
    Element of ( 
    dom T1) by 
    TREES_1: 21;
    
        (
    len p) 
    <= k1 by 
    A123;
    
        then ((
    len t) 
    + 1) 
    <= k1 by 
    FINSEQ_2: 16;
    
        then
    
        
    
    A125: ( 
    len t9) 
    < k1 by 
    NAT_1: 13;
    
        then
    
        
    
    A126: ( 
    succ t9) 
    = { (t9 
    ^  
    <*i*>) : i
    in F(.) } by 
    A123;
    
        (T1
    . t) 
    = (T 
    . t) by 
    A114,
    A120,
    A122,
    A123,
    A125;
    
        hence thesis by
    A117,
    A124,
    A126;
    
      end;
    
      
    [t, (T
    . t)] 
    in T by 
    FUNCT_1: 1;
    
      then
    
      consider X such that
    
      
    
    A127: 
    [t, (T
    . t)] 
    in X and 
    
      
    
    A128: X 
    in E by 
    TARSKI:def 4;
    
      consider y be
    object such that 
    
      
    
    A129: y 
    in  
    NAT and 
    
      
    
    A130: X 
    = (f 
    . y) by 
    A67,
    A128,
    FUNCT_1:def 3;
    
      reconsider y as
    Nat by 
    A129;
    
      consider T1 be
    DecoratedTree of D(), k1 such that 
    
      
    
    A131: y 
    = k1 & (f 
    . y) 
    = T1 & (T1 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T1) holds ( 
    len t) 
    <= k1 & (( 
    len t) 
    < k1 implies ( 
    succ t) 
    = { (t 
    ^  
    <*i*>) : i
    in F(.) } & for n, x st x 
    = (T1 
    . t) & n 
    in F(x) holds (T1 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))) by 
    A68;
    
      consider T2 be
    DecoratedTree of D(), k2 such that 
    
      
    
    A132: (y 
    + 1) 
    = k2 & (f 
    . (y 
    + 1)) 
    = T2 & (T2 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T2) holds ( 
    len t) 
    <= k2 & (( 
    len t) 
    < k2 implies ( 
    succ t) 
    = { (t 
    ^  
    <*i*>) : i
    in F(.) } & for n, x st x 
    = (T2 
    . t) & n 
    in F(x) holds (T2 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))) by 
    A67;
    
      y
    <= (y 
    + 1) by 
    NAT_1: 11;
    
      then
    
      
    
    A133: T1 
    c= T2 by 
    A72,
    A131,
    A132;
    
      reconsider t1 = t as
    Element of ( 
    dom T1) by 
    A127,
    A130,
    A131,
    FUNCT_1: 1;
    
      
    
      
    
    A134: ( 
    len t1) 
    <= y by 
    A131;
    
      
    
      
    
    A135: (T2 
    . t) 
    = (T 
    . t) by 
    A127,
    A130,
    A131,
    A133,
    FUNCT_1: 1;
    
      reconsider t2 = t as
    Element of ( 
    dom T2) by 
    A127,
    A130,
    A131,
    A133,
    FUNCT_1: 1;
    
      
    
      
    
    A136: ( 
    len t2) 
    < (y 
    + 1) by 
    A134,
    NAT_1: 13;
    
      then
    
      
    
    A137: ( 
    succ t2) 
    = { (t2 
    ^  
    <*i*>) : i
    in F(.) } by 
    A132;
    
      thus { (t
    ^  
    <*i*>) : i
    in F(.) } 
    c= ( 
    succ t) 
    
      proof
    
        let x be
    object;
    
        assume
    
        
    
    A138: x 
    in { (t 
    ^  
    <*i*>) : i
    in F(.) }; 
    
        then
    
        
    
    A139: ex l st x 
    = (t 
    ^  
    <*l*>) & l
    in F(.); 
    
        
    
        
    
    A140: x 
    in ( 
    succ t2) by 
    A132,
    A135,
    A136,
    A138;
    
        T2
    in E by 
    A67,
    A132,
    FUNCT_1:def 3;
    
        then x
    in ( 
    dom T) by 
    A114,
    A140;
    
        hence thesis by
    A139;
    
      end;
    
      let n;
    
      assume
    
      
    
    A141: n 
    in F(.); 
    
      then
    
      
    
    A142: (t 
    ^  
    <*n*>)
    in ( 
    succ t2) by 
    A135,
    A137;
    
      T2
    in E by 
    A67,
    A132,
    FUNCT_1:def 3;
    
      then (T2
    . (t 
    ^  
    <*n*>))
    = (T 
    . (t 
    ^  
    <*n*>)) by
    A114,
    A142;
    
      hence thesis by
    A132,
    A135,
    A136,
    A141;
    
    end;
    
    scheme :: 
    
    TREES_2:sch9
    
    DTreeStructFinEx { D() -> non
    empty  
    set , d() -> 
    Element of D() , F( 
    set) ->
    Nat , S() -> 
    Function of 
    [:D(),
    NAT :], D() } : 
    
ex T be 
    DecoratedTree of D() st (T 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T) holds ( 
    succ t) 
    = { (t 
    ^  
    <*k*>) : k
    < F(.) } & for n st n 
    < F(.) holds (T 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . ((T 
    . t),n)); 
    
      deffunc
    
    FF(
    Nat) = { i : i
    < $1 }; 
    
      deffunc
    
    U(
    set) =
    FF(F);
    
      
    
      
    
    A1: for d be 
    Element of D(), k1, k2 st k1 
    <= k2 & k2 
    in  
    U(d) holds k1
    in  
    U(d)
    
      proof
    
        let d be
    Element of D(), k1, k2; 
    
        assume
    
        
    
    A2: k1 
    <= k2 & k2 
    in { i : i 
    < F(d) }; 
    
        then ex i st k2
    = i & i 
    < F(d); 
    
        then k1
    < F(d) by 
    A2,
    XXREAL_0: 2;
    
        hence thesis;
    
      end;
    
      consider T be
    DecoratedTree of D() such that 
    
      
    
    A3: (T 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T) holds ( 
    succ t) 
    = { (t 
    ^  
    <*k*>) : k
    in  
    U(.) } & for n st n
    in  
    U(.) holds (T
    . (t 
    ^  
    <*n*>))
    = (S() 
    . ((T 
    . t),n)) from 
    DTreeStructEx(
    A1);
    
      take T;
    
      thus (T
    .  
    {} ) 
    = d() by 
    A3;
    
      let t be
    Element of ( 
    dom T); 
    
      
    
      
    
    A4: ( 
    succ t) 
    = { (t 
    ^  
    <*k*>) : k
    in  
    FF(F) } by
    A3;
    
      thus (
    succ t) 
    c= { (t 
    ^  
    <*i*>) : i
    < F(.) } 
    
      proof
    
        let x be
    object;
    
        assume x
    in ( 
    succ t); 
    
        then
    
        consider l such that
    
        
    
    A5: x 
    = (t 
    ^  
    <*l*>) and
    
        
    
    A6: l 
    in  
    FF(F) by
    A4;
    
        ex i st l
    = i & i 
    < F(.) by 
    A6;
    
        hence thesis by
    A5;
    
      end;
    
      thus { (t
    ^  
    <*i*>) : i
    < F(.) } 
    c= ( 
    succ t) 
    
      proof
    
        let x be
    object;
    
        assume x
    in { (t 
    ^  
    <*i*>) : i
    < F(.) }; 
    
        then
    
        consider l such that
    
        
    
    A7: x 
    = (t 
    ^  
    <*l*>) and
    
        
    
    A8: l 
    < F(.); 
    
        l
    in  
    FF(F) by
    A8;
    
        hence thesis by
    A4,
    A7;
    
      end;
    
      let n;
    
      assume n
    < F(.); 
    
      then n
    in  
    FF(F);
    
      hence thesis by
    A3;
    
    end;
    
    begin
    
    registration
    
      let Tr be
    finite  
    Tree, v be 
    Element of Tr; 
    
      cluster ( 
    succ v) -> 
    finite;
    
      coherence ;
    
    end
    
    definition
    
      let Tr be
    finite  
    Tree, v be 
    Element of Tr; 
    
      :: 
    
    TREES_2:def12
    
      func
    
    branchdeg v -> 
    set equals ( 
    card ( 
    succ v)); 
    
      correctness ;
    
    end
    
    registration
    
      cluster 
    finite for 
    DecoratedTree;
    
      existence
    
      proof
    
        reconsider T =
    {
    {} } as 
    Tree;
    
        take (T
    -->  
    {} ); 
    
        thus thesis;
    
      end;
    
    end
    
    registration
    
      let D be non
    empty  
    set;
    
      cluster 
    finite for 
    DecoratedTree of D; 
    
      existence
    
      proof
    
        set d = the
    Element of D; 
    
        reconsider T =
    {
    {} } as 
    Tree;
    
        take (T
    --> d); 
    
        thus thesis;
    
      end;
    
    end
    
    registration
    
      let a,b be non
    empty  
    set;
    
      cluster non 
    empty for 
    Relation of a, b; 
    
      existence
    
      proof
    
        
    [:a, b:]
    c=  
    [:a, b:];
    
        hence thesis;
    
      end;
    
    end
    
    reserve x1,x2 for
    set, 
    
w for
    FinSequence of 
    NAT ; 
    
    theorem :: 
    
    TREES_2:37
    
    for Z1,Z2 be
    Tree, p be 
    FinSequence of 
    NAT st p 
    in Z1 holds for v be 
    Element of (Z1 
    with-replacement (p,Z2)), w be 
    Element of Z2 st v 
    = (p 
    ^ w) holds (( 
    succ v),( 
    succ w)) 
    are_equipotent  
    
    proof
    
      let Z1,Z2 be
    Tree, p be 
    FinSequence of 
    NAT such that 
    
      
    
    A1: p 
    in Z1; 
    
      set T = (Z1
    with-replacement (p,Z2)); 
    
      let t be
    Element of (Z1 
    with-replacement (p,Z2)), t2 be 
    Element of Z2; 
    
      assume
    
      
    
    A2: t 
    = (p 
    ^ t2); 
    
      then
    
      
    
    A3: p 
    is_a_prefix_of t by 
    TREES_1: 1;
    
      
    
      
    
    A4: for n holds (t 
    ^  
    <*n*>)
    in T iff (t2 
    ^  
    <*n*>)
    in Z2 
    
      proof
    
        let n;
    
        
    
        
    
    A5: p 
    is_a_proper_prefix_of (t 
    ^  
    <*n*>) by
    A3,
    TREES_1: 8;
    
        reconsider nn = n as
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
        
    
        
    
    A6: (t 
    ^  
    <*nn*>)
    = (p 
    ^ (t2 
    ^  
    <*nn*>)) by
    A2,
    FINSEQ_1: 32;
    
        thus (t
    ^  
    <*n*>)
    in T implies (t2 
    ^  
    <*n*>)
    in Z2 
    
        proof
    
          assume
    
          
    
    A7: (t 
    ^  
    <*n*>)
    in T; 
    
          reconsider n as
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
          ex w st w
    in Z2 & (t 
    ^  
    <*n*>)
    = (p 
    ^ w) by 
    A1,
    A5,
    TREES_1:def 9,
    A7;
    
          hence thesis by
    A6,
    FINSEQ_1: 33;
    
        end;
    
        assume (t2
    ^  
    <*n*>)
    in Z2; 
    
        hence thesis by
    A1,
    A6,
    TREES_1:def 9;
    
      end;
    
      defpred
    
    P[
    object, 
    object] means for n st $1
    = (t 
    ^  
    <*n*>) holds $2
    = (t2 
    ^  
    <*n*>);
    
      
    
      
    
    A8: for x be 
    object st x 
    in ( 
    succ t) holds ex y be 
    object st 
    P[x, y]
    
      proof
    
        let x be
    object;
    
        assume x
    in ( 
    succ t); 
    
        then
    
        consider n such that
    
        
    
    A9: x 
    = (t 
    ^  
    <*n*>) and (t
    ^  
    <*n*>)
    in T; 
    
        take (t2
    ^  
    <*n*>);
    
        let m;
    
        assume x
    = (t 
    ^  
    <*m*>);
    
        hence thesis by
    A9,
    FINSEQ_1: 33;
    
      end;
    
      consider f be
    Function such that 
    
      
    
    A10: ( 
    dom f) 
    = ( 
    succ t) & for x be 
    object st x 
    in ( 
    succ t) holds 
    P[x, (f
    . x)] from 
    CLASSES1:sch 1(
    A8);
    
      now
    
        let x be
    object;
    
        thus x
    in ( 
    rng f) implies x 
    in ( 
    succ t2) 
    
        proof
    
          assume x
    in ( 
    rng f); 
    
          then
    
          consider y be
    object such that 
    
          
    
    A11: y 
    in ( 
    dom f) and 
    
          
    
    A12: x 
    = (f 
    . y) by 
    FUNCT_1:def 3;
    
          consider n such that
    
          
    
    A13: y 
    = (t 
    ^  
    <*n*>) and
    
          
    
    A14: (t 
    ^  
    <*n*>)
    in T by 
    A10,
    A11;
    
          
    
          
    
    A15: x 
    = (t2 
    ^  
    <*n*>) by
    A10,
    A11,
    A12,
    A13;
    
          (t2
    ^  
    <*n*>)
    in Z2 by 
    A4,
    A14;
    
          hence thesis by
    A15;
    
        end;
    
        assume x
    in ( 
    succ t2); 
    
        then
    
        consider n such that
    
        
    
    A16: x 
    = (t2 
    ^  
    <*n*>) and
    
        
    
    A17: (t2 
    ^  
    <*n*>)
    in Z2; 
    
        (t
    ^  
    <*n*>)
    in T by 
    A4,
    A17;
    
        then
    
        
    
    A18: (t 
    ^  
    <*n*>)
    in ( 
    dom f) by 
    A10;
    
        then (f
    . (t 
    ^  
    <*n*>))
    = x by 
    A10,
    A16;
    
        hence x
    in ( 
    rng f) by 
    A18,
    FUNCT_1:def 3;
    
      end;
    
      then
    
      
    
    A19: ( 
    rng f) 
    = ( 
    succ t2) by 
    TARSKI: 2;
    
      f is
    one-to-one
    
      proof
    
        let x1,x2 be
    object;
    
        assume that
    
        
    
    A20: x1 
    in ( 
    dom f) and 
    
        
    
    A21: x2 
    in ( 
    dom f) and 
    
        
    
    A22: (f 
    . x1) 
    = (f 
    . x2); 
    
        consider m such that
    
        
    
    A23: x1 
    = (t 
    ^  
    <*m*>) and (t
    ^  
    <*m*>)
    in T by 
    A10,
    A20;
    
        consider k such that
    
        
    
    A24: x2 
    = (t 
    ^  
    <*k*>) and (t
    ^  
    <*k*>)
    in T by 
    A10,
    A21;
    
        (t2
    ^  
    <*m*>)
    = (f 
    . x1) by 
    A10,
    A20,
    A23
    
        .= (t2
    ^  
    <*k*>) by
    A10,
    A21,
    A22,
    A24;
    
        hence thesis by
    A23,
    A24,
    FINSEQ_1: 33;
    
      end;
    
      hence thesis by
    A10,
    A19,
    WELLORD2:def 4;
    
    end;
    
    scheme :: 
    
    TREES_2:sch10
    
    DTreeStructEx { D() -> non
    empty  
    set , d() -> 
    Element of D() , Q[ 
    set, 
    set], S() ->
    Function of 
    [:D(),
    NAT :], D() } : 
    
ex T be 
    DecoratedTree of D() st (T 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T) holds ( 
    succ t) 
    = { (t 
    ^  
    <*k*>) : Q[k, (T
    . t)] } & for n st Q[n, (T 
    . t)] holds (T 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . ((T 
    . t),n)) 
    
      provided
    
      
    
    A1: for d be 
    Element of D(), k1, k2 st k1 
    <= k2 & Q[k2, d] holds Q[k1, d]; 
    
      defpred
    
    P[
    Nat] means ex T be
    DecoratedTree of D() st (T 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T) holds ( 
    len t) 
    <= $1 & (( 
    len t) 
    < $1 implies ( 
    succ t) 
    = { (t 
    ^  
    <*k*>) : Q[k, (T
    . t)] } & for n, x st x 
    = (T 
    . t) & Q[n, x] holds (T 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))); 
    
      reconsider W =
    {
    {} } as 
    Tree;
    
      
    
      
    
    A2: 
    P[
    0 ] 
    
      proof
    
        take T1 = (W
    --> d()); 
    
        
    {}  
    in W by 
    TREES_1: 22;
    
        hence (T1
    .  
    {} ) 
    = d() by 
    FUNCOP_1: 7;
    
        let t be
    Element of ( 
    dom T1); 
    
        t
    =  
    {} by 
    TARSKI:def 1;
    
        hence (
    len t) 
    <=  
    0 ; 
    
        assume (
    len t) 
    <  
    0 ; 
    
        hence thesis;
    
      end;
    
      
    
      
    
    A3: 
    P[k] implies
    P[(k
    + 1)] 
    
      proof
    
        given T be
    DecoratedTree of D() such that 
    
        
    
    A4: (T 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T) holds ( 
    len t) 
    <= k & (( 
    len t) 
    < k implies ( 
    succ t) 
    = { (t 
    ^  
    <*m*>) : Q[m, (T
    . t)] } & for n, x st x 
    = (T 
    . t) & Q[n, x] holds (T 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))); 
    
        reconsider M = ({ (t
    ^  
    <*n*>) where t be
    Element of ( 
    dom T) : Q[n, (T 
    . t)] } 
    \/ ( 
    dom T)) as non 
    empty  
    set;
    
        M is
    Tree-like
    
        proof
    
          thus M
    c= ( 
    NAT  
    * ) 
    
          proof
    
            let x be
    object;
    
            assume x
    in M; 
    
            then
    
            
    
    A5: x 
    in { (t 
    ^  
    <*n*>) where t be
    Element of ( 
    dom T) : Q[n, (T 
    . t)] } or x 
    in ( 
    dom T) & ( 
    dom T) 
    c= ( 
    NAT  
    * ) by 
    TREES_1:def 3,
    XBOOLE_0:def 3;
    
            assume
    
            
    
    A6: not x 
    in ( 
    NAT  
    * ); 
    
            then
    
            consider n be
    Nat, t be 
    Element of ( 
    dom T) such that 
    
            
    
    A7: x 
    = (t 
    ^  
    <*n*>) & Q[n, (T
    . t)] by 
    A5;
    
            reconsider n as
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
            x
    = (t 
    ^  
    <*n*>) by
    A7;
    
            hence thesis by
    A6,
    FINSEQ_1:def 11;
    
          end;
    
          thus for p st p
    in M holds ( 
    ProperPrefixes p) 
    c= M 
    
          proof
    
            let p;
    
            assume p
    in M; 
    
            then
    
            
    
    A8: p 
    in { (t 
    ^  
    <*n*>) where t be
    Element of ( 
    dom T) : Q[n, (T 
    . t)] } or p 
    in ( 
    dom T) by 
    XBOOLE_0:def 3;
    
            now
    
              assume p
    in { (t 
    ^  
    <*n*>) where t be
    Element of ( 
    dom T) : Q[n, (T 
    . t)] }; 
    
              then
    
              consider n be
    Nat, t be 
    Element of ( 
    dom T) such that 
    
              
    
    A9: p 
    = (t 
    ^  
    <*n*>) and Q[n, (T
    . t)]; 
    
              
    
              
    
    A10: ( 
    ProperPrefixes t) 
    c= ( 
    dom T) by 
    TREES_1:def 3;
    
              
    
              
    
    A11: ( 
    dom T) 
    c= M by 
    XBOOLE_1: 7;
    
              
    
              
    
    A12: ( 
    ProperPrefixes t) 
    c= M by 
    A10,
    A11;
    
              
    
              
    
    A13: 
    {t}
    c= M by 
    A11,
    ZFMISC_1: 31;
    
              (
    ProperPrefixes p) 
    = (( 
    ProperPrefixes t) 
    \/  
    {t}) by
    A9,
    Th4;
    
              hence thesis by
    A12,
    A13,
    XBOOLE_1: 8;
    
            end;
    
            then (
    ProperPrefixes p) 
    c= M or ( 
    ProperPrefixes p) 
    c= ( 
    dom T) & ( 
    dom T) 
    c= M by 
    A8,
    TREES_1:def 3,
    XBOOLE_1: 7;
    
            hence thesis;
    
          end;
    
          let p, m, n;
    
          assume (p
    ^  
    <*m*>)
    in M; 
    
          then
    
          
    
    A14: (p 
    ^  
    <*m*>)
    in { (t 
    ^  
    <*l*>) where t be
    Element of ( 
    dom T) : Q[l, (T 
    . t)] } or (p 
    ^  
    <*m*>)
    in ( 
    dom T) by 
    XBOOLE_0:def 3;
    
          assume that
    
          
    
    A15: n 
    <= m and 
    
          
    
    A16: not (p 
    ^  
    <*n*>)
    in M; 
    
           not (p
    ^  
    <*n*>)
    in ( 
    dom T) by 
    A16,
    XBOOLE_0:def 3;
    
          then
    
          consider l be
    Nat, t be 
    Element of ( 
    dom T) such that 
    
          
    
    A17: (p 
    ^  
    <*m*>)
    = (t 
    ^  
    <*l*>) and
    
          
    
    A18: Q[l, (T 
    . t)] by 
    A14,
    A15,
    TREES_1:def 3;
    
          
    
          
    
    A19: ( 
    len (p 
    ^  
    <*m*>))
    = (( 
    len p) 
    + ( 
    len  
    <*m*>)) & (
    len  
    <*m*>)
    = 1 by 
    FINSEQ_1: 22,
    FINSEQ_1: 40;
    
          
    
          
    
    A20: ( 
    len (t 
    ^  
    <*l*>))
    = (( 
    len t) 
    + ( 
    len  
    <*l*>)) & (
    len  
    <*l*>)
    = 1 by 
    FINSEQ_1: 22,
    FINSEQ_1: 40;
    
          
    
          
    
    A21: ((p 
    ^  
    <*m*>)
    . (( 
    len p) 
    + 1)) 
    = m & ((t 
    ^  
    <*l*>)
    . (( 
    len t) 
    + 1)) 
    = l by 
    FINSEQ_1: 42;
    
          then
    
          
    
    A22: p 
    = t by 
    A17,
    A19,
    A20,
    FINSEQ_1: 33;
    
          Q[n, (T
    . t)] by 
    A1,
    A15,
    A17,
    A18,
    A19,
    A20,
    A21;
    
          then (p
    ^  
    <*n*>)
    in { (s 
    ^  
    <*i*>) where s be
    Element of ( 
    dom T) : Q[i, (T 
    . s)] } by 
    A22;
    
          hence thesis by
    A16,
    XBOOLE_0:def 3;
    
        end;
    
        then
    
        reconsider M as
    Tree;
    
        defpred
    
    P[
    FinSequence, 
    set] means $1
    in ( 
    dom T) & $2 
    = (T 
    . $1) or not $1 
    in ( 
    dom T) & ex n, q st $1 
    = (q 
    ^  
    <*n*>) & $2
    = (S() 
    . ((T 
    . q),n)); 
    
        
    
        
    
    A23: for p st p 
    in M holds ex x st 
    P[p, x]
    
        proof
    
          let p;
    
          assume p
    in M; 
    
          then
    
          
    
    A24: p 
    in { (t 
    ^  
    <*l*>) where t be
    Element of ( 
    dom T) : Q[l, (T 
    . t)] } or p 
    in ( 
    dom T) by 
    XBOOLE_0:def 3;
    
          now
    
            assume
    
            
    
    A25: not p 
    in ( 
    dom T); 
    
            then
    
            consider l be
    Nat, t be 
    Element of ( 
    dom T) such that 
    
            
    
    A26: p 
    = (t 
    ^  
    <*l*>) and Q[l, (T
    . t)] by 
    A24;
    
            take x = (S()
    . ((T 
    . t),l)); 
    
            thus p
    in ( 
    dom T) & x 
    = (T 
    . p) or not p 
    in ( 
    dom T) & ex n, q st p 
    = (q 
    ^  
    <*n*>) & x
    = (S() 
    . ((T 
    . q),n)) by 
    A25,
    A26;
    
          end;
    
          hence thesis;
    
        end;
    
        consider T9 be
    DecoratedTree such that 
    
        
    
    A27: ( 
    dom T9) 
    = M & for p st p 
    in M holds 
    P[p, (T9
    . p)] from 
    DTreeEx(
    A23);
    
        (
    rng T9) 
    c= D() 
    
        proof
    
          let x be
    object;
    
          assume x
    in ( 
    rng T9); 
    
          then
    
          consider y be
    object such that 
    
          
    
    A28: y 
    in ( 
    dom T9) and 
    
          
    
    A29: x 
    = (T9 
    . y) by 
    FUNCT_1:def 3;
    
          reconsider y as
    Element of ( 
    dom T9) by 
    A28;
    
          
    
    A30: 
    
          now
    
            assume y
    in ( 
    dom T); 
    
            then
    
            reconsider t = y as
    Element of ( 
    dom T); 
    
            (T
    . t) 
    in D(); 
    
            hence thesis by
    A27,
    A29;
    
          end;
    
          now
    
            assume
    
            
    
    A31: not y 
    in ( 
    dom T); 
    
            then
    
            consider n, q such that
    
            
    
    A32: y 
    = (q 
    ^  
    <*n*>) and
    
            
    
    A33: (T9 
    . y) 
    = (S() 
    . ((T 
    . q),n)) by 
    A27;
    
            y
    in { (t 
    ^  
    <*l*>) where t be
    Element of ( 
    dom T) : Q[l, (T 
    . t)] } by 
    A27,
    A31,
    XBOOLE_0:def 3;
    
            then
    
            consider l be
    Nat, t be 
    Element of ( 
    dom T) such that 
    
            
    
    A34: y 
    = (t 
    ^  
    <*l*>) and Q[l, (T
    . t)]; 
    
            
    
            
    
    A35: ( 
    len  
    <*n*>)
    = 1 by 
    FINSEQ_1: 39;
    
            
    
            
    
    A36: ( 
    len  
    <*l*>)
    = 1 by 
    FINSEQ_1: 39;
    
            
    
            
    
    A37: ( 
    len (q 
    ^  
    <*n*>))
    = (( 
    len q) 
    + 1) by 
    A35,
    FINSEQ_1: 22;
    
            
    
            
    
    A38: ( 
    len (t 
    ^  
    <*l*>))
    = (( 
    len t) 
    + 1) by 
    A36,
    FINSEQ_1: 22;
    
            ((q
    ^  
    <*n*>)
    . (( 
    len q) 
    + 1)) 
    = n & ((t 
    ^  
    <*l*>)
    . (( 
    len t) 
    + 1)) 
    = l by 
    FINSEQ_1: 42;
    
            then
    
            
    
    A39: q 
    = t by 
    A32,
    A34,
    A37,
    A38,
    FINSEQ_1: 33;
    
            
    
            
    
    A40: n 
    in  
    NAT by 
    ORDINAL1:def 12;
    
            (T
    . t) 
    in D(); 
    
            then
    [(T
    . q), n] 
    in  
    [:D(),
    NAT :] by 
    A39,
    ZFMISC_1: 87,
    A40;
    
            hence thesis by
    A29,
    A33,
    FUNCT_2: 5;
    
          end;
    
          hence thesis by
    A30;
    
        end;
    
        then
    
        reconsider T9 as
    DecoratedTree of D() by 
    RELAT_1:def 19;
    
        take T9;
    
        (
    <*>  
    NAT ) 
    in M & ( 
    <*>  
    NAT ) 
    in ( 
    dom T) by 
    TREES_1: 22;
    
        hence (T9
    .  
    {} ) 
    = d() by 
    A4,
    A27;
    
        let t be
    Element of ( 
    dom T9); 
    
        
    
    A41: 
    
        now
    
          assume t
    in { (s 
    ^  
    <*l*>) where s be
    Element of ( 
    dom T) : Q[l, (T 
    . s)] }; 
    
          then
    
          consider l be
    Nat, s be 
    Element of ( 
    dom T) such that 
    
          
    
    A42: t 
    = (s 
    ^  
    <*l*>) and Q[l, (T
    . s)]; 
    
          (
    len s) 
    <= k by 
    A4;
    
          then (
    len  
    <*l*>)
    = 1 & (( 
    len s) 
    + 1) 
    <= (k 
    + 1) by 
    FINSEQ_1: 39,
    XREAL_1: 7;
    
          hence (
    len t) 
    <= (k 
    + 1) by 
    A42,
    FINSEQ_1: 22;
    
        end;
    
        now
    
          assume t
    in ( 
    dom T); 
    
          then
    
          reconsider s = t as
    Element of ( 
    dom T); 
    
          (
    len s) 
    <= k & k 
    <= (k 
    + 1) by 
    A4,
    NAT_1: 11;
    
          hence (
    len t) 
    <= (k 
    + 1) by 
    XXREAL_0: 2;
    
        end;
    
        hence (
    len t) 
    <= (k 
    + 1) by 
    A27,
    A41,
    XBOOLE_0:def 3;
    
        assume
    
        
    
    A43: ( 
    len t) 
    < (k 
    + 1); 
    
        
    
    A44: 
    
        now
    
          assume
    
          
    
    A45: not t 
    in ( 
    dom T); 
    
          then t
    in { (s 
    ^  
    <*l*>) where s be
    Element of ( 
    dom T) : Q[l, (T 
    . s)] } by 
    A27,
    XBOOLE_0:def 3;
    
          then
    
          consider l be
    Nat, s be 
    Element of ( 
    dom T) such that 
    
          
    
    A46: t 
    = (s 
    ^  
    <*l*>) and
    
          
    
    A47: Q[l, (T 
    . s)]; 
    
          
    
          
    
    A48: ( 
    len t) 
    = (( 
    len s) 
    + ( 
    len  
    <*l*>)) by
    A46,
    FINSEQ_1: 22;
    
          (
    len  
    <*l*>)
    = 1 & ( 
    len t) 
    <= k by 
    A43,
    FINSEQ_1: 39,
    NAT_1: 13;
    
          then (
    len s) 
    < k by 
    A48,
    NAT_1: 13;
    
          then (
    succ s) 
    = { (s 
    ^  
    <*m*>) : Q[m, (T
    . s)] } by 
    A4;
    
          then t
    in ( 
    succ s) by 
    A46,
    A47;
    
          hence contradiction by
    A45;
    
        end;
    
        then
    
        
    
    A49: (T9 
    . t) 
    = (T 
    . t) by 
    A27;
    
        reconsider t9 = t as
    Element of ( 
    dom T) by 
    A44;
    
        thus (
    succ t) 
    c= { (t 
    ^  
    <*i*>) : Q[i, (T9
    . t)] } 
    
        proof
    
          let x be
    object;
    
          assume x
    in ( 
    succ t); 
    
          then
    
          consider n such that
    
          
    
    A50: x 
    = (t 
    ^  
    <*n*>) and
    
          
    
    A51: (t 
    ^  
    <*n*>)
    in ( 
    dom T9); 
    
          now
    
            per cases ;
    
              suppose
    
              
    
    A52: (t 
    ^  
    <*n*>)
    in ( 
    dom T); 
    
              then
    
              reconsider s = (t
    ^  
    <*n*>), t9 = t as
    Element of ( 
    dom T) by 
    TREES_1: 21;
    
              (
    len s) 
    <= k & ( 
    len s) 
    = (( 
    len t) 
    + 1) by 
    A4,
    FINSEQ_2: 16;
    
              then (
    len t) 
    < k by 
    NAT_1: 13;
    
              then (
    succ t9) 
    = { (t9 
    ^  
    <*m*>) : Q[m, (T
    . t9)] } by 
    A4;
    
              hence thesis by
    A49,
    A50,
    A52;
    
            end;
    
              suppose not (t
    ^  
    <*n*>)
    in ( 
    dom T); 
    
              then (t
    ^  
    <*n*>)
    in { (s 
    ^  
    <*l*>) where s be
    Element of ( 
    dom T) : Q[l, (T 
    . s)] } by 
    A27,
    A51,
    XBOOLE_0:def 3;
    
              then
    
              consider l be
    Nat, s be 
    Element of ( 
    dom T) such that 
    
              
    
    A53: (t 
    ^  
    <*n*>)
    = (s 
    ^  
    <*l*>) and
    
              
    
    A54: Q[l, (T 
    . s)]; 
    
              t
    = s by 
    A53,
    FINSEQ_2: 17;
    
              hence thesis by
    A49,
    A50,
    A53,
    A54;
    
            end;
    
          end;
    
          hence thesis;
    
        end;
    
        thus
    
        
    
    A55: { (t 
    ^  
    <*i*>) : Q[i, (T9
    . t)] } 
    c= ( 
    succ t) 
    
        proof
    
          let x be
    object;
    
          assume x
    in { (t 
    ^  
    <*i*>) : Q[i, (T9
    . t)] }; 
    
          then
    
          consider n such that
    
          
    
    A56: x 
    = (t 
    ^  
    <*n*>) and
    
          
    
    A57: Q[n, (T9 
    . t)]; 
    
          x
    = (t9 
    ^  
    <*n*>) by
    A56;
    
          then x
    in { (s 
    ^  
    <*l*>) where s be
    Element of ( 
    dom T) : Q[l, (T 
    . s)] } by 
    A49,
    A57;
    
          then x
    in ( 
    dom T9) by 
    A27,
    XBOOLE_0:def 3;
    
          hence thesis by
    A56;
    
        end;
    
        let n, x;
    
        assume that
    
        
    
    A58: x 
    = (T9 
    . t) and 
    
        
    
    A59: Q[n, x]; 
    
        reconsider n as
    Element of 
    NAT by 
    ORDINAL1:def 12;
    
        (t
    ^  
    <*n*>)
    in { (t 
    ^  
    <*i*>) : Q[i, (T9
    . t)] } by 
    A58,
    A59;
    
        then
    
        
    
    A60: (t 
    ^  
    <*n*>)
    in ( 
    succ t) by 
    A55;
    
        now
    
          per cases ;
    
            suppose
    
            
    
    A61: (t 
    ^  
    <*n*>)
    in ( 
    dom T); 
    
            then
    
            reconsider s = (t
    ^  
    <*n*>) as
    Element of ( 
    dom T); 
    
            (
    len s) 
    <= k & ( 
    len s) 
    = (( 
    len t) 
    + 1) by 
    A4,
    FINSEQ_2: 16;
    
            then (
    len t9) 
    < k by 
    NAT_1: 13;
    
            then (T
    . (t9 
    ^  
    <*n*>))
    = (S() 
    . (x,n)) by 
    A4,
    A49,
    A58,
    A59;
    
            hence thesis by
    A27,
    A60,
    A61;
    
          end;
    
            suppose not (t
    ^  
    <*n*>)
    in ( 
    dom T); 
    
            then
    
            consider l, q such that
    
            
    
    A62: (t 
    ^  
    <*n*>)
    = (q 
    ^  
    <*l*>) and
    
            
    
    A63: (T9 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . ((T 
    . q),l)) by 
    A27,
    A60;
    
            t
    = q & n 
    = l by 
    A62,
    FINSEQ_2: 17;
    
            hence thesis by
    A27,
    A44,
    A58,
    A63;
    
          end;
    
        end;
    
        hence thesis;
    
      end;
    
      
    
      
    
    A64: 
    P[k] from
    NAT_1:sch 2(
    A2,
    A3);
    
      defpred
    
    P[
    object, 
    object] means ex T be
    DecoratedTree of D(), k st $1 
    = k & $2 
    = T & (T 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T) holds ( 
    len t) 
    <= k & (( 
    len t) 
    < k implies ( 
    succ t) 
    = { (t 
    ^  
    <*i*>) : Q[i, (T
    . t)] } & for n, x st x 
    = (T 
    . t) & Q[n, x] holds (T 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))); 
    
      
    
      
    
    A65: for x be 
    object st x 
    in  
    NAT holds ex y be 
    object st 
    P[x, y]
    
      proof
    
        let x be
    object;
    
        assume x
    in  
    NAT ; 
    
        then
    
        reconsider n = x as
    Nat;
    
        consider T be
    DecoratedTree of D() such that 
    
        
    
    A66: (T 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T) holds ( 
    len t) 
    <= n & (( 
    len t) 
    < n implies ( 
    succ t) 
    = { (t 
    ^  
    <*k*>) : Q[k, (T
    . t)] } & for n, x st x 
    = (T 
    . t) & Q[n, x] holds (T 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))) by 
    A64;
    
        reconsider y = T as
    set;
    
        take Y = y, T, N = n;
    
        thus thesis by
    A66;
    
      end;
    
      consider f such that
    
      
    
    A67: ( 
    dom f) 
    =  
    NAT & for x be 
    object st x 
    in  
    NAT holds 
    P[x, (f
    . x)] from 
    CLASSES1:sch 1(
    A65);
    
      
    
      
    
    A68: for x be 
    Nat holds 
    P[x, (f
    . x)] by 
    ORDINAL1:def 12,
    A67;
    
      reconsider E = (
    rng f) as non 
    empty  
    set by 
    A67,
    RELAT_1: 42;
    
      
    
      
    
    A69: for x st x 
    in E holds x is 
    DecoratedTree of D() 
    
      proof
    
        let x;
    
        assume x
    in E; 
    
        then
    
        consider y be
    object such that 
    
        
    
    A70: y 
    in ( 
    dom f) and 
    
        
    
    A71: x 
    = (f 
    . y) by 
    FUNCT_1:def 3;
    
        ex T be
    DecoratedTree of D(), k st y 
    = k & (f 
    . y) 
    = T & (T 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T) holds ( 
    len t) 
    <= k & (( 
    len t) 
    < k implies ( 
    succ t) 
    = { (t 
    ^  
    <*i*>) : Q[i, (T
    . t)] } & for n, x st x 
    = (T 
    . t) & Q[n, x] holds (T 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))) by 
    A67,
    A70;
    
        hence thesis by
    A71;
    
      end;
    
      
    
      
    
    A72: for T1, T2, k1, k2 st T1 
    = (f 
    . k1) & T2 
    = (f 
    . k2) & k1 
    <= k2 holds T1 
    c= T2 
    
      proof
    
        let T1, T2;
    
        let x,y be
    Nat such that 
    
        
    
    A73: T1 
    = (f 
    . x) and 
    
        
    
    A74: T2 
    = (f 
    . y) and 
    
        
    
    A75: x 
    <= y; 
    
        consider T19 be
    DecoratedTree of D(), k1 such that 
    
        
    
    A76: x 
    = k1 & (f 
    . x) 
    = T19 & (T19 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T19) holds ( 
    len t) 
    <= k1 & (( 
    len t) 
    < k1 implies ( 
    succ t) 
    = { (t 
    ^  
    <*i*>) : Q[i, (T19
    . t)] } & for n, x st x 
    = (T19 
    . t) & Q[n, x] holds (T19 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))) by 
    A68;
    
        consider T29 be
    DecoratedTree of D(), k2 such that 
    
        
    
    A77: y 
    = k2 & (f 
    . y) 
    = T29 & (T29 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T29) holds ( 
    len t) 
    <= k2 & (( 
    len t) 
    < k2 implies ( 
    succ t) 
    = { (t 
    ^  
    <*i*>) : Q[i, (T29
    . t)] } & for n, x st x 
    = (T29 
    . t) & Q[n, x] holds (T29 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))) by 
    A68;
    
        defpred
    
    I[
    Nat] means for t be
    Element of ( 
    dom T1) st ( 
    len t) 
    <= $1 holds t 
    in ( 
    dom T2) & (T1 
    . t) 
    = (T2 
    . t); 
    
        
    
        
    
    A78: 
    I[
    0 ] 
    
        proof
    
          let t be
    Element of ( 
    dom T1) such that 
    
          
    
    A79: ( 
    len t) 
    <=  
    0 ; 
    
          t
    =  
    {} by 
    A79;
    
          hence thesis by
    A73,
    A74,
    A76,
    A77,
    TREES_1: 22;
    
        end;
    
        
    
        
    
    A80: 
    I[k] implies
    I[(k
    + 1)] 
    
        proof
    
          assume
    
          
    
    A81: for t be 
    Element of ( 
    dom T1) st ( 
    len t) 
    <= k holds t 
    in ( 
    dom T2) & (T1 
    . t) 
    = (T2 
    . t); 
    
          let t be
    Element of ( 
    dom T1); 
    
          assume (
    len t) 
    <= (k 
    + 1); 
    
          then
    
          
    
    A82: ( 
    len t) 
    <= k or ( 
    len t) 
    = (k 
    + 1) by 
    NAT_1: 8;
    
          now
    
            assume
    
            
    
    A83: ( 
    len t) 
    = (k 
    + 1); 
    
            reconsider p = (t
    | ( 
    Seg k)) as 
    FinSequence of 
    NAT by 
    FINSEQ_1: 18;
    
            p
    is_a_prefix_of t; 
    
            then
    
            reconsider p as
    Element of ( 
    dom T1) by 
    TREES_1: 20;
    
            
    
            
    
    A84: k 
    <= (k 
    + 1) by 
    NAT_1: 11;
    
            
    
            
    
    A85: (k 
    + 1) 
    <= k1 by 
    A73,
    A76,
    A83;
    
            
    
            
    
    A86: ( 
    len p) 
    = k by 
    A83,
    A84,
    FINSEQ_1: 17;
    
            
    
            
    
    A87: k 
    < k1 by 
    A85,
    NAT_1: 13;
    
            
    
            
    
    A88: (T1 
    . p) 
    = (T2 
    . p) by 
    A81,
    A86;
    
            reconsider p9 = p as
    Element of ( 
    dom T2) by 
    A81,
    A86;
    
            t
    <>  
    {} by 
    A83;
    
            then
    
            consider q be
    FinSequence, x be 
    object such that 
    
            
    
    A89: t 
    = (q 
    ^  
    <*x*>) by
    FINSEQ_1: 46;
    
            
    
            
    
    A90: p 
    is_a_prefix_of t & q 
    is_a_prefix_of t by 
    A89,
    TREES_1: 1;
    
            (k
    + 1) 
    = (( 
    len q) 
    + 1) by 
    A83,
    A89,
    FINSEQ_2: 16;
    
            then
    
            
    
    A91: p 
    = q by 
    A86,
    A90,
    Th1,
    TREES_1: 4;
    
            
    <*x*> is
    FinSequence of 
    NAT by 
    A89,
    FINSEQ_1: 36;
    
            then
    
            
    
    A92: ( 
    rng  
    <*x*>)
    c=  
    NAT by 
    FINSEQ_1:def 4;
    
            (
    rng  
    <*x*>)
    =  
    {x} & x
    in  
    {x} by
    FINSEQ_1: 38,
    TARSKI:def 1;
    
            then
    
            reconsider x as
    Nat by 
    A92;
    
            
    
            
    
    A93: (p 
    ^  
    <*x*>)
    in ( 
    succ p) by 
    A89,
    A91;
    
            (
    succ p) 
    = { (p 
    ^  
    <*i*>) : Q[i, (T1
    . p)] } by 
    A73,
    A76,
    A86,
    A87;
    
            then
    
            consider i such that
    
            
    
    A94: (p 
    ^  
    <*x*>)
    = (p 
    ^  
    <*i*>) and
    
            
    
    A95: Q[i, (T1 
    . p)] by 
    A93;
    
            
    
            
    
    A96: k 
    < k2 by 
    A75,
    A76,
    A77,
    A87,
    XXREAL_0: 2;
    
            then
    
            
    
    A97: ( 
    succ p9) 
    = { (p9 
    ^  
    <*l*>) : Q[l, (T2
    . p9)] } by 
    A74,
    A77,
    A86;
    
            
    
            
    
    A98: x 
    = i by 
    A94,
    FINSEQ_2: 17;
    
            
    
            
    
    A99: t 
    in ( 
    succ p9) by 
    A88,
    A89,
    A91,
    A94,
    A95,
    A97;
    
            (T19
    . t) 
    = (S() 
    . ((T19 
    . p),x)) by 
    A73,
    A76,
    A86,
    A87,
    A89,
    A91,
    A95,
    A98;
    
            hence thesis by
    A73,
    A74,
    A76,
    A77,
    A86,
    A88,
    A89,
    A91,
    A95,
    A96,
    A98,
    A99;
    
          end;
    
          hence thesis by
    A81,
    A82;
    
        end;
    
        
    
        
    
    A100: 
    I[k] from
    NAT_1:sch 2(
    A78,
    A80);
    
        let x be
    object;
    
        assume
    
        
    
    A101: x 
    in T1; 
    
        then
    
        consider y,z be
    object such that 
    
        
    
    A102: 
    [y, z]
    = x by 
    RELAT_1:def 1;
    
        
    
        
    
    A103: (T1 
    . y) 
    = z by 
    A101,
    A102,
    FUNCT_1: 1;
    
        reconsider y as
    Element of ( 
    dom T1) by 
    A101,
    A102,
    FUNCT_1: 1;
    
        (
    len y) 
    <= ( 
    len y); 
    
        then y
    in ( 
    dom T2) & (T1 
    . y) 
    = (T2 
    . y) by 
    A100;
    
        hence thesis by
    A102,
    A103,
    FUNCT_1: 1;
    
      end;
    
      E is
    c=-linear
    
      proof
    
        let T1,T2 be
    set;
    
        assume
    
        
    
    A104: T1 
    in E; 
    
        then
    
        consider x be
    object such that 
    
        
    
    A105: x 
    in ( 
    dom f) and 
    
        
    
    A106: T1 
    = (f 
    . x) by 
    FUNCT_1:def 3;
    
        assume
    
        
    
    A107: T2 
    in E; 
    
        then
    
        consider y be
    object such that 
    
        
    
    A108: y 
    in ( 
    dom f) and 
    
        
    
    A109: T2 
    = (f 
    . y) by 
    FUNCT_1:def 3;
    
        
    
        
    
    A110: T1 is 
    DecoratedTree by 
    A69,
    A104;
    
        
    
        
    
    A111: T2 is 
    DecoratedTree by 
    A69,
    A107;
    
        reconsider x, y as
    Nat by 
    A67,
    A105,
    A108;
    
        x
    <= y or y 
    <= x; 
    
        hence T1
    c= T2 or T2 
    c= T1 by 
    A72,
    A106,
    A109,
    A110,
    A111;
    
      end;
    
      then
    
      reconsider T = (
    union ( 
    rng f)) as 
    DecoratedTree of D() by 
    A69,
    Th36;
    
      take T;
    
      consider T9 be
    DecoratedTree of D(), k such that 
    
      
    
    A112: 
    0  
    = k & (f 
    .  
    0 ) 
    = T9 & (T9 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T9) holds ( 
    len t) 
    <= k & (( 
    len t) 
    < k implies ( 
    succ t) 
    = { (t 
    ^  
    <*i*>) : Q[i, (T9
    . t)] } & for n, x st x 
    = (T9 
    . t) & Q[n, x] holds (T9 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))) by 
    A67;
    
      
    {}  
    in ( 
    dom T9) by 
    TREES_1: 22;
    
      then
    
      
    
    A113: 
    [
    {} , d()] 
    in T9 by 
    A112,
    FUNCT_1: 1;
    
      T9
    in ( 
    rng f) by 
    A67,
    A112,
    FUNCT_1:def 3;
    
      then
    [
    {} , d()] 
    in T by 
    A113,
    TARSKI:def 4;
    
      hence (T
    .  
    {} ) 
    = d() by 
    FUNCT_1: 1;
    
      
    
      
    
    A114: for T1, x st T1 
    in E & x 
    in ( 
    dom T1) holds x 
    in ( 
    dom T) & (T1 
    . x) 
    = (T 
    . x) 
    
      proof
    
        let T1, x;
    
        assume that
    
        
    
    A115: T1 
    in E and 
    
        
    
    A116: x 
    in ( 
    dom T1); 
    
        
    [x, (T1
    . x)] 
    in T1 by 
    A116,
    FUNCT_1: 1;
    
        then
    [x, (T1
    . x)] 
    in T by 
    A115,
    TARSKI:def 4;
    
        hence thesis by
    FUNCT_1: 1;
    
      end;
    
      let t be
    Element of ( 
    dom T); 
    
      thus (
    succ t) 
    c= { (t 
    ^  
    <*i*>) : Q[i, (T
    . t)] } 
    
      proof
    
        let x be
    object;
    
        assume x
    in ( 
    succ t); 
    
        then
    
        consider l such that
    
        
    
    A117: x 
    = (t 
    ^  
    <*l*>) and
    
        
    
    A118: (t 
    ^  
    <*l*>)
    in ( 
    dom T); 
    
        
    [x, (T
    . x)] 
    in T by 
    A117,
    A118,
    FUNCT_1: 1;
    
        then
    
        consider X such that
    
        
    
    A119: 
    [x, (T
    . x)] 
    in X and 
    
        
    
    A120: X 
    in ( 
    rng f) by 
    TARSKI:def 4;
    
        consider y be
    object such that 
    
        
    
    A121: y 
    in  
    NAT and 
    
        
    
    A122: X 
    = (f 
    . y) by 
    A67,
    A120,
    FUNCT_1:def 3;
    
        consider T1 be
    DecoratedTree of D(), k1 such that 
    
        
    
    A123: y 
    = k1 & (f 
    . y) 
    = T1 & (T1 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T1) holds ( 
    len t) 
    <= k1 & (( 
    len t) 
    < k1 implies ( 
    succ t) 
    = { (t 
    ^  
    <*i*>) : Q[i, (T1
    . t)] } & for n, x st x 
    = (T1 
    . t) & Q[n, x] holds (T1 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))) by 
    A67,
    A121;
    
        
    
        
    
    A124: (t 
    ^  
    <*l*>)
    in ( 
    dom T1) by 
    A117,
    A119,
    A122,
    A123,
    FUNCT_1: 1;
    
        then
    
        reconsider t9 = t, p = (t
    ^  
    <*l*>) as
    Element of ( 
    dom T1) by 
    TREES_1: 21;
    
        (
    len p) 
    <= k1 by 
    A123;
    
        then ((
    len t) 
    + 1) 
    <= k1 by 
    FINSEQ_2: 16;
    
        then
    
        
    
    A125: ( 
    len t9) 
    < k1 by 
    NAT_1: 13;
    
        then
    
        
    
    A126: ( 
    succ t9) 
    = { (t9 
    ^  
    <*i*>) : Q[i, (T1
    . t9)] } by 
    A123;
    
        (T1
    . t) 
    = (T 
    . t) by 
    A114,
    A120,
    A122,
    A123,
    A125;
    
        hence thesis by
    A117,
    A124,
    A126;
    
      end;
    
      
    [t, (T
    . t)] 
    in T by 
    FUNCT_1: 1;
    
      then
    
      consider X such that
    
      
    
    A127: 
    [t, (T
    . t)] 
    in X and 
    
      
    
    A128: X 
    in E by 
    TARSKI:def 4;
    
      consider y be
    object such that 
    
      
    
    A129: y 
    in  
    NAT and 
    
      
    
    A130: X 
    = (f 
    . y) by 
    A67,
    A128,
    FUNCT_1:def 3;
    
      reconsider y as
    Nat by 
    A129;
    
      consider T1 be
    DecoratedTree of D(), k1 such that 
    
      
    
    A131: y 
    = k1 & (f 
    . y) 
    = T1 & (T1 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T1) holds ( 
    len t) 
    <= k1 & (( 
    len t) 
    < k1 implies ( 
    succ t) 
    = { (t 
    ^  
    <*i*>) : Q[i, (T1
    . t)] } & for n, x st x 
    = (T1 
    . t) & Q[n, x] holds (T1 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))) by 
    A68;
    
      consider T2 be
    DecoratedTree of D(), k2 such that 
    
      
    
    A132: (y 
    + 1) 
    = k2 & (f 
    . (y 
    + 1)) 
    = T2 & (T2 
    .  
    {} ) 
    = d() & for t be 
    Element of ( 
    dom T2) holds ( 
    len t) 
    <= k2 & (( 
    len t) 
    < k2 implies ( 
    succ t) 
    = { (t 
    ^  
    <*i*>) : Q[i, (T2
    . t)] } & for n, x st x 
    = (T2 
    . t) & Q[n, x] holds (T2 
    . (t 
    ^  
    <*n*>))
    = (S() 
    . (x,n))) by 
    A67;
    
      y
    <= (y 
    + 1) by 
    NAT_1: 11;
    
      then
    
      
    
    A133: T1 
    c= T2 by 
    A72,
    A131,
    A132;
    
      reconsider t1 = t as
    Element of ( 
    dom T1) by 
    A127,
    A130,
    A131,
    FUNCT_1: 1;
    
      
    
      
    
    A134: ( 
    len t1) 
    <= y by 
    A131;
    
      
    
      
    
    A135: (T2 
    . t) 
    = (T 
    . t) by 
    A127,
    A130,
    A131,
    A133,
    FUNCT_1: 1;
    
      reconsider t2 = t as
    Element of ( 
    dom T2) by 
    A127,
    A130,
    A131,
    A133,
    FUNCT_1: 1;
    
      
    
      
    
    A136: ( 
    len t2) 
    < (y 
    + 1) by 
    A134,
    NAT_1: 13;
    
      then
    
      
    
    A137: ( 
    succ t2) 
    = { (t2 
    ^  
    <*i*>) : Q[i, (T2
    . t2)] } by 
    A132;
    
      thus { (t
    ^  
    <*i*>) : Q[i, (T
    . t)] } 
    c= ( 
    succ t) 
    
      proof
    
        let x be
    object;
    
        assume
    
        
    
    A138: x 
    in { (t 
    ^  
    <*i*>) : Q[i, (T
    . t)] }; 
    
        then
    
        
    
    A139: ex l st x 
    = (t 
    ^  
    <*l*>) & Q[l, (T
    . t)]; 
    
        
    
        
    
    A140: x 
    in ( 
    succ t2) by 
    A132,
    A135,
    A136,
    A138;
    
        T2
    in E by 
    A67,
    A132,
    FUNCT_1:def 3;
    
        then x
    in ( 
    dom T) by 
    A114,
    A140;
    
        hence thesis by
    A139;
    
      end;
    
      let n;
    
      assume
    
      
    
    A141: Q[n, (T 
    . t)]; 
    
      then
    
      
    
    A142: (t 
    ^  
    <*n*>)
    in ( 
    succ t2) by 
    A135,
    A137;
    
      T2
    in E by 
    A67,
    A132,
    FUNCT_1:def 3;
    
      then (T2
    . (t 
    ^  
    <*n*>))
    = (T 
    . (t 
    ^  
    <*n*>)) by
    A114,
    A142;
    
      hence thesis by
    A132,
    A135,
    A136,
    A141;
    
    end;
    
    theorem :: 
    
    TREES_2:38
    
    for T1,T2 be
    Tree st for n be 
    Nat holds (T1 
    -level n) 
    = (T2 
    -level n) holds T1 
    = T2 
    
    proof
    
      let T1,T2 be
    Tree such that 
    
      
    
    A1: for n be 
    Nat holds (T1 
    -level n) 
    = (T2 
    -level n); 
    
      for p be
    FinSequence of 
    NAT holds p 
    in T1 iff p 
    in T2 
    
      proof
    
        let p be
    FinSequence of 
    NAT ; 
    
        
    
        
    
    A2: T1 
    = ( 
    union the set of all (T1 
    -level n) where n be 
    Nat) by
    Th14;
    
        hereby
    
          assume p
    in T1; 
    
          then
    
          consider Y be
    set such that 
    
          
    
    A3: p 
    in Y and 
    
          
    
    A4: Y 
    in the set of all (T1 
    -level n) where n be 
    Nat by 
    A2,
    TARSKI:def 4;
    
          consider n be
    Nat such that 
    
          
    
    A5: Y 
    = (T1 
    -level n) by 
    A4;
    
          Y
    = (T2 
    -level n) by 
    A1,
    A5;
    
          hence p
    in T2 by 
    A3;
    
        end;
    
        assume
    
        
    
    A6: p 
    in T2; 
    
        T2
    = ( 
    union the set of all (T2 
    -level n) where n be 
    Nat) by
    Th14;
    
        then
    
        consider Y be
    set such that 
    
        
    
    A7: p 
    in Y and 
    
        
    
    A8: Y 
    in the set of all (T2 
    -level n) where n be 
    Nat by 
    A6,
    TARSKI:def 4;
    
        consider n be
    Nat such that 
    
        
    
    A9: Y 
    = (T2 
    -level n) by 
    A8;
    
        Y
    = (T1 
    -level n) by 
    A1,
    A9;
    
        hence thesis by
    A7;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    TREES_2:39
    
    for n be
    Nat holds ( 
    TrivialInfiniteTree  
    -level n) 
    =  
    {(n
    |->  
    0 )} 
    
    proof
    
      set T =
    TrivialInfiniteTree ; 
    
      let n be
    Nat;
    
      set L = { w where w be
    Element of T : ( 
    len w) 
    = n }; 
    
      set f = (n
    |->  
    0 ); 
    
      
    {f}
    = L 
    
      proof
    
        hereby
    
          let a be
    object;
    
          assume a
    in  
    {f};
    
          then
    
          
    
    A1: a 
    = f by 
    TARSKI:def 1;
    
          f
    in T & ( 
    len f) 
    = n by 
    CARD_1:def 7;
    
          hence a
    in L by 
    A1;
    
        end;
    
        let a be
    object;
    
        assume a
    in L; 
    
        then
    
        consider w be
    Element of T such that 
    
        
    
    A2: a 
    = w & ( 
    len w) 
    = n; 
    
        w
    in T; 
    
        then ex k be
    Nat st w 
    = (k 
    |->  
    0 ); 
    
        then a
    = f by 
    A2,
    CARD_1:def 7;
    
        hence thesis by
    TARSKI:def 1;
    
      end;
    
      hence thesis;
    
    end;
    
    theorem :: 
    
    TREES_2:40
    
    for X,Y be
    set holds for B be 
    c=-linear  
    Subset of ( 
    PFuncs (X,Y)) holds ( 
    union B) 
    in ( 
    PFuncs (X,Y)) 
    
    proof
    
      let X,Y be
    set;
    
      let B be
    c=-linear  
    Subset of ( 
    PFuncs (X,Y)); 
    
      for x be
    set st x 
    in B holds x is 
    Function;
    
      then
    
      reconsider f = (
    union B) as 
    Function by 
    Th34;
    
      per cases ;
    
        suppose B
    <>  
    {} ; 
    
        then
    
        reconsider D = B as non
    empty
    functional  
    set;
    
        
    
    A1: 
    
        now
    
          let x be
    set;
    
          assume x
    in the set of all ( 
    dom g) where g be 
    Element of D; 
    
          then
    
          consider g be
    Element of D such that 
    
          
    
    A2: x 
    = ( 
    dom g); 
    
          g
    in ( 
    PFuncs (X,Y)) by 
    TARSKI:def 3;
    
          then ex f be
    Function st g 
    = f & ( 
    dom f) 
    c= X & ( 
    rng f) 
    c= Y by 
    PARTFUN1:def 3;
    
          hence x
    c= X by 
    A2;
    
        end;
    
        
    
    A3: 
    
        now
    
          let x be
    set;
    
          assume x
    in the set of all ( 
    rng g) where g be 
    Element of D; 
    
          then
    
          consider g be
    Element of D such that 
    
          
    
    A4: x 
    = ( 
    rng g); 
    
          g
    in ( 
    PFuncs (X,Y)) by 
    TARSKI:def 3;
    
          then ex f be
    Function st g 
    = f & ( 
    dom f) 
    c= X & ( 
    rng f) 
    c= Y by 
    PARTFUN1:def 3;
    
          hence x
    c= Y by 
    A4;
    
        end;
    
        (
    rng f) 
    = ( 
    union the set of all ( 
    rng g) where g be 
    Element of D) by 
    FUNCT_1: 110;
    
        then
    
        
    
    A5: ( 
    rng f) 
    c= Y by 
    A3,
    ZFMISC_1: 76;
    
        (
    dom f) 
    = ( 
    union the set of all ( 
    dom g) where g be 
    Element of D) by 
    FUNCT_1: 110;
    
        then (
    dom f) 
    c= X by 
    A1,
    ZFMISC_1: 76;
    
        hence thesis by
    A5,
    PARTFUN1:def 3;
    
      end;
    
        suppose
    
        
    
    A6: B 
    =  
    {} ; 
    
        
    {} is 
    PartFunc of X, Y by 
    RELSET_1: 12;
    
        hence thesis by
    A6,
    PARTFUN1: 45,
    ZFMISC_1: 2;
    
      end;
    
    end;