reserve A,B,p,q,r,s for Element of LTLB_WFF,
  n for Element of NAT,
  X for Subset of LTLB_WFF,
  g for Function of LTLB_WFF,BOOLEAN,
  x,y for set;
reserve P,Q,P1,R for PNPair;

theorem for P be consistent PNPair ex P1 be consistent PNPair st
  rng (P`1) c= rng (P1`1) & rng (P`2) c= rng (P1`2) & tau rng P = rng P1
  proof
    let P be consistent PNPair;
    set tfp = tau rng P \ rng P;
    consider t be FinSequence such that
A1: rng t = tfp and
A2: t is one-to-one by FINSEQ_4:58;
    reconsider t as one-to-one FinSequence of l by FINSEQ_1:def 4,A1,A2;
    defpred Pr[Nat,Element of [:l**,l**:],Element of [:l**,l**:]]
    means $2 is consistent implies ( ([($2`1)^^<*t/.$1*>,$2`2] is consistent
    implies $3 = [($2`1)^^<*t/.$1*>,$2`2]) & (not [($2`1)^^<*t/.$1*>,$2`2] is
    consistent implies $3 = [$2`1,($2`2)^^<*t/.$1*>]) );
A3: now
      let n be Nat;
      assume that 1 <= n and n <= len t + 1-1;
      let x being Element of [:l**,l**:];
      [(x`1)^^<*t/.n*>,(x`2)] is consistent or not [(x`1)^^<*t/.n*>,(x`2)]
      is consistent;
      hence ex y being Element of [:l**,l**:] st Pr[n,x,y];
    end;
    consider pn be FinSequence of [:l**,l**:] such that
A4: len pn = len t + 1 & (pn/.1 = P or len t + 1 = 0) &
    for n being Nat st 1 <= n & n <= len t + 1 - 1
    holds Pr[n,pn/.n,pn/.(n + 1)]
    from RECDEF_1:sch 18(A3);
    defpred Pr1[Nat] means
    $1 <= len pn implies ($1 <= len t implies
    rng (pn/.$1) misses (rng <*t/.$1*> \/ rng (t/^$1))) &
    pn/.$1 is consistent & rng P c= rng (pn/.$1);
A5: for k being non zero Nat st Pr1[k] holds Pr1[k + 1]
    proof
      let k being non zero Nat;
      reconsider k1 = k as Element of NAT by ORDINAL1:def 12;
A6:   1 <= k by NAT_1:25;
A7:   k+1 > k by NAT_1:13;
      assume
A8:   Pr1[k];
A9:   1 <= k+1 by NAT_1:25;
      thus Pr1[k + 1]
      proof
        t/.k1 in {t/.k1} by TARSKI:def 1;
        then A10: t/.k1 in rng <*t/.k1*> by FINSEQ_1:39;
        assume
A11:    k+1 <= len pn;
        then reconsider P1 = pn/.k1 as consistent PNPair by NAT_1:13,A8;
        set pp = [(P1`1)^^<*t/.k1*>,P1`2],pp2 = [P1`1,(P1`2)^^<*t/.k1*>];
A12:    rng P1 misses rng (t/^k1)
        by XBOOLE_1:7,XBOOLE_1:63, A8, A4, A11,XREAL_1: 6,NAT_1:13;
        rng P1 misses rng <*t/.k1*>
        by XBOOLE_1:63, XBOOLE_1:7, A8, A4,A11,XREAL_1:6,NAT_1:13;
        then A13: rng P1`2 misses rng <*t/.k1*> by XBOOLE_1:7,XBOOLE_1:63;
A14:    rng P1 misses rng <*t/.k1*>
        by XBOOLE_1:7,XBOOLE_1:63, A8, A4, A11,XREAL_1: 6,NAT_1:13;
        then A15: rng P1`1 misses rng <*t/.k1*> by XBOOLE_1:7,XBOOLE_1:63;
        rng P1 /\ rng <*t/.k1*> = {} by A14;
        then A16: not t/.k1 in rng (P1) by A10,XBOOLE_0:def 4;
A17:    k+1+(-1) <= len t + 1+(-1) by A4,A11,XREAL_1:6;
        then A18: k in dom t by FINSEQ_3:25,A6;
A19:    Pr[k1,P1,pn/.(k1 + 1)] by A4,A6, A17;
        set r1 = [((P1`1)^^<*t/.k1*>),pp`2],r2 = [pp2`1,(P1`2)^^<*t/.k1*>];
        per cases;
        suppose
A20:      pp is consistent;then
A21:      rng (pn/.(k+1)) = rng r1`1 \/ rng r1`2 by A19
          .= rng ((P1`1)^<*t/.k1*>) \/ rng P1`2 by Def3,A15
          .= rng P1`1 \/ rng <*t/.k1*> \/ rng P1`2 by FINSEQ_1:31
          .= rng P1 \/ rng <*t/.k1*> by XBOOLE_1:4;
          thus k+1 <= len t implies
          rng (pn/.(k+1)) misses rng <*t/.(k+1)*> \/ rng (t/^(k+1))
          proof
            assume
A22:        k+1 <= len t;
            then <*t.(k+1)*> ^(t/^(k+1)) = t/^k by Th1;then
            rng <*t.(k+1)*> \/ rng (t/^(k+1)) = rng (t/^k) by FINSEQ_1:31;
            then A23: rng (t/^(k+1)) c= rng (t/^k) by XBOOLE_1:7;
            k+1 in dom t by FINSEQ_3:25,A22,A9;then
            {t/.(k+1)} c= rng (t/^k) by FINSEQ_6:58,A7,ZFMISC_1:31;
            then rng <*t/.(k+1)*> c= rng (t/^k) by FINSEQ_1:39;then
A24:        rng (t/^(k+1)) \/ rng <*t/.(k+1)*> c= rng (t/^k) \/ rng (t/^k)
            by XBOOLE_1:13,A23;
            k1 in Seg k1 by A6;
            then t.k1 in rng (t|(Seg k)) by FUNCT_1:50,A18;
            then t/.k1 in rng (t|k) by PARTFUN1:def 6,A18;
            then {t/.k1} c= rng (t|k) by ZFMISC_1:31;
            then rng <*t/.k1*> c= rng (t|k) by FINSEQ_1:39;then
A25:        rng <*t/.k1*> misses (rng <*t/.(k+1)*> \/ rng (t/^(k+1)))
            by FINSEQ_5:34,XBOOLE_1:64,A24;
            rng (pn/.(k+1)) /\ (rng <*t/.(k+1)*> \/ rng (t/^(k+1)))
            = (rng P1 /\ (rng <*t/.(k+1)*> \/ rng (t/^(k+1)))) \/
            (rng <*t /.k1*> /\ (rng <*t/.(k+1)*> \/ rng (t/^(k+1))))
            by XBOOLE_1:23,A21
            .= {} \/ (rng <*t/.k1*> /\ (rng <*t/.(k+1)*> \/ rng (t/^(k+1))))
            by A24,XBOOLE_1:63,A12,XBOOLE_0:def 7
            .= {} by A25;
            hence
            rng (pn/.(k+1)) misses rng <*t/.(k+1)*> \/ rng (t/^(k+1));
          end;
          thus pn/.(k+1) is consistent by A4,A6, A17,A20;
          rng (pn/.k) c= rng (pn/.(k+1)) by XBOOLE_1:7,A21;
          hence
          rng P c= rng (pn/.(k+1)) by  A8, A11,NAT_1:13;
        end;
        suppose
          not pp is consistent;then
A26:      rng (pn/.(k+1)) = rng r2`1 \/ rng r2`2 by A19
          .= rng (P1`1) \/ rng ((P1`2)^<*t/.k1*>) by Def3,A13
          .= rng (P1`1) \/ (rng (P1`2) \/ rng <*t/.k1*>) by FINSEQ_1:31
          .= rng (P1) \/ rng <*t/.k1*> by XBOOLE_1:4;
          thus k+1 <= len t implies
          rng (pn/.(k+1)) misses rng <*t/.(k+1)*> \/ rng (t/^(k+1))
          proof
            assume
A27:        k+1 <= len t;
            then <*t.(k+1)*> ^(t/^(k+1)) = t/^k by Th1;then
            rng <*t.(k+1)*> \/ rng (t/^(k+1)) = rng (t/^k) by FINSEQ_1:31;
            then A28: rng (t/^(k+1)) c= rng (t/^k) by XBOOLE_1:7;
            k+1 in dom t by FINSEQ_3:25,A27,A9;
            then {t/.(k+1)} c= rng (t/^k) by FINSEQ_6:58,A7,ZFMISC_1:31;
            then rng <*t/.(k+1)*> c= rng (t/^k) by FINSEQ_1:39;then
A29:        rng (t/^(k+1)) \/ rng <*t/.(k+1)*> c= rng (t/^k) \/ rng (t/^k)
            by XBOOLE_1:13,A28;
            k1 in Seg k1 by A6;
            then t.k1 in rng (t|(Seg k)) by FUNCT_1:50,A18;
            then t/.k1 in rng (t|k) by PARTFUN1:def 6,A18;
            then {t/.k1} c= rng (t|k) by ZFMISC_1:31;
            then rng <*t/.k1*> c= rng (t|k) by FINSEQ_1:39;then
A30:        rng <*t/.k1*> misses (rng <*t/.(k+1)*> \/ rng (t/^(k+1)))
            by FINSEQ_5:34,XBOOLE_1:64,A29;
            rng (pn/.(k+1)) /\ (rng <*t/.(k+1)*> \/ rng (t/^(k+1)))
            = (rng P1 /\ (rng <*t/.(k+1)*> \/ rng (t/^(k+1)))) \/
            (rng <*t /.k1*> /\ (rng <*t/.(k+1)*> \/ rng (t/^(k+1))))
            by XBOOLE_1:23,A26
            .= {} \/ (rng <*t/.k1*> /\ (rng <*t/.(k+1)*> \/ rng (t/^(k+1))))
            by A29,XBOOLE_1:63,A12,XBOOLE_0:def 7
            .= {} by A30;
            hence rng (pn/.(k+1)) misses rng <*t/.(k+1)*> \/ rng (t/^(k+1));
          end;
          thus pn/.(k+1) is consistent by A19, Th31,A16;
          rng (pn/.k) c= rng (pn/.(k+1)) by XBOOLE_1:7,A26;
          hence rng P c= rng (pn/.(k+1)) by  A8, A11,NAT_1:13;
        end;
      end;
    end;
    reconsider lpn = len pn as non zero Nat by A4;
A31: Pr1[1]
     proof
       assume 1 <= len pn;
       thus 1 <= len t implies rng (pn/.1) misses (rng <*t/.1*> \/ rng (t/^1))
       proof
         assume 1 <= len t;
         then A32: t <> {};
         rng <*t/.1*> \/ rng (t/^1) = rng (<*t/.1*>^(t/^1)) by FINSEQ_1:31
         .= rng (t:- (t/.1)) by FINSEQ_6:43,A32
         .= rng t by FINSEQ_6:44,A32;
         hence thesis by A4, XBOOLE_1:79,A1;
       end;
       thus pn/.1 is consistent by A4;
       thus rng P c= rng (pn/.1) by A4;
     end;
A33: for k be non zero Nat holds Pr1[k] from NAT_1:sch 10(A31, A5);
     then pn/.lpn is consistent;
     then reconsider P2 = pn/.len pn as consistent PNPair;
     set i2 = len pn -' 1,P3 = pn/.lpn;
A34: len pn -' i2 = len pn -' (len pn - 1) by A4,XREAL_0:def 2
     .= len pn - (len pn - 1) by XREAL_0:def 2
     .= 1;
     defpred Pr6[Nat] means $1 < len pn implies
     rng ((pn/.(len pn -' $1))`1) c= rng P2`1 &
     rng ((pn/.(len pn -' $1))`2) c= rng P2`2;
A35: now
       let n;
       assume that
A36:   1 <= n and
A37:   n <= len t;
       n <= len pn by A37,NAT_1:13,A4;
       then rng (pn/.n) misses (rng <*t/.n*> \/ rng (t/^n)) by A33, A36, A37;
       then A38: rng (pn/.n) misses rng <*t/.n*> by XBOOLE_1:7,XBOOLE_1:63;
       hence rng (pn/.n)`1 misses rng <*t/.n*> by XBOOLE_1:7,XBOOLE_1:63;
       thus rng (pn/.n)`2 misses rng <*t/.n*> by XBOOLE_1:7,XBOOLE_1:63, A38;
     end;
A39: now
       let n be Nat;
       set k = len pn -' (n+1);
       assume
A40:   Pr6[n];
       thus Pr6[n+1]
       proof
         assume
A41:     n+1 < len pn;
         then A42: n+1 + (-1) < len pn by XREAL_1:36;
         then A43: n + (-n) < len pn + (-n) by XREAL_1:8;
A44:     n+1 + (-(n+1)) < len pn + (-(n+1)) by A41,XREAL_1:8;
         then
A45: k = len pn - (n+1) by XREAL_0:def 2
         .= len t - n by A4;
A46:     len pn - (n+1) > 0 by A44;
         then len pn -' (n+1) > 0 by XREAL_0:def 2;
         then A47: 1 <= k by NAT_1:25;
         reconsider k as non zero Element of NAT by XREAL_0:def 2,A46;
         set P1 = pn/.k;
A48:     len t >= len t + (-n) by XREAL_1:32;
         then A49: rng P1`2 misses rng <*t/.k*> by A35,A47,A45;
A50:     rng P1`1 misses rng <*t/.k*> by A35,A47, A48,A45;
A51:     k+1 = len pn - (n+1) + 1 by XREAL_0:def 2
         .= len pn - n
         .= len pn -' n by XREAL_0:def 2, A43;
         k < len pn by A4,NAT_1:13, A48,A45;
         then A52: pn/.k is consistent PNPair by A33;
         per cases;
         suppose
           [(P1`1)^^<*t/.k*>,P1`2] is consistent;then
A53:       pn/.(k+1) = [(P1`1)^^<*t/.k*>,P1`2] by A47, A48,A45, A4,A52;then
           rng ((P1`1)^^<*t/.k*>) c= rng P2`1 by A40, A42, A51;
           then rng ((P1`1)^<*t/.k*>) c= rng P2`1 by A50,Def3;
           then A54: rng P1`1 \/ rng <*t/.k*> c= rng P2`1 by FINSEQ_1:31;
           rng P1`1 c= rng (P1`1) \/ rng <*t/.k*> by XBOOLE_1:7;
           hence thesis by A40, A42, A51,A53,A54;
         end;
         suppose
           not [(P1`1)^^<*t/.k*>,P1`2] is consistent;then
A55:       pn/.(k+1) = [P1`1,(P1`2)^^<*t/.k*>] by A47, A48,A45,A4,A52;then
           rng ((P1`2)^^<*t/.k*>) c= rng P2`2 by A40, A42, A51;
           then rng ((P1`2)^<*t/.k*>) c= rng P2`2 by A49,Def3;
           then A56: rng P1`2 \/ rng <*t/.k*> c= rng P2`2 by FINSEQ_1:31;
           rng P1`2 c= rng P1`2 \/ rng <*t/.k*> by XBOOLE_1:7;
           hence thesis by A56, A55, A40, A42, A51;
         end;
       end;
     end;
A57: Pr6[0]
     proof
       assume 0 < len pn;
       then len pn - 0 > 0;
       hence thesis by XREAL_0:def 2;
     end;
A58: for n being Nat holds Pr6[n] from NAT_1:sch 2(A57,A39);
     then A59: len pn + (-1) < len pn & Pr6[i2] by XREAL_1:30;
A60: tau rng P c= rng P2
     proof
       let x be object;
       assume x in tau rng P;
       then A61: x in tfp \/ rng P by XBOOLE_1:45, Th16;
       per cases by A61,XBOOLE_0:def 3;
       suppose
         x in tfp;
         then consider i being Nat such that
A62:     i in dom t and
A63:     t.i = x by A1,FINSEQ_2:10;
         reconsider i1 = i as Element of NAT by ORDINAL1:def 12;
         set P5 = pn/.i1;
A64:     i <= len t + 1-1 by FINSEQ_3:25,A62;
         then A65: i < len pn by A4,NAT_1:13;
         reconsider ii = len pn -' (i+1) as Element of NAT;
         set P3 = pn/.(len pn -' ii);
         (-1)*(i+1) < (-1)*0 by XREAL_1:69;
         then A66: len pn + (-(i+1)) < len pn by XREAL_1:30;
A67:     1 <= i by FINSEQ_3:25,A62;
         then A68: Pr[i1,pn/.i1,pn/.(i1+1)] by A64,A4;
A69:     i <= len t by FINSEQ_3:25,A62;
         then A70: rng P5`1 misses rng <*t/.i*> by A35,A67;
A71:     rng P5`2 misses rng <*t/.i*> by A35,A67,A69;
         i+1 <= len pn by XREAL_1:6,A69,A4;
         then i+1 + (-(i+1)) <= len pn + (-(i+1)) by XREAL_1:6;
         then A72: ii = len pn - (i+1) by XREAL_0:def 2;then
A73:     len pn -' ii = len pn - (len pn - (i+1)) by XREAL_0:def 2
         .= i + 1;
         Pr6[len pn -' (i+1)] by A58;
         then A74: rng P3 c= rng P2 by A66,A72,XBOOLE_1:13;
         per cases;
         suppose
A75:       [(P5`1)^^<*t/.i*>,P5`2] is consistent;
           rng <*t/.i*> c= rng P5`1 \/ rng <*t/.i*> by XBOOLE_1:7;
           then rng <*t/.i*> c= rng ((P5`1)^<*t/.i*>) by FINSEQ_1:31;
           then rng <*t/.i*> c= rng ((P5`1)^<*t/.i*>) \/ rng P5`2
           by XBOOLE_1:10;then
           rng <*t/.i*> c= rng ((P5`1)^^<*t/.i*>) \/ rng P5`2 by A70,Def3;then
           rng <*t/.i*> c= rng P3`1 \/ rng P5`2
           by A73, A75, A33,A65,A67,A68;then
           rng <*t/.i*> c= rng P3 by  A75, A33,A65,A67,A68,A73;
           then A76: rng <*t/.i*> c= rng P2 by A74;
           t/.i in {t/.i} by TARSKI:def 1;
           then t/.i in rng <*t/.i*> by FINSEQ_1:38;
           then t/.i in rng P2 by A76;
           hence x in rng P2 by A62,A63,PARTFUN1:def 6;
         end;
         suppose

A77:       not [(P5`1)^^<*t/.i*>,P5`2] is consistent;

mg:P3 = [P5`1,(P5`2)^^<*t/.i*>] by A77,A33,A65,A67,A68,A73;
           rng <*t/.i*> c= rng P5`2 \/ rng <*t/.i*> by XBOOLE_1:7;
           then rng <*t/.i*> c= rng ((P5`2)^<*t/.i*>) by FINSEQ_1:31;
           then rng <*t/.i*> c= rng P5`1 \/ rng ((P5`2)^<*t/.i*>)
           by XBOOLE_1:10;then
           rng <*t/.i*> c= rng P5`1 \/ rng ((P5`2)^^<*t/.i*>) by A71,Def3;then
           rng <*t/.i*> c= rng P5`1 \/ rng P3`2 by mg;then
           rng <*t/.i*> c= rng P3 by mg;
           then A78: rng <*t/.i*> c= rng P2 by A74;
           t/.i in {t/.i} by TARSKI:def 1;
           then t/.i in rng <*t/.i*> by FINSEQ_1:38;
           then t/.i in rng P2 by A78;
           hence x in rng P2 by A62,A63,PARTFUN1:def 6;
         end;
       end;
       suppose
A79:     x in rng P;
         rng P c= rng (pn/.len pn) by A33,A4;
         hence x in rng P2 by A79;
       end;
     end;
     defpred Pr4[Nat] means $1 <= len pn implies
     rng ((pn/.$1)`1) \/ rng ((pn/.$1)`2) c= tau rng P;
A80: tfp c= tau rng P by XBOOLE_1:36;
A81: for k being non zero Nat st Pr4[k] holds Pr4[k + 1]
     proof
       let k being non zero Nat;
       reconsider k1 = k as Element of NAT by ORDINAL1:def 12;
A82:   1 <= k by NAT_1:25;
       assume
A83:   Pr4[k];
       thus Pr4[k + 1]
       proof
         set P1 = pn/.k1;
         set P4 = pn/.k;
         assume
A84:     k+1 <= len pn;
         then A85: k+1+(-1) <= len t + 1 +(-1) by A4,XREAL_1:6;
         then A86: rng P1`2 misses rng <*t/.k*> by A35,A82;
A87:     rng P1`1 misses rng <*t/.k*> by A35,A82, A85;
         k < len pn by A84,NAT_1:13;
         then A88: pn/.k1 is consistent by A33;
A89:     {t/.k1} c= tau(rng P)
         proof
           let x be object;
A90:       k1 in dom t by FINSEQ_3:25,A82, A85;
           then t.k1 in rng t by FUNCT_1:3;
           then A91: t/.k1 in rng t by PARTFUN1:def 6,A90;
           assume x in {t/.k1};
           then x in rng t by A91,TARSKI:def 1;
           hence thesis by A1,A80;
         end;
         per cases;
         suppose
A92:       [(P1`1)^^<*t/.k1*>,P1`2] is consistent;
           set P3 = pn/.(k1+1);
A93:       pn/.(k1+1) = [(P1`1)^^<*t/.k1*>,P1`2] by A92, A85,A4,A82,A88;
           then A94: rng P3`2 = rng P4`2;
           rng P3`1 = rng ((P1`1)^^<*t/.k1*>) by A93
           .= rng ((P1`1)^<*t/.k1*>) by A87,Def3
           .= rng P1`1 \/ rng <*t/.k1*> by FINSEQ_1:31
           .= rng P4`1 \/ {t/.k1} by FINSEQ_1:38;
           then rng P3 = rng P4 \/ {t/.k1} by XBOOLE_1:4,A94;
           hence thesis by XBOOLE_1:8,A89, A83, A84,NAT_1:13;
         end;
         suppose
A95:       not [(P1`1)^^<*t/.k1*>,P1`2] is consistent;
           set P3 = pn/.(k1+1);
A96:       pn/.(k1+1) = [(P1`1),(P1`2)^^<*t/.k1*>] by A95, A85,A4,A82,A88;
           then A97: rng P3`1 = rng P4`1;
           rng P3`2 = rng ((P1`2)^^<*t/.k1*>) by A96
           .= rng ((P1`2)^<*t/.k1*>) by Def3,A86
           .= rng P1`2 \/ rng <*t/.k1*> by FINSEQ_1:31
           .= rng P4`2 \/ {t/.k1} by FINSEQ_1:38;
           then rng P3 = rng P4 \/ {t/.k1} by A97,XBOOLE_1:4;
           hence thesis by XBOOLE_1:8,A89, A83, A84,NAT_1:13;
         end;
       end;
     end;
A98: Pr4[1] by Th16,A4;
     for k be non zero Nat holds Pr4[k] from NAT_1:sch 10(A98, A81);
     then rng P3 c= tau rng P;
     hence thesis by A34,A4,A59,XREAL_0:def 2,A60,XBOOLE_0:def 10;
   end;
