Step * 1 of Lemma Comm-process-q_aux_wf


1. Id × (pi_prefix() List)
2. (Id × (pi_prefix() List)) List
3. Comm-process-q_aux(v) ∈ Id
   ─→ st:Id fp-> pi_prefix() List
   ─→ ((Id × (pi_prefix() List)) List × st:Id fp-> pi_prefix() List × Id × ((ℕ × Id × ℕ × Name) List))
4. id Id@i
5. st st:Id fp-> pi_prefix() List@i
6. loc Id@i
7. preList pi_prefix() List@i
⊢ rec-case(v) of
  [] => λid,st. <[], st, id, []>
  h::t =>
   r.λid,st. let loc fst(h) in
              let preList snd(h) in
              let mList get-triples(preList;st) in
              if null(mList) then id loc preList ⊕ st else <t, st, loc, mList> fi  
  id 
  loc preList ⊕ st ∈ (Id × (pi_prefix() List)) List × st:Id fp-> pi_prefix() List × Id × ((ℕ × Id × ℕ × Name) List)
BY
Fold `Comm-process-q_aux` }

1
1. Id × (pi_prefix() List)
2. (Id × (pi_prefix() List)) List
3. Comm-process-q_aux(v) ∈ Id
   ─→ st:Id fp-> pi_prefix() List
   ─→ ((Id × (pi_prefix() List)) List × st:Id fp-> pi_prefix() List × Id × ((ℕ × Id × ℕ × Name) List))
4. id Id@i
5. st st:Id fp-> pi_prefix() List@i
6. loc Id@i
7. preList pi_prefix() List@i
⊢ Comm-process-q_aux(v) id loc preList ⊕ st ∈ (Id × (pi_prefix() List)) List
  × st:Id fp-> pi_prefix() List
  × Id
  × ((ℕ × Id × ℕ × Name) List)


Latex:



Latex:

1.  u  :  Id  \mtimes{}  (pi\_prefix()  List)
2.  v  :  (Id  \mtimes{}  (pi\_prefix()  List))  List
3.  Comm-process-q\_aux(v)  \mmember{}  Id
      {}\mrightarrow{}  st:Id  fp->  pi\_prefix()  List
      {}\mrightarrow{}  ((Id  \mtimes{}  (pi\_prefix()  List))  List
            \mtimes{}  st:Id  fp->  pi\_prefix()  List
            \mtimes{}  Id
            \mtimes{}  ((\mBbbN{}  \mtimes{}  Id  \mtimes{}  \mBbbN{}  \mtimes{}  Name)  List))
4.  id  :  Id@i
5.  st  :  st:Id  fp->  pi\_prefix()  List@i
6.  loc  :  Id@i
7.  preList  :  pi\_prefix()  List@i
\mvdash{}  rec-case(v)  of
    []  =>  \mlambda{}id,st.  <[],  st,  id,  []>
    h::t  =>
      r.\mlambda{}id,st.  let  loc  =  fst(h)  in
                            let  preList  =  snd(h)  in
                            let  mList  =  get-triples(preList;st)  in
                            if  null(mList)  then  r  id  loc  :  preList  \moplus{}  st  else  <t,  st,  loc,  mList>  fi   
    id 
    loc  :  preList  \moplus{}  st  \mmember{}  (Id  \mtimes{}  (pi\_prefix()  List))  List
    \mtimes{}  st:Id  fp->  pi\_prefix()  List
    \mtimes{}  Id
    \mtimes{}  ((\mBbbN{}  \mtimes{}  Id  \mtimes{}  \mBbbN{}  \mtimes{}  Name)  List)


By


Latex:
Fold  `Comm-process-q\_aux`  0




Home Index