reserve x,y for set;
reserve C,C9,D,D9,E for non empty set;
reserve c for Element of C;
reserve c9 for Element of C9;
reserve d,d1,d2,d3,d4,e for Element of D;
reserve d9 for Element of D9;
reserve i,j for natural Number;
reserve F for Function of [:D,D9:],E;
reserve p,q for FinSequence of D,
  p9,q9 for FinSequence of D9;
reserve f,f9 for Function of C,D,
  h for Function of D,E;
reserve T,T1,T2,T3 for Tuple of i,D;
reserve T9 for Tuple of i, D9;
reserve S for Tuple of j, D;
reserve S9 for Tuple of j, D9;
reserve F,G for BinOp of D;
reserve u for UnOp of D;
reserve H for BinOp of E;

theorem
  F is associative implies F[:](F[;](d1,T),d2) = F[;](d1,F[:](T,d2))
proof
  assume
A1: F is associative;
  per cases;
  suppose
A2: i = 0;
    then F[;](d1,T) = <*>D by Lm2;
    then
A3: F[:](F[;](d1,T),d2) = <*>D by FINSEQ_2:85;
    F[:](T,d2) = <*>D by A2,Lm3;
    hence thesis by A3,FINSEQ_2:79;
  end;
  suppose
    i <> 0;
    then reconsider C = Seg i as non empty set;
    T is Function of C,D by Lm4;
    hence thesis by A1,FUNCOP_1:59;
  end;
end;
