Step * 1 of Lemma norm-list_wf


1. Type
2. value-type(T)
3. id-fun(T)
4. List
⊢ norm-list(N) L ∈ {y:T List| y ∈ (T List)} 
BY
(ListInd (-1)
   THEN Unfold `norm-list` 0
   THEN Reduce 0
   THEN Try ((Subst ⌜rec-case(v) of
                     [] => []
                     a::as =>
                      r.eval a' in
                        eval r' in
                          [a' r'] norm-list(N) v⌝ 0⋅
              THEN Try ((RepUR ``norm-list`` THEN Trivial))
              ))
   THEN MemTypeCD
   THEN Auto
   THEN RepeatFor ((CallByValueReduce THEN Auto))) }

1
1. Type
2. value-type(T)
3. id-fun(T)
4. T
5. List
6. norm-list(N) v ∈ {y:T List| y ∈ (T List)} 
⊢ [u v] [N (norm-list(N) v)] ∈ (T List)


Latex:


Latex:

1.  T  :  Type
2.  value-type(T)
3.  N  :  id-fun(T)
4.  L  :  T  List
\mvdash{}  norm-list(N)  L  \mmember{}  \{y:T  List|  L  =  y\} 


By


Latex:
(ListInd  (-1)
  THEN  Unfold  `norm-list`  0
  THEN  Reduce  0
  THEN  Try  ((Subst  \mkleeneopen{}rec-case(v)  of
                                      []  =>  []
                                      a::as  =>
                                        r.eval  a'  =  N  a  in
                                            eval  r'  =  r  in
                                                [a'  /  r']  \msim{}  norm-list(N)  v\mkleeneclose{}  0\mcdot{}
                        THEN  Try  ((RepUR  ``norm-list``  0  THEN  Trivial))
                        ))
  THEN  MemTypeCD
  THEN  Auto
  THEN  RepeatFor  2  ((CallByValueReduce  0  THEN  Auto)))




Home Index