Step * of Lemma poly-val-fun_wf

[n:ℕ]. ∀[p:polyform(n)].  (poly-val-fun(p) ∈ {l:ℤ List| n ≤ ||l||}  ⟶ ℤ)
BY
((Assert ⌜∀k:ℕ. ∀[n:ℕ]. ∀[p:polyform(n)].  ((tree_size(p) ≤ k)  (poly-val-fun(p) ∈ {l:ℤ List| n ≤ ||l||}  ⟶ ℤ))⌝⋅
   THENM (Auto THEN InstHyp [⌜tree_size(p)⌝;⌜n⌝;⌜p⌝1⋅ THEN Auto)
   )
   THEN InductionOnNat
   THEN Auto
   THEN (RepeatFor (DVar `p')
         THEN RecUnfold `tree_size` (-1)
         THEN Reduce -1
         THEN Try (((Assert (0 ≤ tree_size(left)) ∧ (0 ≤ tree_size(p2)) BY Auto) THEN Auto))
         THEN RepUR ``poly-val-fun`` 0
         THEN (Fold `poly-val-fun` ORELSE Auto))⋅}

1
1. : ℤ
2. 0 < k
3. ∀[n:ℕ]. ∀[p:polyform(n)].  ((tree_size(p) ≤ (k 1))  (poly-val-fun(p) ∈ {l:ℤ List| n ≤ ||l||}  ⟶ ℤ))
4. : ℕ
5. left tree(ℤ)
6. p2 tree(ℤ)
7. ↑(ispolyform(tree_node(left;p2)) n)
8. ((1 tree_size(left)) tree_size(p2)) ≤ k
9. 0 ≤ tree_size(left)
10. 0 ≤ tree_size(p2)
⊢ λl.eval tl(l) in
     eval av poly-val-fun(left) tl(l) in
     eval bv poly-val-fun(p2) in
       if bv=0  then av  else eval hd(l) in av (h bv) ∈ {l:ℤ List| n ≤ ||l||}  ⟶ ℤ


Latex:


Latex:
\mforall{}[n:\mBbbN{}].  \mforall{}[p:polyform(n)].    (poly-val-fun(p)  \mmember{}  \{l:\mBbbZ{}  List|  n  \mleq{}  ||l||\}    {}\mrightarrow{}  \mBbbZ{})


By


Latex:
((Assert  \mkleeneopen{}\mforall{}k:\mBbbN{}
                        \mforall{}[n:\mBbbN{}].  \mforall{}[p:polyform(n)].
                            ((tree\_size(p)  \mleq{}  k)  {}\mRightarrow{}  (poly-val-fun(p)  \mmember{}  \{l:\mBbbZ{}  List|  n  \mleq{}  ||l||\}    {}\mrightarrow{}  \mBbbZ{}))\mkleeneclose{}\mcdot{}
  THENM  (Auto  THEN  InstHyp  [\mkleeneopen{}tree\_size(p)\mkleeneclose{};\mkleeneopen{}n\mkleeneclose{};\mkleeneopen{}p\mkleeneclose{}]  1\mcdot{}  THEN  Auto)
  )
  THEN  InductionOnNat
  THEN  Auto
  THEN  (RepeatFor  2  (DVar  `p')
              THEN  RecUnfold  `tree\_size`  (-1)
              THEN  Reduce  -1
              THEN  Try  (((Assert  (0  \mleq{}  tree\_size(left))  \mwedge{}  (0  \mleq{}  tree\_size(p2))  BY  Auto)  THEN  Auto))
              THEN  RepUR  ``poly-val-fun``  0
              THEN  (Fold  `poly-val-fun`  0  ORELSE  Auto))\mcdot{})




Home Index