Step * 1 2 2 1 1 2 1 of Lemma State-comb-fun-eq


1. Info Type
2. Type
3. Type
4. A ⟶ B ⟶ B
5. init Id ⟶ bag(B)
6. EClass(A)
7. es EO+(Info)
8. E
9. ¬((X es e) {} ∈ bag(A))
10. ∀l:Id. (1 ≤ #(init l))
11. ∀l:Id. single-valued-bag(init l;B)
12. single-valued-classrel(es;X;A)
13. ↑e ∈b X
14. ↑first(e)
15. : ¬(∃e':{E| ((e' <loc e)
                  ∧ (↑0 <#(rec-comb(λn.[X][n];λi,w,s. if bag-null(w 0) then else lifting-2(f) (w 0) fi ;init) es 
                             e')))})@i
16. (last(λe'.0 <#(rec-comb(λn.[X][n];λi,w,s. if bag-null(w 0) then else lifting-2(f) (w 0) fi ;init) es e')) e)
(inr )
∈ ((∃e':{E| ((e' <loc e)
            ∧ (↑0 <#(rec-comb(λn.[X][n];λi,w,s. if bag-null(w 0) then else lifting-2(f) (w 0) fi ;init) es e'))
            ∧ (∀e'':E
                 ((e' <loc e'')
                  (e'' <loc e)
                  (¬↑0 <#(rec-comb(λn.[X][n];λi,w,s. if bag-null(w 0) then else lifting-2(f) (w 0) fi ;init) es 
                              e'')))))})
  ∨ (∃e':{E| ((e' <loc e)
               ∧ (↑0 <#(rec-comb(λn.[X][n];λi,w,s. if bag-null(w 0) then else lifting-2(f) (w 0) fi ;init) es 
                          e')))})))@i
17. 1 ≤ #(init loc(e))
⊢ sv-bag-only(⋃x@0∈init loc(e).{f sv-bag-only(X es e) x@0}) (f sv-bag-only(X es e) sv-bag-only(init loc(e))) ∈ B
BY
((InstHyp [⌜loc(e)⌝(-8)⋅ THENA Auto)
   THEN (InstLemma `sv-bag-only-combine` [⌜B⌝;⌜B⌝;⌜init loc(e)⌝;⌜λ2x@0.{f sv-bag-only(X es e) x@0}⌝]⋅ THENA Auto)
   THEN Try (Complete ((BLemma `single-valued-classrel-implies-bag` THEN Auto)))
   THEN Try (Complete ((BLemma `member-eclass-iff-size` THEN Auto)))
   THEN Try (Complete ((BLemma `single-valued-bag-single`
                        THEN Auto
                        THEN Try (Complete ((BLemma `single-valued-classrel-implies-bag` THEN Auto)))
                        THEN Try (Complete ((BLemma `member-eclass-iff-size` THEN Auto))))))
   THEN Reduce 0
   THEN Auto
   THEN Assert ⌜sv-bag-only({f sv-bag-only(X es e) sv-bag-only(init loc(e))})
                (f sv-bag-only(X es e) sv-bag-only(init loc(e)))
                ∈ B⌝⋅
   THEN Auto
   THEN RepUR ``sv-bag-only single-bag`` 0
   THEN Try (Fold `sv-bag-only` 0)
   THEN Auto
   THEN Try ((BLemma `single-valued-classrel-implies-bag` THEN Auto))
   THEN Try ((BLemma `member-eclass-iff-size` THEN Auto))) }


Latex:


Latex:

1.  Info  :  Type
2.  B  :  Type
3.  A  :  Type
4.  f  :  A  {}\mrightarrow{}  B  {}\mrightarrow{}  B
5.  init  :  Id  {}\mrightarrow{}  bag(B)
6.  X  :  EClass(A)
7.  es  :  EO+(Info)
8.  e  :  E
9.  \mneg{}((X  es  e)  =  \{\})
10.  \mforall{}l:Id.  (1  \mleq{}  \#(init  l))
11.  \mforall{}l:Id.  single-valued-bag(init  l;B)
12.  single-valued-classrel(es;X;A)
13.  \muparrow{}e  \mmember{}\msubb{}  X
14.  \muparrow{}first(e)
15.  y  :  \mneg{}(\mexists{}e':\{E|  ((e'  <loc  e)
                                    \mwedge{}  (\muparrow{}0  <z  \#(rec-comb(\mlambda{}n.[X][n];\mlambda{}i,w,s.  if  bag-null(w  0)
                                                                                                              then  s
                                                                                                              else  lifting-2(f)  (w  0)  s
                                                                                                              fi  ;init) 
                                                          es 
                                                          e')))\})@i
16.  (last(\mlambda{}e'.0  <z  \#(rec-comb(\mlambda{}n.[X][n];\mlambda{}i,w,s.  if  bag-null(w  0)
                                                                                              then  s
                                                                                              else  lifting-2(f)  (w  0)  s
                                                                                              fi  ;init) 
                                          es 
                                          e')) 
          e)
=  (inr  y  )@i
17.  1  \mleq{}  \#(init  loc(e))
\mvdash{}  sv-bag-only(\mcup{}x@0\mmember{}init  loc(e).\{f  sv-bag-only(X  es  e)  x@0\})
=  (f  sv-bag-only(X  es  e)  sv-bag-only(init  loc(e)))


By


Latex:
((InstHyp  [\mkleeneopen{}loc(e)\mkleeneclose{}]  (-8)\mcdot{}  THENA  Auto)
  THEN  (InstLemma  `sv-bag-only-combine`  [\mkleeneopen{}B\mkleeneclose{};\mkleeneopen{}B\mkleeneclose{};\mkleeneopen{}init  loc(e)\mkleeneclose{};\mkleeneopen{}\mlambda{}\msubtwo{}x@0.\{f  sv-bag-only(X  es  e)  x@0\}\mkleeneclose{}]\mcdot{}
              THENA  Auto
              )
  THEN  Try  (Complete  ((BLemma  `single-valued-classrel-implies-bag`  THEN  Auto)))
  THEN  Try  (Complete  ((BLemma  `member-eclass-iff-size`  THEN  Auto)))
  THEN  Try  (Complete  ((BLemma  `single-valued-bag-single`
                                            THEN  Auto
                                            THEN  Try  (Complete  ((BLemma  `single-valued-classrel-implies-bag`  THEN  Auto)))
                                            THEN  Try  (Complete  ((BLemma  `member-eclass-iff-size`  THEN  Auto))))))
  THEN  Reduce  0
  THEN  Auto
  THEN  Assert  \mkleeneopen{}sv-bag-only(\{f  sv-bag-only(X  es  e)  sv-bag-only(init  loc(e))\})
                            =  (f  sv-bag-only(X  es  e)  sv-bag-only(init  loc(e)))\mkleeneclose{}\mcdot{}
  THEN  Auto
  THEN  RepUR  ``sv-bag-only  single-bag``  0
  THEN  Try  (Fold  `sv-bag-only`  0)
  THEN  Auto
  THEN  Try  ((BLemma  `single-valued-classrel-implies-bag`  THEN  Auto))
  THEN  Try  ((BLemma  `member-eclass-iff-size`  THEN  Auto)))




Home Index