Step
*
of Lemma
int_term_polynomial
∀t:int_term(). ipolynomial-term(int_term_to_ipoly(t)) ≡ t
BY
{ (BLemma `int_term-induction`
   THEN Auto
   THEN Unfold `int_term_to_ipoly` 0
   THEN Reduce 0
   THEN Try (Fold `int_term_to_ipoly` 0)) }
1
1. const : ℤ
⊢ ipolynomial-term(if const=0  then []  else [<const, []>]) ≡ "const"
2
1. var : ℤ
⊢ ipolynomial-term([<1, [var]>]) ≡ vvar
3
1. left : int_term()
2. right : int_term()
3. ipolynomial-term(int_term_to_ipoly(left)) ≡ left
4. ipolynomial-term(int_term_to_ipoly(right)) ≡ right
⊢ ipolynomial-term(add_ipoly(int_term_to_ipoly(left);int_term_to_ipoly(right))) ≡ left (+) right
4
1. left : int_term()
2. right : int_term()
3. ipolynomial-term(int_term_to_ipoly(left)) ≡ left
4. ipolynomial-term(int_term_to_ipoly(right)) ≡ right
⊢ ipolynomial-term(add_ipoly(int_term_to_ipoly(left);minus-poly(int_term_to_ipoly(right)))) ≡ left (-) right
5
1. left : int_term()
2. right : int_term()
3. ipolynomial-term(int_term_to_ipoly(left)) ≡ left
4. ipolynomial-term(int_term_to_ipoly(right)) ≡ right
⊢ ipolynomial-term(mul_ipoly(int_term_to_ipoly(left);int_term_to_ipoly(right))) ≡ left (*) right
6
1. num : int_term()
2. ipolynomial-term(int_term_to_ipoly(num)) ≡ num
⊢ ipolynomial-term(minus-poly(int_term_to_ipoly(num))) ≡ "-"num
Latex:
Latex:
\mforall{}t:int\_term().  ipolynomial-term(int\_term\_to\_ipoly(t))  \mequiv{}  t
By
Latex:
(BLemma  `int\_term-induction`
  THEN  Auto
  THEN  Unfold  `int\_term\_to\_ipoly`  0
  THEN  Reduce  0
  THEN  Try  (Fold  `int\_term\_to\_ipoly`  0))
Home
Index