reserve IIG for monotonic Circuit-like non void non empty ManySortedSign;
reserve SCS for non-empty Circuit of IIG;
reserve s for State of SCS;
reserve iv for InputValues of SCS;
reserve IIG for finite monotonic Circuit-like non void non empty
  ManySortedSign;
reserve SCS for non-empty Circuit of IIG;
reserve InpFs for InputFuncs of SCS;
reserve s for State of SCS;
reserve iv for InputValues of SCS;

theorem Th16:
  commute InpFs is constant & InputVertices IIG is non empty
implies for s, iv st iv = (commute InpFs).0 for k being Nat, v being
Vertex of IIG st depth(v,SCS) <= k holds ((Computation(s,InpFs)).k qua Element
  of product the Sorts of SCS).v = IGValue(v,iv)
proof
  assume that
A1: commute InpFs is constant and
A2: InputVertices IIG is non empty;
  let s, iv;
  assume
A3: iv = (commute InpFs).0;
  defpred P[Nat] means for v being Vertex of IIG st depth(v,SCS) <=
  $1 holds ((Computation(s,InpFs)).$1 qua State of SCS).v = IGValue(v,iv);
A4: IIG is with_input_V by A2;
A5: P[ 0 ]
  proof
    let v be Vertex of IIG;
    assume depth(v,SCS) <= 0;
    then
A6: depth(v,SCS) = 0 by NAT_1:3;
A7: (Computation(s,InpFs)).0 = InitialComp(s,InpFs) by Def9
      .= s +* (0-th_InputValues InpFs) +* Set-Constants SCS;
    per cases by A6,CIRCUIT1:18;
    suppose
A8:   v in InputVertices IIG;
A9:   dom (0-th_InputValues InpFs) = InputVertices IIG by PARTFUN1:def 2;
      InputVertices IIG misses SortsWithConstants IIG by MSAFREE2:4;
      then not v in SortsWithConstants IIG by A8,XBOOLE_0:3;
      then not v in dom Set-Constants SCS by PARTFUN1:def 2;
      hence
      ((Computation(s,InpFs)).0 qua Element of product the Sorts of SCS).
      v = (s +* (0-th_InputValues InpFs)).v by A7,FUNCT_4:11
        .= (0-th_InputValues InpFs).v by A8,A9,FUNCT_4:13
        .= iv.v by A4,A3,CIRCUIT1:def 2
        .= IGValue(v,iv) by A8,Th10;
    end;
    suppose
A10:  v in SortsWithConstants IIG;
      then v in dom Set-Constants SCS by PARTFUN1:def 2;
      hence
      ((Computation(s,InpFs)).0 qua Element of product the Sorts of SCS).
      v = (Set-Constants SCS).v by A7,FUNCT_4:13
        .= IGValue(v,iv) by A10,Th11;
    end;
  end;
A11: for k be Nat st P[k] holds P[k+1]
  proof
    let k be Nat;
    reconsider Ck = (Computation(s,InpFs)).k as State of SCS;
    assume
A12: P[k];
    let v be Vertex of IIG such that
A13: depth(v,SCS) <= k+1;
A14: dom commute InpFs = NAT by A2,PRE_CIRC:5;
A15: (k+1)-th_InputValues InpFs = (commute InpFs).(k+1) by A4,CIRCUIT1:def 2
      .= (commute InpFs).0 by A1,A14,FUNCT_1:def 10;
A16: iv c= Ck by A1,A2,A3,Th14;
    thus ((Computation(s,InpFs)).(k+1) qua State of SCS).v = (Following(Ck,(k+
    1)-th_InputValues InpFs)).v by Def9
      .= (Following Ck).v by A3,A15,A16,FUNCT_4:98
      .= IGValue(v,iv) by A12,A13,Th13;
  end;
  thus for k being Nat holds P[k] from NAT_1:sch 2(A5,A11);
end;
