Step * of Lemma repeat-on-success_wf

[A,B:Type].
  (∀[C:Type]. ∀[f:A ⟶ (C?)]. ∀[g:(ℕ × C) ⟶ (A List) ⟶ (A List)].
     ∀[h:(ℕ × C) ⟶ B ⟶ B]. ∀[as:A List]. ∀[b:B].  (repeat-on-success(f;g;h;as;b) ∈ List × B) 
     supposing ∃m:(A List) ⟶ ℕ
                ∀as:A List. ∀c:C. ∀j:ℕ.
                  ((first-success(f;as) (inl <j, c>) ∈ (ℕ × C?))  (g <j, c> as) < as)) supposing 
     (value-type(B) and 
     valueall-type(A))
BY
(Auto
   THEN ExRepD
   THEN (Assert ⌜∀n:ℕ. ∀[as:A List]. (m as <  (∀[b:B]. (repeat-on-success(f;g;h;as;b) ∈ List × B)))⌝⋅
   THENM (InstHyp [⌜(m as) 1⌝;⌜as⌝;⌜b⌝(-1)⋅ THEN Auto)
   )
   THEN InductionOnNat
   THEN Auto'
   THEN RecUnfold `repeat-on-success` 0
   THEN Reduce 0
   THEN (GenConclTerm ⌜first-success(f;a1)⌝⋅ THENA Auto)
   THEN -2
   THEN Reduce 0) }

1
1. Type
2. Type
3. valueall-type(A)
4. value-type(B)
5. Type
6. A ⟶ (C?)
7. (ℕ × C) ⟶ (A List) ⟶ (A List)
8. (A List) ⟶ ℕ
9. ∀as:A List. ∀c:C. ∀j:ℕ.  ((first-success(f;as) (inl <j, c>) ∈ (ℕ × C?))  (g <j, c> as) < as)
10. (ℕ × C) ⟶ B ⟶ B
11. as List
12. B
13. : ℤ
14. 0 < n
15. ∀[as:A List]. (m as <  (∀[b:B]. (repeat-on-success(f;g;h;as;b) ∈ List × B)))
16. a1 List
17. a1 < n
18. b1 B
19. i:ℕ||a1|| × C
20. first-success(f;a1) (inl x) ∈ (i:ℕ||a1|| × C?)
⊢ eval as' evalall(g a1) in
  eval b' b1 in
    repeat-on-success(f;g;h;as';b') ∈ List × B

2
1. Type
2. Type
3. valueall-type(A)
4. value-type(B)
5. Type
6. A ⟶ (C?)
7. (ℕ × C) ⟶ (A List) ⟶ (A List)
8. (A List) ⟶ ℕ
9. ∀as:A List. ∀c:C. ∀j:ℕ.  ((first-success(f;as) (inl <j, c>) ∈ (ℕ × C?))  (g <j, c> as) < as)
10. (ℕ × C) ⟶ B ⟶ B
11. as List
12. B
13. : ℤ
14. 0 < n
15. ∀[as:A List]. (m as <  (∀[b:B]. (repeat-on-success(f;g;h;as;b) ∈ List × B)))
16. a1 List
17. a1 < n
18. b1 B
19. Unit
20. first-success(f;a1) (inr ) ∈ (i:ℕ||a1|| × C?)
⊢ <a1, b1> ∈ List × B


Latex:


Latex:
\mforall{}[A,B:Type].
    (\mforall{}[C:Type].  \mforall{}[f:A  {}\mrightarrow{}  (C?)].  \mforall{}[g:(\mBbbN{}  \mtimes{}  C)  {}\mrightarrow{}  (A  List)  {}\mrightarrow{}  (A  List)].
          \mforall{}[h:(\mBbbN{}  \mtimes{}  C)  {}\mrightarrow{}  B  {}\mrightarrow{}  B].  \mforall{}[as:A  List].  \mforall{}[b:B].    (repeat-on-success(f;g;h;as;b)  \mmember{}  A  List  \mtimes{}  B) 
          supposing  \mexists{}m:(A  List)  {}\mrightarrow{}  \mBbbN{}
                                \mforall{}as:A  List.  \mforall{}c:C.  \mforall{}j:\mBbbN{}.
                                    ((first-success(f;as)  =  (inl  <j,  c>))  {}\mRightarrow{}  m  (g  <j,  c>  as)  <  m  as))  supposing 
          (value-type(B)  and 
          valueall-type(A))


By


Latex:
(Auto
  THEN  ExRepD
  THEN  (Assert  \mkleeneopen{}\mforall{}n:\mBbbN{}
                                  \mforall{}[as:A  List].  (m  as  <  n  {}\mRightarrow{}  (\mforall{}[b:B].  (repeat-on-success(f;g;h;as;b)  \mmember{}  A  List  \mtimes{}  B)))\mkleeneclose{}
              \mcdot{}
  THENM  (InstHyp  [\mkleeneopen{}(m  as)  +  1\mkleeneclose{};\mkleeneopen{}as\mkleeneclose{};\mkleeneopen{}b\mkleeneclose{}]  (-1)\mcdot{}  THEN  Auto)
  )
  THEN  InductionOnNat
  THEN  Auto'
  THEN  RecUnfold  `repeat-on-success`  0
  THEN  Reduce  0
  THEN  (GenConclTerm  \mkleeneopen{}first-success(f;a1)\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  D  -2
  THEN  Reduce  0)




Home Index