Step
*
1
2
2
1
of Lemma
State-comb-fun-eq
1. Info : Type
2. B : Type
3. A : Type
4. f : A ⟶ B ⟶ B
5. init : Id ⟶ bag(B)
6. X : EClass(A)
7. es : EO+(Info)
8. e : 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. y : ¬(∃e':{E| ((e' <loc e)
                  ∧ (↑0 <z #(rec-comb(λn.[X][n];λi,w,s. if bag-null(w 0) then s else lifting-2(f) (w 0) s fi init) es 
                             e')))})@i
16. (last(λe'.0 <z #(rec-comb(λn.[X][n];λi,w,s. if bag-null(w 0) then s else lifting-2(f) (w 0) s fi init) es e')) e)
= (inr y )
∈ ((∃e':{E| ((e' <loc e)
            ∧ (↑0 <z #(rec-comb(λn.[X][n];λi,w,s. if bag-null(w 0) then s else lifting-2(f) (w 0) s fi init) es e'))
            ∧ (∀e'':E
                 ((e' <loc e'')
                 
⇒ (e'' <loc e)
                 
⇒ (¬↑0 <z #(rec-comb(λn.[X][n];λi,w,s. if bag-null(w 0) then s else lifting-2(f) (w 0) s fi init) es 
                              e'')))))})
  ∨ (¬(∃e':{E| ((e' <loc e)
               ∧ (↑0 <z #(rec-comb(λn.[X][n];λi,w,s. if bag-null(w 0) then s else lifting-2(f) (w 0) s fi init) es 
                          e')))})))@i
⊢ sv-bag-only(lifting-2(f) (X es e) (init loc(e))) = (f sv-bag-only(X es e) sv-bag-only(init loc(e))) ∈ B
BY
{ (RepUR ``lifting-2 lifting2 lifting-gen-rev`` 0
   THEN RepeatFor 3 ((RecUnfold `lifting-gen-list-rev` 0 THEN Reduce 0))
   ) }
1
1. Info : Type
2. B : Type
3. A : Type
4. f : A ⟶ B ⟶ B
5. init : Id ⟶ bag(B)
6. X : EClass(A)
7. es : EO+(Info)
8. e : 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. y : ¬(∃e':{E| ((e' <loc e)
                  ∧ (↑0 <z #(rec-comb(λn.[X][n];λi,w,s. if bag-null(w 0) then s else lifting-2(f) (w 0) s fi init) es 
                             e')))})@i
16. (last(λe'.0 <z #(rec-comb(λn.[X][n];λi,w,s. if bag-null(w 0) then s else lifting-2(f) (w 0) s fi init) es e')) e)
= (inr y )
∈ ((∃e':{E| ((e' <loc e)
            ∧ (↑0 <z #(rec-comb(λn.[X][n];λi,w,s. if bag-null(w 0) then s else lifting-2(f) (w 0) s fi init) es e'))
            ∧ (∀e'':E
                 ((e' <loc e'')
                 
⇒ (e'' <loc e)
                 
⇒ (¬↑0 <z #(rec-comb(λn.[X][n];λi,w,s. if bag-null(w 0) then s else lifting-2(f) (w 0) s fi init) es 
                              e'')))))})
  ∨ (¬(∃e':{E| ((e' <loc e)
               ∧ (↑0 <z #(rec-comb(λn.[X][n];λi,w,s. if bag-null(w 0) then s else lifting-2(f) (w 0) s fi init) es 
                          e')))})))@i
⊢ sv-bag-only(⋃x∈X es e.⋃x@0∈init loc(e).{f x x@0}) = (f sv-bag-only(X es e) sv-bag-only(init loc(e))) ∈ B
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
\mvdash{}  sv-bag-only(lifting-2(f)  (X  es  e)  (init  loc(e)))
=  (f  sv-bag-only(X  es  e)  sv-bag-only(init  loc(e)))
By
Latex:
(RepUR  ``lifting-2  lifting2  lifting-gen-rev``  0
  THEN  RepeatFor  3  ((RecUnfold  `lifting-gen-list-rev`  0  THEN  Reduce  0))
  )
Home
Index