Step
*
of Lemma
is-list-if-has-value-rec-map
∀[t,f:Base].  is-list-if-has-value-rec(map(f;t))
BY
{ (Auto
   THEN RepUR ``is-list-if-has-value-rec is-list-if-has-value-fun`` 0
   THEN (D 0 THENA Auto)
   THEN UseWitness ⌜Ax⌝⋅
   THEN MoveToConcl 1
   THEN NatInd (-1)
   THEN Reduce 0
   THEN Try (Complete (Auto))
   THEN (D 0 THENA Auto)
   THEN (RWO "primrec-unroll" 0 THENA Auto)
   THEN AutoSplit
   THEN Unfold `uimplies` 0
   THEN (MemTypeCD THENA Auto)
   THEN Fold `uimplies` 0
   THEN (FLemma `decomp-map-if-has-value` [-1] THENA Auto)
   THEN (SplitOnHypITE (-1)
         THENA (Auto
                THEN BLemma `ispair-bool-if-has-value`
                THEN Auto
                THEN FLemma `has-value-if-has-value-map` [-2]
                THEN Auto)
         )
   THEN HypSubst (-2) 0
   THEN Reduce 0
   THEN Try (Complete (Auto))
   THEN Fold `cons` 0
   THEN Reduce 0
   THEN RepUR ``cons`` 0
   THEN BackThruSomeHyp) }
Latex:
Latex:
\mforall{}[t,f:Base].    is-list-if-has-value-rec(map(f;t))
By
Latex:
(Auto
  THEN  RepUR  ``is-list-if-has-value-rec  is-list-if-has-value-fun``  0
  THEN  (D  0  THENA  Auto)
  THEN  UseWitness  \mkleeneopen{}Ax\mkleeneclose{}\mcdot{}
  THEN  MoveToConcl  1
  THEN  NatInd  (-1)
  THEN  Reduce  0
  THEN  Try  (Complete  (Auto))
  THEN  (D  0  THENA  Auto)
  THEN  (RWO  "primrec-unroll"  0  THENA  Auto)
  THEN  AutoSplit
  THEN  Unfold  `uimplies`  0
  THEN  (MemTypeCD  THENA  Auto)
  THEN  Fold  `uimplies`  0
  THEN  (FLemma  `decomp-map-if-has-value`  [-1]  THENA  Auto)
  THEN  (SplitOnHypITE  (-1)
              THENA  (Auto
                            THEN  BLemma  `ispair-bool-if-has-value`
                            THEN  Auto
                            THEN  FLemma  `has-value-if-has-value-map`  [-2]
                            THEN  Auto)
              )
  THEN  HypSubst  (-2)  0
  THEN  Reduce  0
  THEN  Try  (Complete  (Auto))
  THEN  Fold  `cons`  0
  THEN  Reduce  0
  THEN  RepUR  ``cons``  0
  THEN  BackThruSomeHyp)
Home
Index