Step * 2 2 1 1 1 1 of Lemma lookup_omral_times


1. OCMon
2. CDRng
3. qs |omral(g;r)|
4. |g|
5. ∀r:CDRng. (r↓+gp ∈ IAbMonoid)
6. r↓+gp ∈ AbDMon
7. r↓xmn ∈ AbDMon
8. ps |omral(g;r)|
9. ((ps ** qs)[z])
(msFor{r↓+gp} kp ∈ dom(ps)
     msFor{r↓+gp} vp ∈ dom(qs)
       when (kp vp) =b z.
         ((ps[kp]) (qs[vp])))
∈ |r|
10. kp |g|
11. vp |r|
12. ↑before(kp;map(λkp.(fst(kp));ps))
13. ¬(vp 0 ∈ |r|)
14. g ∈ DMon
⊢ (((<kp,vp>qs) ++ (ps ** qs))[z])
((msFor{r↓+gp} y ∈ dom(qs)
      when (kp y) =b z.
        (if kp =b kp then vp else ps[kp] fi  (qs[y]))) 
   +r 
   (msFor{r↓+gp} x ∈ dom(ps)
      msFor{r↓+gp} y ∈ dom(qs)
        when (x y) =b z.
          (if kp =b then vp else ps[x] fi  (qs[y]))))
∈ |r|
BY
The ifthenelse reduction should be done 
  more intelligently. 
((RWN (LemmaC `ite_rw_true`) 
THENM RWH (LemmaC `ite_rw_false`) 
THENM RWH (LemmaC `lookup_omral_plus`) 0) THENA Auto) ⋅ }

1
.....rewrite subgoal..... 
1. OCMon
2. CDRng
3. qs |omral(g;r)|
4. |g|
5. ∀r:CDRng. (r↓+gp ∈ IAbMonoid)
6. r↓+gp ∈ AbDMon
7. r↓xmn ∈ AbDMon
8. ps |omral(g;r)|
9. ((ps ** qs)[z])
(msFor{r↓+gp} kp ∈ dom(ps)
     msFor{r↓+gp} vp ∈ dom(qs)
       when (kp vp) =b z.
         ((ps[kp]) (qs[vp])))
∈ |r|
10. kp |g|
11. vp |r|
12. ↑before(kp;map(λkp.(fst(kp));ps))
13. ¬(vp 0 ∈ |r|)
14. g ∈ DMon
15. |(g↓oset)|
16. ↑(x
b dom(ps))
17. |(g↓oset)|
18. ↑(y
b dom(qs))
⊢ ¬↑(kp =b x)

2
1. OCMon
2. CDRng
3. qs |omral(g;r)|
4. |g|
5. ∀r:CDRng. (r↓+gp ∈ IAbMonoid)
6. r↓+gp ∈ AbDMon
7. r↓xmn ∈ AbDMon
8. ps |omral(g;r)|
9. ((ps ** qs)[z])
(msFor{r↓+gp} kp ∈ dom(ps)
     msFor{r↓+gp} vp ∈ dom(qs)
       when (kp vp) =b z.
         ((ps[kp]) (qs[vp])))
∈ |r|
10. kp |g|
11. vp |r|
12. ↑before(kp;map(λkp.(fst(kp));ps))
13. ¬(vp 0 ∈ |r|)
14. g ∈ DMon
⊢ (((<kp,vp>qs)[z]) +r ((ps ** qs)[z]))
((msFor{r↓+gp} y ∈ dom(qs)
      when (kp y) =b z.
        (vp (qs[y]))) 
   +r 
   (msFor{r↓+gp} x ∈ dom(ps)
      msFor{r↓+gp} y ∈ dom(qs)
        when (x y) =b z.
          ((ps[x]) (qs[y]))))
∈ |r|


Latex:


Latex:

1.  g  :  OCMon
2.  r  :  CDRng
3.  qs  :  |omral(g;r)|
4.  z  :  |g|
5.  \mforall{}r:CDRng.  (r\mdownarrow{}+gp  \mmember{}  IAbMonoid)
6.  r\mdownarrow{}+gp  \mmember{}  AbDMon
7.  r\mdownarrow{}xmn  \mmember{}  AbDMon
8.  ps  :  |omral(g;r)|
9.  ((ps  **  qs)[z])
=  (msFor\{r\mdownarrow{}+gp\}  kp  \mmember{}  dom(ps)
          msFor\{r\mdownarrow{}+gp\}  vp  \mmember{}  dom(qs)
              when  (kp  *  vp)  =\msubb{}  z.
                  ((ps[kp])  *  (qs[vp])))
10.  kp  :  |g|
11.  vp  :  |r|
12.  \muparrow{}before(kp;map(\mlambda{}kp.(fst(kp));ps))
13.  \mneg{}(vp  =  0)
14.  g  \mmember{}  DMon
\mvdash{}  (((<kp,vp>*  qs)  ++  (ps  **  qs))[z])
=  ((msFor\{r\mdownarrow{}+gp\}  y  \mmember{}  dom(qs)
            when  (kp  *  y)  =\msubb{}  z.
                (if  kp  =\msubb{}  kp  then  vp  else  ps[kp]  fi    *  (qs[y]))) 
      +r 
      (msFor\{r\mdownarrow{}+gp\}  x  \mmember{}  dom(ps)
            msFor\{r\mdownarrow{}+gp\}  y  \mmember{}  dom(qs)
                when  (x  *  y)  =\msubb{}  z.
                    (if  kp  =\msubb{}  x  then  vp  else  ps[x]  fi    *  (qs[y]))))


By


Latex:
\%  The  ifthenelse  reduction  should  be  done 
    more  intelligently.  \% 
((RWN  1  (LemmaC  `ite\_rw\_true`)  0 
THENM  RWH  (LemmaC  `ite\_rw\_false`)  0 
THENM  RWH  (LemmaC  `lookup\_omral\_plus`)  0)  THENA  Auto)  \mcdot{}




Home Index