Step
*
2
2
1
2
1
1
1
1
of Lemma
p-fun-exp-add-sq
.....subterm..... T:t
1:n
1. A : Type
2. f : A ⟶ (A + Top)
3. x : A
4. m : ℤ
5. 0 < m
6. ∀[n:ℕ]. f^n + (m - 1) x ~ f^n do-apply(f^m - 1;x) supposing ↑can-apply(f^m - 1;x)
7. n : ℕ
8. ↑can-apply(f^m;x)
9. ¬(n = 0 ∈ ℤ)
10. 1 ≤ (n + m)
11. 1 ≤ n
12. 1 ≤ m
13. ↑can-apply(f^m - 1;x)
14. x1 : A
15. do-apply(f^m - 1;x) = x1 ∈ A
⊢ (f x1) = (f^m x) ∈ (A + Top)
BY
{ (Unfold `p-fun-exp` 0
   THEN (RWO "primrec-unroll" 0 THENA Auto)
   THEN (SplitOnConclITE THENA Auto)
   THEN Try (Trivial)
   THEN Try ((Reduce 0 THEN Fold `p-fun-exp` 0 THEN (RevHypSubst' -2 0 THENA Auto)))) }
1
.....truecase..... 
1. A : Type
2. f : A ⟶ (A + Top)
3. x : A
4. m : ℤ
5. 0 < m
6. ∀[n:ℕ]. f^n + (m - 1) x ~ f^n do-apply(f^m - 1;x) supposing ↑can-apply(f^m - 1;x)
7. n : ℕ
8. ↑can-apply(f^m;x)
9. ¬(n = 0 ∈ ℤ)
10. 1 ≤ (n + m)
11. 1 ≤ n
12. 1 ≤ m
13. ↑can-apply(f^m - 1;x)
14. x1 : A
15. do-apply(f^m - 1;x) = x1 ∈ A
16. m < 1
⊢ (f x1) = (p-id() x) ∈ (A + Top)
2
1. A : Type
2. f : A ⟶ (A + Top)
3. x : A
4. m : ℤ
5. 0 < m
6. ∀[n:ℕ]. f^n + (m - 1) x ~ f^n do-apply(f^m - 1;x) supposing ↑can-apply(f^m - 1;x)
7. n : ℕ
8. ↑can-apply(f^m;x)
9. ¬(n = 0 ∈ ℤ)
10. 1 ≤ (n + m)
11. 1 ≤ n
12. 1 ≤ m
13. ↑can-apply(f^m - 1;x)
14. x1 : A
15. do-apply(f^m - 1;x) = x1 ∈ A
16. 1 ≤ m
⊢ (f do-apply(f^m - 1;x)) = (f o f^m - 1 x) ∈ (A + Top)
Latex:
Latex:
.....subterm.....  T:t
1:n
1.  A  :  Type
2.  f  :  A  {}\mrightarrow{}  (A  +  Top)
3.  x  :  A
4.  m  :  \mBbbZ{}
5.  0  <  m
6.  \mforall{}[n:\mBbbN{}].  f\^{}n  +  (m  -  1)  x  \msim{}  f\^{}n  do-apply(f\^{}m  -  1;x)  supposing  \muparrow{}can-apply(f\^{}m  -  1;x)
7.  n  :  \mBbbN{}
8.  \muparrow{}can-apply(f\^{}m;x)
9.  \mneg{}(n  =  0)
10.  1  \mleq{}  (n  +  m)
11.  1  \mleq{}  n
12.  1  \mleq{}  m
13.  \muparrow{}can-apply(f\^{}m  -  1;x)
14.  x1  :  A
15.  do-apply(f\^{}m  -  1;x)  =  x1
\mvdash{}  (f  x1)  =  (f\^{}m  x)
By
Latex:
(Unfold  `p-fun-exp`  0
  THEN  (RWO  "primrec-unroll"  0  THENA  Auto)
  THEN  (SplitOnConclITE  THENA  Auto)
  THEN  Try  (Trivial)
  THEN  Try  ((Reduce  0  THEN  Fold  `p-fun-exp`  0  THEN  (RevHypSubst'  -2  0  THENA  Auto))))
Home
Index