Step * 1 1 1 of Lemma ml-maprevappend-sq


1. Type
2. Type
3. A ⟶ T
4. valueall-type(T)
5. valueall-type(A)
6. A
7. valueall-type(A ⟶ T)
8. A
9. List
10. ∀bs:T List. (ml-maprevappend(f;v;bs) map(f;rev(v)) bs)
11. bs List
12. ml-maprevappend(f;v;[f bs]) map(f;rev(v)) [f bs]
⊢ let y ⟵ f
  in fix((λrevappend,f,l,x. if null(l)
                           then x
                           else let a.b 
                                in let y ⟵ [let y ⟵ in x]
                                   in let y ⟵ in let y ⟵ in revappend y
                           fi )) 
     
  
  [f bs] ml-maprevappend(f;v;[f bs])
BY
(RepUR ``ml-maprevappend ml_apply`` 0
   THEN (CallByValueReduceOn ⌜[f bs]⌝0⋅ THENA Auto)
   THEN (CallByValueReduceOn ⌜v⌝0⋅ THENA Auto)
   THEN CallByValueReduceOn ⌜f⌝0⋅
   THEN Auto) }


Latex:


Latex:

1.  T  :  Type
2.  A  :  Type
3.  f  :  A  {}\mrightarrow{}  T
4.  valueall-type(T)
5.  valueall-type(A)
6.  A
7.  valueall-type(A  {}\mrightarrow{}  T)
8.  u  :  A
9.  v  :  A  List
10.  \mforall{}bs:T  List.  (ml-maprevappend(f;v;bs)  \msim{}  map(f;rev(v))  @  bs)
11.  bs  :  T  List
12.  ml-maprevappend(f;v;[f  u  /  bs])  \msim{}  map(f;rev(v))  @  [f  u  /  bs]
\mvdash{}  let  y  \mleftarrow{}{}  f
    in  fix((\mlambda{}revappend,f,l,x.  if  null(l)
                                                      then  x
                                                      else  let  a.b  =  l 
                                                                in  let  y  \mleftarrow{}{}  [let  y  \mleftarrow{}{}  a  in  f  y  /  x]
                                                                      in  let  y  \mleftarrow{}{}  b  in  let  y  \mleftarrow{}{}  f  in  revappend  y  y  y
                                                      fi  )) 
          y 
    v 
    [f  u  /  bs]  \msim{}  ml-maprevappend(f;v;[f  u  /  bs])


By


Latex:
(RepUR  ``ml-maprevappend  ml\_apply``  0
  THEN  (CallByValueReduceOn  \mkleeneopen{}[f  u  /  bs]\mkleeneclose{}0\mcdot{}  THENA  Auto)
  THEN  (CallByValueReduceOn  \mkleeneopen{}v\mkleeneclose{}0\mcdot{}  THENA  Auto)
  THEN  CallByValueReduceOn  \mkleeneopen{}f\mkleeneclose{}0\mcdot{}
  THEN  Auto)




Home Index