Step
*
1
1
1
1
1
2
of Lemma
sum-unroll
1. f : Base
2. m : ℕ
3. d : ℤ
4. 0 < d
5. ∀s,b:ℤ.  (sum_aux(s + (d - 1) + 1;b;s;x.f[x]) ~ sum_aux(s + (d - 1);b;s;x.f[x]) + f[s + (d - 1)])
6. s : ℤ
7. b : ℤ
⊢ sum_aux(s + d + 1;b;s;x.f[x]) ~ sum_aux(s + d;b;s;x.f[x]) + f[s + d]
BY
{ TACTIC:((InstHyp [⌜s + 1⌝] (-3)⋅ THENA Auto)
          THEN (Subst' (s + 1) + (d - 1) + 1 ~ s + d + 1 -1 THENA Auto)
          THEN (Subst' (s + 1) + (d - 1) ~ s + d -1 THENA Auto)
          THEN RecUnfold `sum_aux` 0
          THEN RepeatFor 2 ((AutoSplit THEN Auto'))
          THEN (CallByValueReduceOn ⌜s + 1⌝ 0⋅ THENA Auto)
          THEN (GenConcl ⌜f[s + d] = a ∈ Base⌝⋅ THENA Auto)
          THEN (GenConcl ⌜f[s] = c ∈ Base⌝⋅ THENA Auto)) }
1
1. f : Base
2. m : ℕ
3. d : ℤ
4. 0 < d
5. ∀s,b:ℤ.  (sum_aux(s + (d - 1) + 1;b;s;x.f[x]) ~ sum_aux(s + (d - 1);b;s;x.f[x]) + f[s + (d - 1)])
6. s : ℤ
7. b : ℤ
8. ∀b:ℤ. (sum_aux(s + d + 1;b;s + 1;x.f[x]) ~ sum_aux(s + d;b;s + 1;x.f[x]) + f[s + d])
9. s < s + d + 1
10. s < s + d
11. a : Base
12. f[s + d] = a ∈ Base
13. c : Base
14. f[s] = c ∈ Base
⊢ eval v' = c + b in
  sum_aux(s + d + 1;v';s + 1;x.f[x]) ~ eval v' = c + b in sum_aux(s + d;v';s + 1;x.f[x]) + a
Latex:
Latex:
1.  f  :  Base
2.  m  :  \mBbbN{}
3.  d  :  \mBbbZ{}
4.  0  <  d
5.  \mforall{}s,b:\mBbbZ{}.    (sum\_aux(s  +  (d  -  1)  +  1;b;s;x.f[x])  \msim{}  sum\_aux(s  +  (d  -  1);b;s;x.f[x])  +  f[s  +  (d  -  1)])
6.  s  :  \mBbbZ{}
7.  b  :  \mBbbZ{}
\mvdash{}  sum\_aux(s  +  d  +  1;b;s;x.f[x])  \msim{}  sum\_aux(s  +  d;b;s;x.f[x])  +  f[s  +  d]
By
Latex:
TACTIC:((InstHyp  [\mkleeneopen{}s  +  1\mkleeneclose{}]  (-3)\mcdot{}  THENA  Auto)
                THEN  (Subst'  (s  +  1)  +  (d  -  1)  +  1  \msim{}  s  +  d  +  1  -1  THENA  Auto)
                THEN  (Subst'  (s  +  1)  +  (d  -  1)  \msim{}  s  +  d  -1  THENA  Auto)
                THEN  RecUnfold  `sum\_aux`  0
                THEN  RepeatFor  2  ((AutoSplit  THEN  Auto'))
                THEN  (CallByValueReduceOn  \mkleeneopen{}s  +  1\mkleeneclose{}  0\mcdot{}  THENA  Auto)
                THEN  (GenConcl  \mkleeneopen{}f[s  +  d]  =  a\mkleeneclose{}\mcdot{}  THENA  Auto)
                THEN  (GenConcl  \mkleeneopen{}f[s]  =  c\mkleeneclose{}\mcdot{}  THENA  Auto))
Home
Index