reserve n,k,b for Nat, i for Integer;

theorem Th12:
  for N,i being Nat
  st i in dom Sgm0(N /\ EvenNAT)
  holds (Sgm0(N /\ EvenNAT)).i = 2*i
  proof
    defpred P[Nat] means for i being Nat st i in dom Sgm0($1 /\ EvenNAT)
    holds (Sgm0($1 /\ EvenNAT)).i = 2*i;
    A1: P[0]
    proof
      let i be Nat;
      assume i in dom Sgm0(0 /\ EvenNAT);
      then i in len Sgm0({});
      then i in card {} by AFINSQ_2:20;
      hence thesis;
    end;
    A2:
    now
      let n be Nat;
      assume A3: P[n];
      thus P[n+1]
      proof
        let i be Nat;
        assume A4: i in dom Sgm0((n+1) /\ EvenNAT);
        per cases;
        suppose A5: n is even;
          A6: (n+1)/\EvenNAT = (n /\ EvenNAT) \/ {n}
          proof
            thus (n+1)/\EvenNAT c= (n /\ EvenNAT) \/ {n}
            proof
              let x be object;
              assume A7: x in (n+1)/\EvenNAT;
              then x in (n+1) & x in EvenNAT by XBOOLE_0:def 4;
              then consider y being Nat such that
              A8: y=x & y is even;
              y in Segm(n+1) & y in EvenNAT by A7,XBOOLE_0:def 4,A8;
              then (y < n or y = n) & y in EvenNAT by NAT_1:44,NAT_1:22;
              then (y in Segm n & y in EvenNAT) or y = n by NAT_1:44;
              then y in (n /\ EvenNAT) or y in {n}
              by XBOOLE_0:def 4,TARSKI:def 1;
              hence x in (n /\ EvenNAT) \/ {n} by A8,XBOOLE_0:def 3;
            end;
            let x be object;
            assume x in (n/\EvenNAT) \/ {n};
            then per cases by XBOOLE_0:def 3;
            suppose A9: x in (n/\EvenNAT);
              Segm n c= Segm(n+1) by NAT_1:11,NAT_1:39;
              then n /\ EvenNAT c= (n+1) /\ EvenNAT by XBOOLE_1:26;
              hence x in (n+1) /\ EvenNAT by A9;
            end;
            suppose x in {n};
              then x=n by TARSKI:def 1;
              then x in Segm(n+1) & x in EvenNAT by NAT_1:45,A5;
              hence x in (n+1) /\ EvenNAT by XBOOLE_0:def 4;
            end;
          end;
          reconsider X = n /\ EvenNAT as finite natural-membered set;
          reconsider Y = {n} as finite natural-membered set;
          A10: X <N< Y
          proof
            let a,b be Nat;
            assume a in X & b in Y;
            then a in Segm n & b=n by XBOOLE_0:def 4,TARSKI:def 1;
            hence a < b by NAT_1:44;
          end;
          not n in n; then
          not n in (n /\ EvenNAT) by XBOOLE_0:def 4;
          then A11: card ((n+1)/\EvenNAT) = card (n /\ EvenNAT) + 1
          by A6,CARD_2:41;
          A12: i in Segm dom Sgm0((n+1) /\ EvenNAT) by A4;
          then i < len Sgm0((n+1) /\ EvenNAT) by NAT_1:44;
          then i < card (n /\ EvenNAT) + 1 by A11,AFINSQ_2:20;
          then i < len (Sgm0 X) + 1 by AFINSQ_2:20;
          then per cases by NAT_1:22;
          suppose A13: i < len (Sgm0 X);
            then A14: i < Segm card (Sgm0(n /\ EvenNAT));
            thus (Sgm0((n+1) /\ EvenNAT)).i = (Sgm0(n /\ EvenNAT)).i
            by A10,A13,AFINSQ_2:29,A6
            .= 2*i by A14,NAT_1:44,A3;
          end;
          suppose A15: i=len (Sgm0 X);
            then A16: (Sgm0((n+1) /\ EvenNAT)).i = (Sgm0 Y).0
            by AFINSQ_2:32,A10,A6
            .= n by AFINSQ_2:22;
            (Sgm0((n+1) /\ EvenNAT)).i in rng (Sgm0((n+1) /\ EvenNAT))
            by FUNCT_1:3,A4;
            then (Sgm0((n+1) /\ EvenNAT)).i in (n+1) /\ EvenNAT
            by AFINSQ_2:def 4;
            then (Sgm0((n+1) /\ EvenNAT)).i in EvenNAT by XBOOLE_0:def 4;
            then consider r being Nat such that
            A17: r=(Sgm0((n+1) /\ EvenNAT)).i & r is even;
            consider j being Nat such that
            A18: r=2*j by A17,ABIAN:def 2;
            per cases by XXREAL_0:1;
              suppose A19: j<i;
                then A20: j < Segm card (Sgm0(n /\ EvenNAT)) by A15;
                j < card Sgm0((n+1) /\ EvenNAT) by A19,A12,NAT_1:44,XXREAL_0:2;
                then A21: j in Segm dom Sgm0((n+1) /\ EvenNAT) by NAT_1:44;
                (Sgm0((n+1) /\ EvenNAT)).j = (Sgm0(n /\ EvenNAT)).j
                by A10,A19,A15,AFINSQ_2:29,A6
                .= (Sgm0((n+1) /\ EvenNAT)).i by  A20,NAT_1:44,A3,A17,A18;
                hence (Sgm0((n+1) /\ EvenNAT)).i = 2*i
                by A21,A4,FUNCT_1:def 4,A19;
              end;
              suppose j=i;
                hence (Sgm0((n+1) /\ EvenNAT)).i = 2*i by A17,A18;
              end;
            suppose A22: j>i;
              A23: 2*i in EvenNAT;
              2*i < n & n < n+1 by A22,XREAL_1:68,A17,A18,A16,NAT_1:16;
              then 2*i < n+1 by XXREAL_0:2;
              then 2*i in Segm (n+1) by NAT_1:44;
              then 2*i in ((n+1) /\ EvenNAT) by A23,XBOOLE_0:def 4;
              then 2*i in rng (Sgm0((n+1) /\ EvenNAT)) by AFINSQ_2:def 4;
              then consider l being object such that
              A24: l in dom (Sgm0((n+1) /\ EvenNAT)) &
              (Sgm0((n+1) /\ EvenNAT)).l=2*i by FUNCT_1:def 3;
              reconsider l as Element of NAT by A24;
              l in Segm dom Sgm0((n+1) /\ EvenNAT) by A24;
              then l < len Sgm0((n+1) /\ EvenNAT) by NAT_1:44;
              then l < card (n /\ EvenNAT) + 1 by A11,AFINSQ_2:20;
              then l < len (Sgm0 X) + 1 by AFINSQ_2:20;
              then per cases by NAT_1:22;
              suppose A25: l < len (Sgm0 X);
                then A26: l < Segm card (Sgm0(n /\ EvenNAT));
                (Sgm0((n+1) /\ EvenNAT)).l = (Sgm0(n /\ EvenNAT)).l
                by A10,A25,AFINSQ_2:29,A6
                .= 2*l by A26,NAT_1:44,A3;
                then 2*i=2*l by A24;
                hence (Sgm0((n+1) /\ EvenNAT)).i = 2*i by A25,A15;
              end;
              suppose l=len (Sgm0 X);
                hence (Sgm0((n+1) /\ EvenNAT)).i = 2*i by A15,A24;
              end;
            end;
          end;
        end;
        suppose A27: n is odd;
          (n+1)/\EvenNAT = n /\ EvenNAT
          proof
            thus (n+1)/\EvenNAT c= n /\ EvenNAT
            proof
              let x be object;
              assume x in (n+1)/\EvenNAT;
              then A28: x in Segm (n+1) & x in EvenNAT by XBOOLE_0:def 4;
              then consider y being Nat such that
              A29: y=x & y is even;
              y<n by A28,A29,NAT_1:44,A27,NAT_1:22;
              then y in Segm n & y in EvenNAT by A29,NAT_1:44;
              hence x in n /\ EvenNAT by A29,XBOOLE_0:def 4;
            end;
            Segm n c= Segm(n+1) by NAT_1:11,NAT_1:39;
            hence n /\ EvenNAT c= (n+1) /\ EvenNAT by XBOOLE_1:26;
          end;
          hence (Sgm0((n+1) /\ EvenNAT)).i = 2*i by A4,A3;
        end;
      end;
    end;
    for N being Nat holds P[N] from NAT_1:sch 2(A1,A2);
    hence thesis;
  end;
