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 = u 
              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 D -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. i : ℕ||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