Step * 1 1 1 1 1 2 1 2 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
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
BY
TACTIC:(SqequalSqle
          THEN AssumeHasValue
          THEN (HasValueD (-1) ORELSE (ExceptionCases (-1) THEN Try (Complete (SameException))))
          THEN (Try ((CallByValueReduce THENA Complete (Auto)))
                THEN Try ((ExceptionCases (-1)
                           THEN Try (SameException)
                           THEN Try ((CallByValueReduce THENA Complete (Auto)))))
                )
          THEN Try (((Assert ⌜(eval v' in sum_aux(s d;v';s 1;x.f[x]))↓⌝⋅ THENA Complete (Auto))
                     THEN HasValueD  (-1)
                     ))
          THEN Try (((Assert b ∈ ℤ BY (HasValueD (-1) THEN Complete (Auto))) THEN RWO  "15" THEN Auto))) }


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
15.  (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)
\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:(SqequalSqle
                THEN  AssumeHasValue
                THEN  (HasValueD  (-1)  ORELSE  (ExceptionCases  (-1)  THEN  Try  (Complete  (SameException))))
                THEN  (Try  ((CallByValueReduce  0  THENA  Complete  (Auto)))
                            THEN  Try  ((ExceptionCases  (-1)
                                                  THEN  Try  (SameException)
                                                  THEN  Try  ((CallByValueReduce  0  THENA  Complete  (Auto)))))
                            )
                THEN  Try  (((Assert  \mkleeneopen{}(eval  v'  =  c  +  b  in
                                                          sum\_aux(s  +  d;v';s  +  1;x.f[x]))\mdownarrow{}\mkleeneclose{}\mcdot{}
                                        THENA  Complete  (Auto)
                                        )
                                      THEN  HasValueD    (-1)
                                      ))
                THEN  Try  (((Assert  c  +  b  \mmember{}  \mBbbZ{}  BY
                                                    (HasValueD  (-1)  THEN  Complete  (Auto)))
                                      THEN  RWO    "15"  0
                                      THEN  Auto)))




Home Index