reserve k,m,n for Nat,
  a, b, c for object,
  x, y, X, Y, Z for set,
  D for non empty set;
reserve p, q, r, s, t, u, v for FinSequence;
reserve P, Q, R, P1, P2, Q1, Q2, R1, R2 for FinSequence-membered set;
reserve S, T for non empty FinSequence-membered set;
reserve A for Function of P, NAT;
reserve U, V, W for Subset of P*;

theorem Th30:
  for X for B being disjoint_valued FinSequence of bool X for a st a in X
    holds (arity-from-list B).a <> 0 iff ex n st a in B.n
proof
  let X;
  let B be disjoint_valued FinSequence of bool X;
  let a;
  assume A1: a in X;
  set F = arity-from-list B;
  A2: ((ex n st a in B.n) & a in B.(F.a))
              or ((not ex n st a in B.n) & F.a = 0) by A1, Def14;
  thus F.a <> 0 implies ex n st a in B.n by A1,Def14;
  assume ex n st a in B.n;
  then A4: F.a in dom B by A2, Th29;
  consider m being Nat such that A5: dom B = Seg m by FINSEQ_1:def 2;
  thus F.a <> 0 by FINSEQ_1:1, A4, A5;
  end;
