Step * of Lemma genfact-step

[n:ℤ]. ∀[f:ℕ+ ⟶ ℤ]. ∀[b:ℤ].  (genfact(n;b;m.f[m]) if n <then else f[n] genfact(n 1;b;m.f[m]) fi  ∈ ℤ)
BY
((Assert ∀[n:ℕ]. ∀[f:ℕ+ ⟶ ℤ]. ∀[b:ℤ].
             (genfact(n;b;m.f[m]) if n <then else f[n] genfact(n 1;b;m.f[m]) fi  ∈ ℤBY
          (InductionOnNat
           THEN Auto
           THEN (RW (AddrC [2] UnfoldTopAbC) THEN AutoSplit)
           THEN (GenConclTerm ⌜f[n]⌝⋅ THENA Auto)
           THEN RepeatFor ((CallByValueReduce THENA Auto))
           THEN RWO "genfact-base-linear" 0
           THEN Auto))
   THEN Auto
   THEN Decide ⌜0 ≤ n⌝⋅
   THEN Auto) }

1
1. ∀[n:ℕ]. ∀[f:ℕ+ ⟶ ℤ]. ∀[b:ℤ].  (genfact(n;b;m.f[m]) if n <then else f[n] genfact(n 1;b;m.f[m]) fi  ∈ ℤ)
2. : ℤ
3. : ℕ+ ⟶ ℤ
4. : ℤ
5. ¬(0 ≤ n)
⊢ genfact(n;b;m.f[m]) if n <then else f[n] genfact(n 1;b;m.f[m]) fi  ∈ ℤ


Latex:


Latex:
\mforall{}[n:\mBbbZ{}].  \mforall{}[f:\mBbbN{}\msupplus{}  {}\mrightarrow{}  \mBbbZ{}].  \mforall{}[b:\mBbbZ{}].
    (genfact(n;b;m.f[m])  =  if  n  <z  1  then  b  else  f[n]  *  genfact(n  -  1;b;m.f[m])  fi  )


By


Latex:
((Assert  \mforall{}[n:\mBbbN{}].  \mforall{}[f:\mBbbN{}\msupplus{}  {}\mrightarrow{}  \mBbbZ{}].  \mforall{}[b:\mBbbZ{}].
                      (genfact(n;b;m.f[m])  =  if  n  <z  1  then  b  else  f[n]  *  genfact(n  -  1;b;m.f[m])  fi  )  BY
                (InductionOnNat
                  THEN  Auto
                  THEN  (RW  (AddrC  [2]  UnfoldTopAbC)  0  THEN  AutoSplit)
                  THEN  (GenConclTerm  \mkleeneopen{}f[n]\mkleeneclose{}\mcdot{}  THENA  Auto)
                  THEN  RepeatFor  3  ((CallByValueReduce  0  THENA  Auto))
                  THEN  RWO  "genfact-base-linear"  0
                  THEN  Auto))
  THEN  Auto
  THEN  Decide  \mkleeneopen{}0  \mleq{}  n\mkleeneclose{}\mcdot{}
  THEN  Auto)




Home Index