theorem
  Q is struct-invariant & v is y-omitting implies h2.v is y-omitting
  proof assume
Z0: Q is struct-invariant;
    defpred P[Element of Free(S,Y)] means
    $1 is y-omitting implies h2.$1 is y-omitting;
    set x0 = y; set s0 = s;
A1: for s, y holds P[y-term]
    proof let s,y; assume y-term is x0-omitting;
      then x0 <> y or s <> s0;
      hence thesis by CNST;
    end;
A2: for o, q st for v st v in rng q holds P[v]
    holds P[o-term q]
    proof
      let o, q;
      assume Z3: for v st v in rng q holds P[v];
      assume
Z4:   o-term q is y-omitting;
      canonical_homomorphism Q is_homomorphism Free(S,Y),Q by MSAFREE4:def 10;
      then
A3:   h2 is_homomorphism Free(S,Y),Q by HOMO;
      the_sort_of (o-term q) = the_result_sort_of o by Th8;
      then
A4:   h2.(o-term q) = h2.(the_result_sort_of o).(o-term q) by ABBR
      .= h2.(the_result_sort_of o).(Den(o,Free(S,Y)).q) by MSAFREE4:13
      .= Den(o,Q).(h2#q) by A3,MSUALG_3:def 7;
      for t being Element of Q st t in rng (h2#q) holds t is y-omitting
      proof
        let t be Element of Q;
A5:     dom q = dom the_arity_of o = dom (h2#q) by MSUALG_3:6;
        assume t in rng (h2#q);
        then consider i being object such that
A6:     i in dom q & t = (h2#q).i by A5,FUNCT_1:def 3;
        reconsider i as Nat by A6;
A8:     q.i = q/.i by A6,PARTFUN1:def 6;
        then q/.i in (the Sorts of Free(S,Y)).((the_arity_of o)/.i)
        by A5,A6,MSUALG_6:2;
        then
A7:     the_sort_of (q/.i) = (the_arity_of o)/.i by SORT;
A9:     t = h2.((the_arity_of o)/.i).(q/.i) by A6,A8,MSUALG_3:def 6
        .= h2.(q/.i) by A7,ABBR;
        q/.i is y-omitting & q/.i in rng q by Z4,A6,A8,Th54,FUNCT_1:def 3;
        hence t is y-omitting by A9,Z3;
      end;
      hence h2.(o-term q) is y-omitting by Z0,A4,Th77;
    end;
    thus P[v] from TermInd(A1,A2);
  end;
