reserve u,v,x,y,z,X,Y for set;
reserve r,s for Real;
reserve N for non empty ConjNormAlgStr;
reserve a,a1,a2,b,b1,b2 for Element of N;
reserve c,c1,c2 for Element of Cayley-Dickson(N);

theorem Th34:
  <%<%<%0.N_Real,1.N_Real%>,<%0.N_Real,0.N_Real%>%>,
  <%<%0.N_Real,0.N_Real%>,<%0.N_Real,0.N_Real%>%>%>
  *
  <%<%<%0.N_Real,0.N_Real%>,<%1.N_Real,0.N_Real%>%>,
  <%<%0.N_Real,0.N_Real%>,<%0.N_Real,0.N_Real%>%>%>
  *
  <%<%<%0.N_Real,0.N_Real%>,<%0.N_Real,0.N_Real%>%>,
  <%<%0.N_Real,1.N_Real%>,<%0.N_Real,0.N_Real%>%>%>
  =
  <%<%<%0.N_Real,0.N_Real%>,<%0.N_Real,0.N_Real%>%>,
  <%<%0.N_Real,0.N_Real%>,<%-1.N_Real,0.N_Real%>%>%>
  proof
    set a1 = ZJZZ*ZZJZ-ZZZZ*'*ZZZZ, b1 = ZZZZ*ZJZZ+ZZZZ*ZZJZ*';
A1: ZJ*ZJ = <%z*z-j*'*j,z*j+z*'*j%> by Def9
    .= <%-j,z%>;
    a1 = <%ZJ*ZZ-JZ*'*ZZ,ZJ*JZ+ZZ*'*ZZ%> by Def9
    .= <%ZZ,ZJ*JZ%>
    .= ZZZJ by Lm2;
    then
A2: ZJZZ*a1 = <%ZJ*ZZ-ZJ*'*ZZ,ZJ*ZJ+ZZ*ZZ*'%> by Def9
    .= <%ZZ,ZJ*ZJ%>;
    <%ZJZZ,ZZZZ%> * <%ZZJZ,ZZZZ%> = <%a1,b1%> by Def9;
    hence <%ZJZZ,ZZZZ%> * <%ZZJZ,ZZZZ%> * <%ZZZZ,ZJZZ%>
    = <%a1*ZZZZ-ZJZZ*'*b1,ZJZZ*a1+b1*ZZZZ*'%> by Def9
    .= <%ZZZZ,ZJZZ*a1%>
    .= <%ZZZZ,<%ZZ,MZ%>%> by A1,A2;
  end;
