Step
*
1
1
1
1
1
of Lemma
generic-non-empty
1. [T] : Type
2. X : T
3. R : ℕ ⟶ (T List) ⟶ ℙ
4. p : i:ℕ ⟶ s:(T List) ⟶ (∃s':T List. (s ≤ s' ∧ (R i s')))
⊢ ∀i:ℕ. (R i ((λn.primrec(n + 1;[];λi,s. if i <z ||fst((p i s))|| then fst((p i s)) else fst((p i (s @ [X]))) fi )) i))
BY
{ (Reduce 0
   THEN Auto
   THEN (RWO "primrec-unroll" 0 THENA Auto)
   THEN Reduce 0
   THEN Subst' ((i + 1) - 1) = i ∈ ℤ 0
   THEN SplitOnConclITE
   THEN Auto
   THEN (SplitOnConclITE THENA (Auto THEN DoSubsume THEN Auto))
   THEN (((GenConclAtAddr [2; 1; 2]) THENA Auto) THEN ((GenConclAtAddr [2; 1]) THENA Auto) THEN D (-2) THEN Auto)⋅) }
Latex:
Latex:
1.  [T]  :  Type
2.  X  :  T
3.  R  :  \mBbbN{}  {}\mrightarrow{}  (T  List)  {}\mrightarrow{}  \mBbbP{}
4.  p  :  i:\mBbbN{}  {}\mrightarrow{}  s:(T  List)  {}\mrightarrow{}  (\mexists{}s':T  List.  (s  \mleq{}  s'  \mwedge{}  (R  i  s')))
\mvdash{}  \mforall{}i:\mBbbN{}
        (R  i 
          ((\mlambda{}n.primrec(n  +  1;[];\mlambda{}i,s.  if  i  <z  ||fst((p  i  s))||
                                                                then  fst((p  i  s))
                                                                else  fst((p  i  (s  @  [X])))
                                                                fi  )) 
            i))
By
Latex:
(Reduce  0
  THEN  Auto
  THEN  (RWO  "primrec-unroll"  0  THENA  Auto)
  THEN  Reduce  0
  THEN  Subst'  ((i  +  1)  -  1)  =  i  0
  THEN  SplitOnConclITE
  THEN  Auto
  THEN  (SplitOnConclITE  THENA  (Auto  THEN  DoSubsume  THEN  Auto))
  THEN  (((GenConclAtAddr  [2;  1;  2])  THENA  Auto)
              THEN  ((GenConclAtAddr  [2;  1])  THENA  Auto)
              THEN  D  (-2)
              THEN  Auto)\mcdot{})
Home
Index