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
  G is_distributive_wrt F & u = G[:](id D,d) implies u is_distributive_wrt F
proof
  assume that
A1: G is_distributive_wrt F and
A2: u = G[:](id D,d);
  let d1,d2;
  thus u.(F.(d1,d2)) = G.((id D).(F.(d1,d2)),d) by A2,FUNCOP_1:48
    .= G.(F.(d1,d2),d)
    .= F.(G.(d1,d),G.(d2,d)) by A1,BINOP_1:11
    .= F.(G.((id D).d1,d),G.(d2,d))
    .= F.(G.((id D).d1,d),G.((id D).d2,d))
    .= F.(u.d1,G.((id D).d2,d)) by A2,FUNCOP_1:48
    .= F.(u.d1,u.d2) by A2,FUNCOP_1:48;
end;
