reserve a,b,c,v,v1,x,y for object;
reserve V,A for set;
reserve d for TypeSCNominativeData of V,A;
reserve p,q,r for SCPartialNominativePredicate of V,A;
reserve n for Nat;
reserve X for Function;

theorem Th23:
  for f,g,h being Function, a,b,c,d being object holds
  NDentry(<*f,g,h*>,<*a,b,c*>,d) = {[a,f.d],[b,g.d],[c,h.d]}
  proof
    let f,g,h be Function;
    let a,b,c,d be object;
    set X = <*a,b,c*>;
    set G = <*f,g,h*>;
    set A = {[a,f.d],[b,g.d],[c,h.d]};
    set N = NDdataSeq(G,X,d);
    set F = NDentry(G,X,d);
A1: dom N = dom X by Def4;
A2: dom X = {1,2,3} by Th4;
A3: 1 in {1,2,3} by ENUMSET1:def 1;
    then
A4: N.1 = [X.1,G.1.d] by A2,Def4;
A5: 2 in {1,2,3} by ENUMSET1:def 1;
    then
A6: N.2 = [X.2,G.2.d] by A2,Def4;
A7: 3 in {1,2,3} by ENUMSET1:def 1;
    then
A8: N.3 = [X.3,G.3.d] by A2,Def4;
    thus F c= A
    proof
      let y be object;
      assume y in F;
      then consider z being object such that
A10:  z in dom N and
A11:  N.z = y by FUNCT_1:def 3;
      z = 1 or z = 2 or z = 3 by A1,A2,A10,ENUMSET1:def 1;
      hence thesis by A4,A6,A8,A11,ENUMSET1:def 1;
    end;
    let y,z be object;
    assume [y,z] in A;
    then [y,z] = [a,f.d] or [y,z] = [b,g.d] or [y,z] = [c,h.d]
    by ENUMSET1:def 1;
    hence thesis by A1,A2,A3,A4,A5,A6,A7,A8,FUNCT_1:def 3;
  end;
