Step * of Lemma ml-map-sq

[A,B:Type].  ∀[f:A ⟶ B]. ∀[l:A List].  (ml-map(f;l) map(f;l)) supposing (valueall-type(A) ∧ A) ∧ value-type(B)
BY
(InductionOnList
   THEN All (RepUR ``ml-map spreadcons ml_apply``)
   THEN (Assert ⌜valueall-type(A ⟶ B)⌝⋅ THENA Auto)
   THEN CallByValueReduceOn ⌜f⌝ 0⋅
   THEN Auto
   THEN RW (AddrC [1] (SweepUpC UnrollRecursionC)) 0
   THEN Reduce 0
   THEN (Trivial ORELSE RepeatFor (((CallByValueReduce THENA Auto) THEN Reduce 0)))) }

1
1. Type
2. Type
3. valueall-type(A)
4. A
5. value-type(B)
6. A ⟶ B
7. A
8. List
9. let y ⟵ v
   in let y ⟵ f
      in fix((λmap,f,l. if null(l)
                       then []
                       else let a,as 
                            in [let y ⟵ in let y ⟵ as in let y ⟵ in map y]
                       fi )) 
         
      map(f;v)
10. valueall-type(A ⟶ B)
⊢ [f 
   (fix((λmap,f,l. if null(l)
                  then []
                  else let a,as 
                       in [let y ⟵ in let y ⟵ as in let y ⟵ in map y]
                  fi )) 
    
    v)] [f map(f;v)]


Latex:


Latex:
\mforall{}[A,B:Type].
    \mforall{}[f:A  {}\mrightarrow{}  B].  \mforall{}[l:A  List].    (ml-map(f;l)  \msim{}  map(f;l)) 
    supposing  (valueall-type(A)  \mwedge{}  A)  \mwedge{}  value-type(B)


By


Latex:
(InductionOnList
  THEN  All  (RepUR  ``ml-map  spreadcons  ml\_apply``)
  THEN  (Assert  \mkleeneopen{}valueall-type(A  {}\mrightarrow{}  B)\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  CallByValueReduceOn  \mkleeneopen{}f\mkleeneclose{}  0\mcdot{}
  THEN  Auto
  THEN  RW  (AddrC  [1]  (SweepUpC  UnrollRecursionC))  0
  THEN  Reduce  0
  THEN  (Trivial  ORELSE  RepeatFor  3  (((CallByValueReduce  0  THENA  Auto)  THEN  Reduce  0))))




Home Index