Step * 2 1 1 2 of Lemma add-polynom_wf


1. {1...}
2. ∀[p,q:polynom(n 1)].  (add-polynom(n 1;tt;p;q) ∈ polynom(n 1))
3. polynom(n 1)
4. polynom(n 1) List
5. ∀[q:polynom(n 1) List]. ∀[rmz:𝔹].  (add-polynom(n;rmz;v;q) ∈ polynom(n 1) List)
6. polynom(n 1) List
7. rmz : 𝔹
⊢ add-polynom(n;rmz;[u v];q) ∈ polynom(n 1) List
BY
(MoveToConcl (-1)
   THEN ListInd (-1)
   THEN Auto
   THEN RecUnfold `add-polynom` 0
   THEN (SplitOnConclITE THENA Auto)
   THEN ((Assert ⌜False⌝⋅ THEN Complete (Auto)) ORELSE Reduce 0)
   THEN (CallByValueReduce THENA Auto)
   THEN Reduce 0
   THEN ((CallByValueReduce THENA Auto) ORELSE Auto)
   THEN Reduce 0
   THEN RepeatFor ((CallByValueReduce THENA Auto))) }

1
1. {1...}
2. ∀[p,q:polynom(n 1)].  (add-polynom(n 1;tt;p;q) ∈ polynom(n 1))
3. polynom(n 1)
4. polynom(n 1) List
5. ∀[q:polynom(n 1) List]. ∀[rmz:𝔹].  (add-polynom(n;rmz;v;q) ∈ polynom(n 1) List)
6. u1 polynom(n 1)
7. v1 polynom(n 1) List
8. ∀rmz:𝔹(add-polynom(n;rmz;[u v];v1) ∈ polynom(n 1) List)
9. rmz : 𝔹@i
10. ¬(n 0 ∈ ℤ)
⊢ if (||v|| 1) < (||v1|| 1)
     then let cs ⟵ add-polynom(n;ff;[u v];v1)
          in [u1 cs]
     else if (||v1|| 1) < (||v|| 1)
             then let cs ⟵ add-polynom(n;ff;v;[u1 v1])
                  in [u cs]
             else let c ⟵ add-polynom(n 1;tt;u;u1)
                  in let cs ⟵ add-polynom(n;ff;v;v1)
                     in if rmz then rm-zeros(n 1;[c cs]) else [c cs] fi  ∈ polynom(n 1) List


Latex:


Latex:

1.  n  :  \{1...\}
2.  \mforall{}[p,q:polynom(n  -  1)].    (add-polynom(n  -  1;tt;p;q)  \mmember{}  polynom(n  -  1))
3.  u  :  polynom(n  -  1)
4.  v  :  polynom(n  -  1)  List
5.  \mforall{}[q:polynom(n  -  1)  List].  \mforall{}[rmz:\mBbbB{}].    (add-polynom(n;rmz;v;q)  \mmember{}  polynom(n  -  1)  List)
6.  q  :  polynom(n  -  1)  List
7.  rmz  :  \mBbbB{}
\mvdash{}  add-polynom(n;rmz;[u  /  v];q)  \mmember{}  polynom(n  -  1)  List


By


Latex:
(MoveToConcl  (-1)
  THEN  ListInd  (-1)
  THEN  Auto
  THEN  RecUnfold  `add-polynom`  0
  THEN  (SplitOnConclITE  THENA  Auto)
  THEN  ((Assert  \mkleeneopen{}False\mkleeneclose{}\mcdot{}  THEN  Complete  (Auto))  ORELSE  Reduce  0)
  THEN  (CallByValueReduce  0  THENA  Auto)
  THEN  Reduce  0
  THEN  ((CallByValueReduce  0  THENA  Auto)  ORELSE  Auto)
  THEN  Reduce  0
  THEN  RepeatFor  2  ((CallByValueReduce  0  THENA  Auto)))




Home Index