Step * 1 of Lemma C_TYPE-induction2


1. [P] C_TYPE() ─→ ℙ
2. P[C_Void()]@i
3. P[C_Int()]@i
4. ∀fields:(Atom × C_TYPE()) List. ((∀i:ℕ||fields||. P[snd(fields[i])])  P[C_Struct(fields)])@i
5. fields (Atom × C_TYPE()) List@i
6. (∀u∈fields.let u1,u2 
              in P[u2])@i
⊢ ∀i:ℕ||fields||. P[snd(fields[i])]
BY
(Unfold `l_all` -1
   THEN ParallelLast
   THEN MoveToConcl (-1)
   THEN (GenConclTerm ⌈fields[i]⌉⋅ THENA Auto)
   THEN -2
   THEN Reduce 0) }

1
1. [P] C_TYPE() ─→ ℙ
2. P[C_Void()]@i
3. P[C_Int()]@i
4. ∀fields:(Atom × C_TYPE()) List. ((∀i:ℕ||fields||. P[snd(fields[i])])  P[C_Struct(fields)])@i
5. fields (Atom × C_TYPE()) List@i
6. ∀i:ℕ||fields||. let u1,u2 fields[i] in P[u2]@i
7. : ℕ||fields||@i
8. v1 Atom@i
9. v2 C_TYPE()@i
10. fields[i] = <v1, v2> ∈ (Atom × C_TYPE())@i
⊢ P[v2]  P[v2]


Latex:



1.  [P]  :  C\_TYPE()  {}\mrightarrow{}  \mBbbP{}
2.  P[C\_Void()]@i
3.  P[C\_Int()]@i
4.  \mforall{}fields:(Atom  \mtimes{}  C\_TYPE())  List.  ((\mforall{}i:\mBbbN{}||fields||.  P[snd(fields[i])])  {}\mRightarrow{}  P[C\_Struct(fields)])@i
5.  fields  :  (Atom  \mtimes{}  C\_TYPE())  List@i
6.  (\mforall{}u\mmember{}fields.let  u1,u2  =  u 
                            in  P[u2])@i
\mvdash{}  \mforall{}i:\mBbbN{}||fields||.  P[snd(fields[i])]


By

(Unfold  `l\_all`  -1
  THEN  ParallelLast
  THEN  MoveToConcl  (-1)
  THEN  (GenConclTerm  \mkleeneopen{}fields[i]\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  D  -2
  THEN  Reduce  0)




Home Index