Step
*
1
2
1
2
of Lemma
rat-int-part_wf
1. z1 : ℤ
2. z2 : ℤ-o
⊢ eval a = z1 ÷ z2 in
  eval b = z1 rem z2 in
    if (b =z 0) then <a, 0>
    if 0 <z z2 then if 0 ≤z z1 then <a, (b/z2)> else <a - 1, (b + z2/z2)> fi 
    if 0 ≤z z1 then <a - 1, (b + z2/z2)>
    else <a, (b/z2)>
    fi  ∈ {p:ℤ × {r:ℚ| (0 ≤ r) ∧ r < 1} | let x@0,r = p in (z1/z2) = (x@0 + r) ∈ ℚ} 
BY
{ ((InstLemma `div_rem_sum` [⌜z1⌝;⌜z2⌝]⋅ THENA Auto)
   THEN xxx(MoveToConcl (-1)
            THEN (GenConclTerm ⌜z1 rem z2⌝⋅ THENA Auto)
            THEN (GenConclTerm ⌜z1 ÷ z2⌝⋅ THENA Auto)
            THEN (D 0 THENA Auto)
            THEN RepeatFor 2 ((CallByValueReduce 0 THENA Auto))
            THEN AutoSplit)xxx
   )⋅ }
1
1. z1 : ℤ
2. z2 : ℤ-o
3. v : ℤ
4. (z1 rem z2) = v ∈ ℤ
5. v1 : ℤ
6. (z1 ÷ z2) = v1 ∈ ℤ
7. z1 = ((v1 * z2) + v) ∈ ℤ
8. v = 0 ∈ ℤ
⊢ <v1, 0> ∈ {p:ℤ × {r:ℚ| (0 ≤ r) ∧ r < 1} | let x@0,r = p in (z1/z2) = (x@0 + r) ∈ ℚ} 
2
1. z1 : ℤ
2. z2 : ℤ-o
3. v : ℤ
4. v ≠ 0
5. (z1 rem z2) = v ∈ ℤ
6. v1 : ℤ
7. (z1 ÷ z2) = v1 ∈ ℤ
8. z1 = ((v1 * z2) + v) ∈ ℤ
⊢ if 0 <z z2 then if 0 ≤z z1 then <v1, (v/z2)> else <v1 - 1, (v + z2/z2)> fi 
  if 0 ≤z z1 then <v1 - 1, (v + z2/z2)>
  else <v1, (v/z2)>
  fi  ∈ {p:ℤ × {r:ℚ| (0 ≤ r) ∧ r < 1} | let x@0,r = p in (z1/z2) = (x@0 + r) ∈ ℚ} 
Latex:
Latex:
1.  z1  :  \mBbbZ{}
2.  z2  :  \mBbbZ{}\msupminus{}\msupzero{}
\mvdash{}  eval  a  =  z1  \mdiv{}  z2  in
    eval  b  =  z1  rem  z2  in
        if  (b  =\msubz{}  0)  then  <a,  0>
        if  0  <z  z2  then  if  0  \mleq{}z  z1  then  <a,  (b/z2)>  else  <a  -  1,  (b  +  z2/z2)>  fi 
        if  0  \mleq{}z  z1  then  <a  -  1,  (b  +  z2/z2)>
        else  <a,  (b/z2)>
        fi    \mmember{}  \{p:\mBbbZ{}  \mtimes{}  \{r:\mBbbQ{}|  (0  \mleq{}  r)  \mwedge{}  r  <  1\}  |  let  x@0,r  =  p  in  (z1/z2)  =  (x@0  +  r)\} 
By
Latex:
((InstLemma  `div\_rem\_sum`  [\mkleeneopen{}z1\mkleeneclose{};\mkleeneopen{}z2\mkleeneclose{}]\mcdot{}  THENA  Auto)
  THEN  xxx(MoveToConcl  (-1)
                    THEN  (GenConclTerm  \mkleeneopen{}z1  rem  z2\mkleeneclose{}\mcdot{}  THENA  Auto)
                    THEN  (GenConclTerm  \mkleeneopen{}z1  \mdiv{}  z2\mkleeneclose{}\mcdot{}  THENA  Auto)
                    THEN  (D  0  THENA  Auto)
                    THEN  RepeatFor  2  ((CallByValueReduce  0  THENA  Auto))
                    THEN  AutoSplit)xxx
  )\mcdot{}
Home
Index