Step * 1 1 of Lemma pi-guarded-aux_wf


1. compList (pi_prefix() × pi_term()) List
2. {Q:pi_term()| (∃C∈compList. pi-rank(Q) ≤ pi-rank(snd(C)))}  ─→ Id ─→ Name ─→ (Name List) ─→ pi-process()
3. Id
4. serial Name
5. avoid Name List
⊢ λpi-guarded-aux,l,serial,avoid,m. if pDVmsg?(m)
                                   then let val pDVmsg-val(m) in
                                         let pDVmsg-index(m) in
                                         if i <||compList||
                                         then let pre_i,P_i compList[i] 
                                              in let P' if pircv?(pre_i)
                                                          then pi-simple-subst(val;pircv-var(pre_i);P_i)
                                                          else P_i
                                                          fi  in
                                                     <P' serial avoid ∪ pi-names(P')
                                                     make-lg([<l, mk-tagged("msg";pDVfire())>])
                                                     >
                                         else <pi-guarded-aux serial avoid, make-lg([])>
                                         fi 
                                   else <pi-guarded-aux serial avoid, make-lg([])>
                                   fi  ∈ ∩T:{T:Type| Process(T.piM(T)) ⊆T} 
           ((Id ─→ Name ─→ (Name List) ─→ T)
           ─→ Id
           ─→ Name
           ─→ (Name List)
           ─→ piM(T)
           ─→ (T × LabeledDAG(Id × (Com(T.piM(T)) T))))
BY
(MemTypeCD
   THEN -1
   THEN RepeatFor ((MemCD THENA Auto))
   THEN AutoSplit
   THEN RepeatFor (GenConclLet [2] ⋅⋅)
   THEN AutoSplit
   THEN GenConclAtAddr [2;1]
   THEN -2
   THEN Reduce 0
   THEN AutoSplit
   THEN ((GenConclLetType pi_term() [2]⋅ THENA Auto)
         THEN Auto
         THEN (MemTypeCD THEN Auto THEN With ⌈i⌉ (D 0)⋅ THEN Auto)⋅)⋅}

1
1. compList (pi_prefix() × pi_term()) List
2. {Q:pi_term()| (∃C∈compList. pi-rank(Q) ≤ pi-rank(snd(C)))}  ─→ Id ─→ Name ─→ (Name List) ─→ pi-process()
3. Id
4. serial Name
5. avoid Name List
6. Type
7. Process(T.piM(T)) ⊆T
8. pi-guarded-aux Id ─→ Name ─→ (Name List) ─→ T@i
9. l1 Id@i
10. s1 Name@i
11. a1 Name List@i
12. piM(T)@i
13. ↑pDVmsg?(m)
14. val Name@i
15. pDVmsg-val(m) val ∈ Name@i
16. : ℕ@i
17. pDVmsg-index(m) i ∈ ℕ@i
18. i < ||compList||
19. v1 pi_prefix()@i
20. v2 pi_term()@i
21. compList[i] = <v1, v2> ∈ (pi_prefix() × pi_term())@i
22. ↑pircv?(v1)
23. P' pi_term()@i
24. pi-simple-subst(val;pircv-var(v1);v2) P' ∈ pi_term()@i
⊢ pi-rank(P') ≤ pi-rank(snd(compList[i]))


Latex:



Latex:

1.  compList  :  (pi\_prefix()  \mtimes{}  pi\_term())  List
2.  g  :  \{Q:pi\_term()|  (\mexists{}C\mmember{}compList.  pi-rank(Q)  \mleq{}  pi-rank(snd(C)))\} 
{}\mrightarrow{}  Id
{}\mrightarrow{}  Name
{}\mrightarrow{}  (Name  List)
{}\mrightarrow{}  pi-process()
3.  l  :  Id
4.  serial  :  Name
5.  avoid  :  Name  List
\mvdash{}  \mlambda{}pi-guarded-aux,l,serial,avoid,m.  if  pDVmsg?(m)
                                                                      then  let  val  =  pDVmsg-val(m)  in
                                                                                  let  i  =  pDVmsg-index(m)  in
                                                                                  if  i  <z  ||compList||
                                                                                  then  let  pre$_{i}$,P$_{i\mbackslash{}ff\000C7d$  =  compList[i] 
                                                                                            in  let  P'  =  if  pircv?(pre$_{i}$)
                                                                                                                    then  pi-simple-subst(val;...;P$_\mbackslash{}f\000Cf7bi}$)
                                                                                                                    else  P$_{i}$
                                                                                                                    fi    in
                                                                                                          <g  P'  l  serial  avoid  \mcup{}  pi-names(P')
                                                                                                          ,  make-lg([<l,  mk-tagged("msg";pDVfire())>])
                                                                                                          >
                                                                                  else  <pi-guarded-aux  l  serial  avoid,  make-lg([])>
                                                                                  fi 
                                                                      else  <pi-guarded-aux  l  serial  avoid,  make-lg([])>
                                                                      fi    \mmember{}  \mcap{}T:\{T:Type|  Process(T.piM(T))  \msubseteq{}r  T\} 
                      ((Id  {}\mrightarrow{}  Name  {}\mrightarrow{}  (Name  List)  {}\mrightarrow{}  T)
                      {}\mrightarrow{}  Id
                      {}\mrightarrow{}  Name
                      {}\mrightarrow{}  (Name  List)
                      {}\mrightarrow{}  piM(T)
                      {}\mrightarrow{}  (T  \mtimes{}  LabeledDAG(Id  \mtimes{}  (Com(T.piM(T))  T))))


By


Latex:
(MemTypeCD
  THEN  D  -1
  THEN  RepeatFor  5  ((MemCD  THENA  Auto))
  THEN  AutoSplit
  THEN  RepeatFor  2  (GenConclLet  [2]  \mcdot{}\mcdot{})
  THEN  AutoSplit
  THEN  GenConclAtAddr  [2;1]
  THEN  D  -2
  THEN  Reduce  0
  THEN  AutoSplit
  THEN  ((GenConclLetType  pi\_term()  [2]\mcdot{}  THENA  Auto)
              THEN  Auto
              THEN  (MemTypeCD  THEN  Auto  THEN  With  \mkleeneopen{}i\mkleeneclose{}  (D  0)\mcdot{}  THEN  Auto)\mcdot{})\mcdot{})




Home Index