reserve i for Nat,
  j for Element of NAT,
  X,Y,x,y,z for set;
reserve C for initialized ConstructorSignature,
  s for SortSymbol of C,
  o for OperSymbol of C,
  c for constructor OperSymbol of C;
reserve a,b for expression of C, an_Adj C;
reserve t, t1,t2 for expression of C, a_Type C;
reserve p for FinSequence of QuasiTerms C;
reserve e for expression of C;
reserve a,a9 for expression of C, an_Adj C;
reserve q for pure expression of C, a_Type C,
  A for finite Subset of QuasiAdjs C;
reserve T for quasi-type of C;

theorem Th96:
  for S being ManySortedSign, o being set, t1,t2 being DecoratedTree holds
  S variables_in ([o, the carrier of S]-tree <*t1,t2*>)
  = (S variables_in t1) (\/) (S variables_in t2)
proof
  let S be ManySortedSign, o be set, t1,t2 be DecoratedTree;
  now
    let s be object;
    assume
A1: s in the carrier of S;
A2: t1 in {t1,t2} by TARSKI:def 2;
A3: t2 in {t1,t2} by TARSKI:def 2;
    now
      let x be object;
      rng <*t1,t2*> = {t1,t2} by FINSEQ_2:127;
      then
      x in (S variables_in ([o, the carrier of S]-tree <*t1,t2*>)).s iff
      ex q being DecoratedTree st q in {t1,t2} & x in (S variables_in q).s
      by A1,MSAFREE3:11;
      then
      x in (S variables_in ([o, the carrier of S]-tree <*t1,t2*>)).s iff
      x in (S variables_in t1).s or x in (S variables_in t2).s
      by A2,A3,TARSKI:def 2;
      then
      x in (S variables_in ([o, the carrier of S]-tree <*t1,t2*>)).s iff
      x in (S variables_in t1).s \/ (S variables_in t2).s by XBOOLE_0:def 3;
      hence
      x in (S variables_in ([o, the carrier of S]-tree <*t1,t2*>)).s iff
      x in ((S variables_in t1) (\/) (S variables_in t2)).s
      by A1,PBOOLE:def 4;
    end;
    hence (S variables_in ([o, the carrier of S]-tree <*t1,t2*>)).s =
    ((S variables_in t1) (\/) (S variables_in t2)).s by TARSKI:2;
  end;
  hence thesis;
end;
