Step * 1 1 of Lemma sbhomout-correct


1. ∀a,b:ℕ. ∀m,n:ℕ+.  (0 <  0 < (a m) (b n))
2. : ℕ2
3. : ℕList
4. ∀x:ℕ
     ∀[a,b,c,d:ℕ].
       (((a d) ≤ x)
        0 < b
        0 < d
        (sbhomout(a;b;c;d;v) let m,n sbdecode(v) in sbcode((a m) (b n);(c m) (d n)) ∈ (ℕList)))
5. : ℤ
6. 0 < x
7. ∀[a,b,c,d:ℕ].
     (((a d) ≤ (x 1))
      0 < b
      0 < d
      (sbhomout(a;b;c;d;[u v])
        let m,n sbdecode([u v]) 
          in sbcode((a m) (b n);(c m) (d n))
        ∈ (ℕList)))
8. : ℕ
9. : ℕ
10. : ℕ
11. : ℕ
12. (a d) ≤ x
13. 0 < b
14. 0 < d
⊢ if mtge1(a;b;c;d) then eval a' in eval b' in   [1 sbhomout(a';b';c;d;[u v])]
if mtge1(c;d;a;b) then eval c' in eval d' in   [0 sbhomout(a;b;c';d';[u v])]
else if u=0
     then eval a' in
          eval c' in
            sbhomout(a';b;c';d;v)
     else eval b' in
          eval d' in
            sbhomout(a;b';c;d';v)
fi 
let m,n sbdecode([u v]) 
  in sbcode((a m) (b n);(c m) (d n))
∈ (ℕList)
BY
xxx(AutoSplit THEN Try ((RepUR ``mtge1`` -1 THEN (RW assert_pushdownC (-1) THENA Auto))))xxx }

1
1. ∀a,b:ℕ. ∀m,n:ℕ+.  (0 <  0 < (a m) (b n))
2. : ℕ2
3. : ℕList
4. ∀x:ℕ
     ∀[a,b,c,d:ℕ].
       (((a d) ≤ x)
        0 < b
        0 < d
        (sbhomout(a;b;c;d;v) let m,n sbdecode(v) in sbcode((a m) (b n);(c m) (d n)) ∈ (ℕList)))
5. : ℤ
6. 0 < x
7. ∀[a,b,c,d:ℕ].
     (((a d) ≤ (x 1))
      0 < b
      0 < d
      (sbhomout(a;b;c;d;[u v])
        let m,n sbdecode([u v]) 
          in sbcode((a m) (b n);(c m) (d n))
        ∈ (ℕList)))
8. : ℕ
9. : ℕ
10. : ℕ
11. : ℕ
12. (a d) ≤ x
13. 0 < b
14. 0 < d
15. ((c ≤ a) ∧ d < b) ∨ (c < a ∧ (d ≤ b))
⊢ eval a' in
  eval b' in
    [1 sbhomout(a';b';c;d;[u v])]
let m,n sbdecode([u v]) 
  in sbcode((a m) (b n);(c m) (d n))
∈ (ℕList)

2
1. ∀a,b:ℕ. ∀m,n:ℕ+.  (0 <  0 < (a m) (b n))
2. : ℕ2
3. : ℕList
4. ∀x:ℕ
     ∀[a,b,c,d:ℕ].
       (((a d) ≤ x)
        0 < b
        0 < d
        (sbhomout(a;b;c;d;v) let m,n sbdecode(v) in sbcode((a m) (b n);(c m) (d n)) ∈ (ℕList)))
5. : ℤ
6. 0 < x
7. ∀[a,b,c,d:ℕ].
     (((a d) ≤ (x 1))
      0 < b
      0 < d
      (sbhomout(a;b;c;d;[u v])
        let m,n sbdecode([u v]) 
          in sbcode((a m) (b n);(c m) (d n))
        ∈ (ℕList)))
8. : ℕ
9. : ℕ
10. : ℕ
11. : ℕ
12. ¬↑mtge1(a;b;c;d)
13. (a d) ≤ x
14. 0 < b
15. 0 < d
⊢ if mtge1(c;d;a;b)
then eval c' in
     eval d' in
       [0 sbhomout(a;b;c';d';[u v])]
else if u=0
     then eval a' in
          eval c' in
            sbhomout(a';b;c';d;v)
     else eval b' in
          eval d' in
            sbhomout(a;b';c;d';v)
fi 
let m,n sbdecode([u v]) 
  in sbcode((a m) (b n);(c m) (d n))
∈ (ℕList)


Latex:


Latex:

1.  \mforall{}a,b:\mBbbN{}.  \mforall{}m,n:\mBbbN{}\msupplus{}.    (0  <  a  +  b  {}\mRightarrow{}  0  <  (a  *  m)  +  (b  *  n))
2.  u  :  \mBbbN{}2
3.  v  :  \mBbbN{}2  List
4.  \mforall{}x:\mBbbN{}
          \mforall{}[a,b,c,d:\mBbbN{}].
              (((a  +  b  +  c  +  d)  \mleq{}  x)
              {}\mRightarrow{}  0  <  a  +  b
              {}\mRightarrow{}  0  <  c  +  d
              {}\mRightarrow{}  (sbhomout(a;b;c;d;v)
                    =  let  m,n  =  sbdecode(v) 
                        in  sbcode((a  *  m)  +  (b  *  n);(c  *  m)  +  (d  *  n))))
5.  x  :  \mBbbZ{}
6.  0  <  x
7.  \mforall{}[a,b,c,d:\mBbbN{}].
          (((a  +  b  +  c  +  d)  \mleq{}  (x  -  1))
          {}\mRightarrow{}  0  <  a  +  b
          {}\mRightarrow{}  0  <  c  +  d
          {}\mRightarrow{}  (sbhomout(a;b;c;d;[u  /  v])
                =  let  m,n  =  sbdecode([u  /  v]) 
                    in  sbcode((a  *  m)  +  (b  *  n);(c  *  m)  +  (d  *  n))))
8.  a  :  \mBbbN{}
9.  b  :  \mBbbN{}
10.  c  :  \mBbbN{}
11.  d  :  \mBbbN{}
12.  (a  +  b  +  c  +  d)  \mleq{}  x
13.  0  <  a  +  b
14.  0  <  c  +  d
\mvdash{}  if  mtge1(a;b;c;d)  then  eval  a'  =  a  -  c  in  eval  b'  =  b  -  d  in      [1  /  sbhomout(a';b';c;d;[u  /  v])]
if  mtge1(c;d;a;b)  then  eval  c'  =  c  -  a  in  eval  d'  =  d  -  b  in      [0  /  sbhomout(a;b;c';d';[u  /  v])]
else  if  u=0
          then  eval  a'  =  a  +  b  in
                    eval  c'  =  c  +  d  in
                        sbhomout(a';b;c';d;v)
          else  eval  b'  =  a  +  b  in
                    eval  d'  =  c  +  d  in
                        sbhomout(a;b';c;d';v)
fi 
=  let  m,n  =  sbdecode([u  /  v]) 
    in  sbcode((a  *  m)  +  (b  *  n);(c  *  m)  +  (d  *  n))


By


Latex:
xxx(AutoSplit  THEN  Try  ((RepUR  ``mtge1``  -1  THEN  (RW  assert\_pushdownC  (-1)  THENA  Auto))))xxx




Home Index