reserve i,j,n,n1,n2,m,k,l,u for Nat,
        r,r1,r2 for Real,
        x,y for Integer,
        a,b for non trivial Nat,
        F for XFinSequence,
        cF,cF1,cF2 for complex-valued XFinSequence,
        c,c1,c2 for Complex;
reserve x,y,x1,u,w for Nat;
reserve n,m,k for Nat,
        p,q for n-element XFinSequence of NAT,
        i1,i2,i3,i4,i5,i6 for Element of n,
        a,b,d,f for Integer;

theorem Th28:
  for a,b being Integer,c being Nat, i1,i2,i3 holds
    {p: a*p.i1 = [\ (b*p.i2) / (c*p.i3)/] & (c*p.i3 <> 0) }
  is diophantine Subset of n -xtuples_of NAT
proof
  let a,b be Integer,c be Nat;
  let i1,i2,i3;
  deffunc F2(Nat,Nat,Nat) = c*$3 + (a*c)* $1 * $3;
A1: for n,i1,i2,i3,i4,d holds {p: F2(p.i1,p.i2,p.i3) = d*(p.i4)}
    is diophantine Subset of n -xtuples_of NAT
  proof
    let n,i1,i2,i3,i4,d;
    defpred P1[Nat,Nat,Integer] means d*$1 = c*$2 + $3+0;
A2:   for n,i1,i2,i3,f holds {p: P1[p.i1,p.i2,f*(p.i3)]}
      is diophantine Subset of n -xtuples_of NAT by HILB10_3:11;
    deffunc F1(Nat,Nat,Nat) = (a*c)*$1*$3;
A3:   for n,i1,i2,i3,i4,f holds {p: F1(p.i1,p.i2,p.i3) = f*(p.i4)}
      is diophantine Subset of n -xtuples_of NAT by HILB10_3:9;
A4: for n,i1,i2,i3,i4,i5 holds {p: P1[p.i1,p.i2,F1(p.i3,p.i4,p.i5)]}
      is diophantine Subset of n -xtuples_of NAT from HILB10_3:sch 5(A2,A3);
    defpred R1[XFinSequence of NAT] means  F2($1.i1,$1.i2,$1.i3) = d*($1.i4);
    defpred R2[XFinSequence of NAT] means
      P1[$1.i4,$1.i3,F1($1.i1,$1.i2,$1.i3)];
A5: for p holds R1[p] iff R2[p];
    {p: R1[p]} = {q: R2[q]} from HILB10_3:sch 2(A5);
    hence thesis by A4;
  end;
  defpred P2[Nat,Nat,Integer] means b*$1+0 < $3;
A6: for n,i1,i2,i3,d holds {p: P2[p.i1,p.i2,d*(p.i3)]}
      is diophantine Subset of n -xtuples_of NAT by HILB10_3:7;
A7: for n,i1,i2,i3,i4,i5 holds {p: P2[p.i1,p.i2,F2(p.i3,p.i4,p.i5)]}
      is diophantine Subset of n -xtuples_of NAT from HILB10_3:sch 5(A6,A1);
  defpred P3[Nat,Nat,Integer] means b*$1 >= $3+0;
A8: for n,i1,i2,i3,d holds {p:P3[p.i1,p.i2,d*(p.i3)]}
      is diophantine Subset of n -xtuples_of NAT by HILB10_3:8;
  deffunc F3(Nat,Nat,Nat) = (a*c)* $1 * $3;
A9: for n,i1,i2,i3,i4,d holds {p: F3(p.i1,p.i2,p.i3) = d*(p.i4)}
      is diophantine Subset of n -xtuples_of NAT by HILB10_3:9;
A10:for n,i1,i2,i3,i4,i5 holds {p: P3[p.i1,p.i2,F3(p.i3,p.i4,p.i5)]}
      is diophantine Subset of n -xtuples_of NAT from HILB10_3:sch 5(A8,A9);
  defpred Q1[XFinSequence of NAT] means P2[$1.i2,$1.i2,F2($1.i1,$1.i1,$1.i3)];
  defpred Q2[XFinSequence of NAT] means P3[$1.i2,$1.i2,F3($1.i1,$1.i1,$1.i3)];
  defpred Q12[XFinSequence of NAT] means Q1[$1] & Q2[$1];
  defpred Q3[XFinSequence of NAT] means c*$1.i3 <> 0 * $1.i3+0;
  defpred Q123[XFinSequence of NAT] means Q12[$1] & Q3[$1];
  defpred T[XFinSequence of NAT] means
    a*$1.i1 = [\ (b*$1.i2) / (c*$1.i3)/] & c*$1.i3 <> 0;
A11:{p:Q1[p]} is diophantine Subset of n -xtuples_of NAT by A7;
A12:{p:Q2[p]} is diophantine Subset of n -xtuples_of NAT by A10;
  {p:Q1[p] & Q2[p]} is diophantine Subset of n -xtuples_of NAT
     from HILB10_3:sch 3(A11,A12);
  then
A13: {p:Q12[p]} is diophantine Subset of n -xtuples_of NAT;
A14: {p: Q3[p]} is diophantine Subset of n -xtuples_of NAT by HILB10_3:16;
A15: {p:Q12[p] & Q3[p]} is diophantine Subset of n -xtuples_of NAT
    from HILB10_3:sch 3(A13,A14);
A16: for p holds T[p] iff Q123[p]
  proof
    let p;
    thus T[p] implies Q123[p]
    proof
      assume
A17:    T[p];
      then
A18:    (a*p.i1) * (c*p.i3) <= b*p.i2 by XREAL_1:83,INT_1:def 6;
      (b*p.i2) / (c*p.i3)* (c*p.i3) = (c*p.i3) / (c*p.i3)* (b*p.i2)
          by XCMPLX_1:75
        .= 1*(b*p.i2) by A17,XCMPLX_1:60; then
A19:  ((b*p.i2) / (c*p.i3) -1)* (c*p.i3) = b*p.i2 - c*p.i3;
      (b*p.i2) / (c*p.i3)- 1 < a*p.i1 by A17,INT_1:def 6;
      then ((b*p.i2) / (c*p.i3)- 1)*(c*p.i3) < a*p.i1*(c*p.i3)
        by A17,XREAL_1:68;
      hence thesis by A18,A19,XREAL_1:19;
    end;
    assume
A20:  Q123[p];
    then
A21:  a*p.i1 * (c*p.i3) > b*p.i2 - c*p.i3 by XREAL_1:19;
    (b*p.i2) / (c*p.i3)* (c*p.i3) = (c*p.i3) / (c*p.i3)* (b*p.i2)
        by XCMPLX_1:75
      .= 1*(b*p.i2) by A20,XCMPLX_1:60;
    then ((b*p.i2) / (c*p.i3) -1)* (c*p.i3) = b*p.i2 - c*p.i3;
    then
A22:  a*p.i1 > (b*p.i2) / (c*p.i3)-1 by A21,XREAL_1:64;
    (a*p.i1) * (c*p.i3) <= b*p.i2 by A20;
    then a*p.i1 <= (b*p.i2) / (c*p.i3) by A20,XREAL_1:77;
    hence thesis by A20,A22,INT_1:def 6;
  end;
  {p: T[p] } = {q:Q123[q]} from  HILB10_3:sch 2(A16);
  hence thesis by A15;
end;
