Step * 1 2 of Lemma pv11_p1_pmax_desc_implies


1. Cmd {T:Type| valueall-type(T)} @i'
2. ldrs_uid Id ─→ ℤ@i
3. pvals (pv11_p1_Ballot_Num() × ℤ × Cmd) List@i
4. pv11_p1_Ballot_Num()@i
5. : ℤ@i
6. Cmd@i
7. (<b, s, c> ∈ pvals)@i
8. (accumulate (with value and list item x):
     let b,s,c in 
     let b',s',c' in 
     if (s =z s') then if pv11_p1_leq_bnum(ldrs_uid) b' then else fi  else fi 
    over list:
      pvals
    with starting value:
     <b, s, c>) ∈ pvals)
⊢ ↑let bn,z accumulate (with value and list item x):
               let b,s,c in 
               let b',s',c' in 
               if (s =z s') then if pv11_p1_leq_bnum(ldrs_uid) b' then else fi  else fi 
              over list:
                pvals
              with starting value:
               <b, s, c>
   in let s,c 
      in ¬b(∃zw∈pvals.let bn',z zw 
                      in let s',z 
                         in (s =z s') ∧b (bn  < bn'))_b
BY
((InstLemma `list_accum_invariant3` [⌈pv11_p1_Ballot_Num() × ℤ × Cmd⌉;⌈pv11_p1_Ballot_Num() × ℤ × Cmd⌉;
    ⌈λa,x. let b,s,c in 
          let b',s',c' in 
          if (s =z s') then if pv11_p1_leq_bnum(ldrs_uid) b' then else fi  else fi ⌉;
    ⌈λx,L. (↑let bn,z in let s,c in ¬b(∃zw∈L.let bn',z zw in let s',z in (s =z s') ∧b (bn  < bn'))_b)⌉;⌈pv\000Cals⌉
    ;⌈<b, s, c>⌉]⋅
    THENA Auto
    )
   THEN All (RepUR ``so_apply``)
   THEN Auto) }

1
1. Cmd {T:Type| valueall-type(T)} @i'
2. ldrs_uid Id ─→ ℤ@i
3. pvals (pv11_p1_Ballot_Num() × ℤ × Cmd) List@i
4. pv11_p1_Ballot_Num()@i
5. : ℤ@i
6. Cmd@i
7. (<b, s, c> ∈ pvals)@i
8. (accumulate (with value and list item x):
     let b,s,c in 
     let b',s',c' in 
     if (s =z s') then if pv11_p1_leq_bnum(ldrs_uid) b' then else fi  else fi 
    over list:
      pvals
    with starting value:
     <b, s, c>) ∈ pvals)
9. pv11_p1_Ballot_Num() × ℤ × Cmd@i
10. pv11_p1_Ballot_Num() × ℤ × Cmd@i
11. L' (pv11_p1_Ballot_Num() × ℤ × Cmd) List@i
12. L' [x] ≤ pvals@i
13. ↑let bn,z 
     in let s,c 
        in ¬b(∃zw∈L'.let bn',z zw 
                     in let s',z 
                        in (s =z s') ∧b (bn  < bn'))_b@18
⊢ ↑let bn,z let b,s,c in 
   let b',s',c' in 
   if (s =z s') then if pv11_p1_leq_bnum(ldrs_uid) b' then else fi  else fi  
   in let s,c 
      in ¬b(∃zw∈L' [x].let bn',z zw 
                         in let s',z 
                            in (s =z s') ∧b (bn  < bn'))_b


Latex:



Latex:

1.  Cmd  :  \{T:Type|  valueall-type(T)\}  @i'
2.  ldrs$_{uid}$  :  Id  {}\mrightarrow{}  \mBbbZ{}@i
3.  pvals  :  (pv11\_p1\_Ballot\_Num()  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd)  List@i
4.  b  :  pv11\_p1\_Ballot\_Num()@i
5.  s  :  \mBbbZ{}@i
6.  c  :  Cmd@i
7.  (<b,  s,  c>  \mmember{}  pvals)@i
8.  (accumulate  (with  value  a  and  list  item  x):
          let  b,s,c  =  a  in 
          let  b',s',c'  =  x  in 
          if  (s  =\msubz{}  s')  then  if  pv11\_p1\_leq\_bnum(ldrs$_{uid}$)  b'  b  then  a  else  x  fi    \000Celse  a  fi 
        over  list:
            pvals
        with  starting  value:
          <b,  s,  c>)  \mmember{}  pvals)
\mvdash{}  \muparrow{}let  bn,z  =  accumulate  (with  value  a  and  list  item  x):
                              let  b,s,c  =  a  in 
                              let  b',s',c'  =  x  in 
                              if  (s  =\msubz{}  s')  then  if  pv11\_p1\_leq\_bnum(ldrs$_{uid}$)  b'  b  then  a  e\000Clse  x  fi    else  a  fi 
                            over  list:
                                pvals
                            with  starting  value:
                              <b,  s,  c>) 
      in  let  s,c  =  z 
            in  \mneg{}\msubb{}(\mexists{}zw\mmember{}pvals.let  bn',z  =  zw 
                                            in  let  s',z  =  z 
                                                  in  (s  =\msubz{}  s')  \mwedge{}\msubb{}  (bn    <  bn'))\_b


By


Latex:
((InstLemma  `list\_accum\_invariant3`  [\mkleeneopen{}pv11\_p1\_Ballot\_Num()  \mtimes{}  \mBbbZ{}  \mtimes{}  Cmd\mkleeneclose{};\mkleeneopen{}pv11\_p1\_Ballot\_Num()
                                                                                                                                              \mtimes{}  \mBbbZ{}
                                                                                                                                              \mtimes{}  Cmd\mkleeneclose{};
    \mkleeneopen{}\mlambda{}a,x.  let  b,s,c  =  a  in 
                let  b',s',c'  =  x  in 
                if  (s  =\msubz{}  s')  then  if  pv11\_p1\_leq\_bnum(ldrs$_{uid}$)  b'  b  then  a  else  x  f\000Ci    else  a  fi  \mkleeneclose{};
    \mkleeneopen{}\mlambda{}x,L.  (\muparrow{}let  bn,z  =  x 
                      in  let  s,c  =  z 
                            in  \mneg{}\msubb{}(\mexists{}zw\mmember{}L.let  bn',z  =  zw 
                                                    in  let  s',z  =  z 
                                                          in  (s  =\msubz{}  s')  \mwedge{}\msubb{}  (bn    <  bn'))\_b)\mkleeneclose{};\mkleeneopen{}pvals\mkleeneclose{};\mkleeneopen{}<b,  s,  c>\mkleeneclose{}]\mcdot{}
    THENA  Auto
    )
  THEN  All  (RepUR  ``so\_apply``)
  THEN  Auto)




Home Index