Step * 1 1 1 1 1 2 1 of Lemma sum-unroll


1. Base
2. : ℕ
3. : ℤ
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. : ℤ
7. : ℤ
8. ∀b:ℤ(sum_aux(s 1;b;s 1;x.f[x]) sum_aux(s d;b;s 1;x.f[x]) f[s d])
9. s < 1
10. s < d
11. Base
12. f[s d] a ∈ Base
13. Base
14. f[s] c ∈ Base
⊢ eval v' in
  sum_aux(s 1;v';s 1;x.f[x]) eval v' in sum_aux(s d;v';s 1;x.f[x]) a
BY
TACTIC:Assert ⌜(c b ∈ ℤ (sum_aux(s 1;c b;s 1;x.f[x]) sum_aux(s d;c b;s 1;x.f[x]) a)⌝⋅ }

1
.....assertion..... 
1. Base
2. : ℕ
3. : ℤ
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. : ℤ
7. : ℤ
8. ∀b:ℤ(sum_aux(s 1;b;s 1;x.f[x]) sum_aux(s d;b;s 1;x.f[x]) f[s d])
9. s < 1
10. s < d
11. Base
12. f[s d] a ∈ Base
13. Base
14. f[s] c ∈ Base
⊢ (c b ∈ ℤ (sum_aux(s 1;c b;s 1;x.f[x]) sum_aux(s d;c b;s 1;x.f[x]) a)

2
1. Base
2. : ℕ
3. : ℤ
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. : ℤ
7. : ℤ
8. ∀b:ℤ(sum_aux(s 1;b;s 1;x.f[x]) sum_aux(s d;b;s 1;x.f[x]) f[s d])
9. s < 1
10. s < d
11. Base
12. f[s d] a ∈ Base
13. Base
14. f[s] c ∈ Base
15. (c b ∈ ℤ (sum_aux(s 1;c b;s 1;x.f[x]) sum_aux(s d;c b;s 1;x.f[x]) a)
⊢ eval v' in
  sum_aux(s 1;v';s 1;x.f[x]) eval v' 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{}
8.  \mforall{}b:\mBbbZ{}.  (sum\_aux(s  +  d  +  1;b;s  +  1;x.f[x])  \msim{}  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
13.  c  :  Base
14.  f[s]  =  c
\mvdash{}  eval  v'  =  c  +  b  in
    sum\_aux(s  +  d  +  1;v';s  +  1;x.f[x])  \msim{}  eval  v'  =  c  +  b  in  sum\_aux(s  +  d;v';s  +  1;x.f[x])  +  a


By


Latex:
TACTIC:Assert  \mkleeneopen{}(c  +  b  \mmember{}  \mBbbZ{})
                              {}\mRightarrow{}  (sum\_aux(s  +  d  +  1;c  +  b;s  +  1;x.f[x])  \msim{}  sum\_aux(s  +  d;c  +  b;s  +  1;x.f[x])  +  a)\mkleeneclose{}\mcdot{}




Home Index