Step
*
1
2
of Lemma
factorit_wf
.....falsecase..... 
1. d : ℕ
2. ∀d:ℕd
     ∀[x:ℕ+]. ∀[b:ℕ].
       (x - b * b < d
       
⇒ (2 ≤ b)
       
⇒ (∀[tried:{L:{p:ℕ| prime(p) ∧ p < b}  List| ∀p:{p:ℕ| prime(p)} . (p < b 
⇒ ((p ∈ L) ∧ (¬(p | x))))} ].
           ∀[facs:{p:ℕ| prime(p)}  List].
             (factorit(x;b;tried;facs) ∈ {L:{p:ℕ| prime(p)}  List| 
                                          reduce(λp,q. (p * q);1;L) = (x * reduce(λp,q. (p * q);1;facs)) ∈ ℤ} )))
3. x : ℕ+
4. b : ℕ
5. x - b * b < d
6. 2 ≤ b
7. tried : {L:{p:ℕ| prime(p) ∧ p < b}  List| ∀p:{p:ℕ| prime(p)} . (p < b 
⇒ ((p ∈ L) ∧ (¬(p | x))))} 
8. facs : {p:ℕ| prime(p)}  List
9. (b * b) ≤ x
⊢ if (∃p∈tried.(b rem p =z 0))_b then eval b' = b + 1 in factorit(x;b';tried;facs)
  if (x rem b =z 0) then eval x' = x ÷ b in factorit(x';b;tried;[b / facs])
  else eval b' = b + 1 in
       factorit(x;b';[b / tried];facs)
  fi  ∈ {L:{p:ℕ| prime(p)}  List| reduce(λp,q. (p * q);1;L) = (x * reduce(λp,q. (p * q);1;facs)) ∈ ℤ} 
BY
{ ((Assert ∀p:{p:ℕ| prime(p)} . p ≠ 0 BY (Auto THEN RepeatFor 2 ((D (-1) THEN Auto)))) THEN AutoSplit) }
1
1. d : ℕ
2. ∀d:ℕd
     ∀[x:ℕ+]. ∀[b:ℕ].
       (x - b * b < d
       
⇒ (2 ≤ b)
       
⇒ (∀[tried:{L:{p:ℕ| prime(p) ∧ p < b}  List| ∀p:{p:ℕ| prime(p)} . (p < b 
⇒ ((p ∈ L) ∧ (¬(p | x))))} ].
           ∀[facs:{p:ℕ| prime(p)}  List].
             (factorit(x;b;tried;facs) ∈ {L:{p:ℕ| prime(p)}  List| 
                                          reduce(λp,q. (p * q);1;L) = (x * reduce(λp,q. (p * q);1;facs)) ∈ ℤ} )))
3. x : ℕ+
4. b : ℕ
5. x - b * b < d
6. 2 ≤ b
7. tried : {L:{p:ℕ| prime(p) ∧ p < b}  List| ∀p:{p:ℕ| prime(p)} . (p < b 
⇒ ((p ∈ L) ∧ (¬(p | x))))} 
8. facs : {p:ℕ| prime(p)}  List
9. (b * b) ≤ x
10. ∀p:{p:ℕ| prime(p)} . p ≠ 0
11. (∃p∈tried. (b rem p) = 0 ∈ ℤ)
⊢ eval b' = b + 1 in
  factorit(x;b';tried;facs) ∈ {L:{p:ℕ| prime(p)}  List| reduce(λp,q. (p * q);1;L) = (x * reduce(λp,q. (p * q);1;facs)) ∈\000C ℤ} 
2
1. d : ℕ
2. ∀d:ℕd
     ∀[x:ℕ+]. ∀[b:ℕ].
       (x - b * b < d
       
⇒ (2 ≤ b)
       
⇒ (∀[tried:{L:{p:ℕ| prime(p) ∧ p < b}  List| ∀p:{p:ℕ| prime(p)} . (p < b 
⇒ ((p ∈ L) ∧ (¬(p | x))))} ].
           ∀[facs:{p:ℕ| prime(p)}  List].
             (factorit(x;b;tried;facs) ∈ {L:{p:ℕ| prime(p)}  List| 
                                          reduce(λp,q. (p * q);1;L) = (x * reduce(λp,q. (p * q);1;facs)) ∈ ℤ} )))
3. x : ℕ+
4. b : ℕ
5. x - b * b < d
6. 2 ≤ b
7. tried : {L:{p:ℕ| prime(p) ∧ p < b}  List| ∀p:{p:ℕ| prime(p)} . (p < b 
⇒ ((p ∈ L) ∧ (¬(p | x))))} 
8. ¬(∃p∈tried. (b rem p) = 0 ∈ ℤ)
9. facs : {p:ℕ| prime(p)}  List
10. (b * b) ≤ x
11. ∀p:{p:ℕ| prime(p)} . p ≠ 0
⊢ if (x rem b =z 0)
  then eval x' = x ÷ b in
       factorit(x';b;tried;[b / facs])
  else eval b' = b + 1 in
       factorit(x;b';[b / tried];facs)
  fi  ∈ {L:{p:ℕ| prime(p)}  List| reduce(λp,q. (p * q);1;L) = (x * reduce(λp,q. (p * q);1;facs)) ∈ ℤ} 
Latex:
Latex:
.....falsecase..... 
1.  d  :  \mBbbN{}
2.  \mforall{}d:\mBbbN{}d
          \mforall{}[x:\mBbbN{}\msupplus{}].  \mforall{}[b:\mBbbN{}].
              (x  -  b  *  b  <  d
              {}\mRightarrow{}  (2  \mleq{}  b)
              {}\mRightarrow{}  (\mforall{}[tried:\{L:\{p:\mBbbN{}|  prime(p)  \mwedge{}  p  <  b\}    List| 
                                        \mforall{}p:\{p:\mBbbN{}|  prime(p)\}  .  (p  <  b  {}\mRightarrow{}  ((p  \mmember{}  L)  \mwedge{}  (\mneg{}(p  |  x))))\}  ].
                      \mforall{}[facs:\{p:\mBbbN{}|  prime(p)\}    List].
                          (factorit(x;b;tried;facs)  \mmember{}  \{L:\{p:\mBbbN{}|  prime(p)\}    List| 
                                                                                    reduce(\mlambda{}p,q.  (p  *  q);1;L)  =  (x  *  reduce(\mlambda{}p,q.  (p  *  q);1;fa\000Ccs))\}  )))
3.  x  :  \mBbbN{}\msupplus{}
4.  b  :  \mBbbN{}
5.  x  -  b  *  b  <  d
6.  2  \mleq{}  b
7.  tried  :  \{L:\{p:\mBbbN{}|  prime(p)  \mwedge{}  p  <  b\}    List|  \mforall{}p:\{p:\mBbbN{}|  prime(p)\}  .  (p  <  b  {}\mRightarrow{}  ((p  \mmember{}  L)  \mwedge{}  (\mneg{}(p  |  x))))\}\000C 
8.  facs  :  \{p:\mBbbN{}|  prime(p)\}    List
9.  (b  *  b)  \mleq{}  x
\mvdash{}  if  (\mexists{}p\mmember{}tried.(b  rem  p  =\msubz{}  0))\_b  then  eval  b'  =  b  +  1  in  factorit(x;b';tried;facs)
    if  (x  rem  b  =\msubz{}  0)  then  eval  x'  =  x  \mdiv{}  b  in  factorit(x';b;tried;[b  /  facs])
    else  eval  b'  =  b  +  1  in
              factorit(x;b';[b  /  tried];facs)
    fi    \mmember{}  \{L:\{p:\mBbbN{}|  prime(p)\}    List|  reduce(\mlambda{}p,q.  (p  *  q);1;L)  =  (x  *  reduce(\mlambda{}p,q.  (p  *  q);1;facs))\} 
By
Latex:
((Assert  \mforall{}p:\{p:\mBbbN{}|  prime(p)\}  .  p  \mneq{}  0  BY  (Auto  THEN  RepeatFor  2  ((D  (-1)  THEN  Auto))))  THEN  AutoSplit)
Home
Index