Step
*
1
1
of Lemma
sbhomout-correct
1. ∀a,b:ℕ. ∀m,n:ℕ+. (0 < a + b
⇒ 0 < (a * m) + (b * n))
2. u : ℕ2
3. v : ℕ2 List
4. ∀x:ℕ
∀[a,b,c,d:ℕ].
(((a + b + c + d) ≤ x)
⇒ 0 < a + b
⇒ 0 < c + d
⇒ (sbhomout(a;b;c;d;v) = let m,n = sbdecode(v) in sbcode((a * m) + (b * n);(c * m) + (d * n)) ∈ (ℕ2 List)))
5. x : ℤ
6. 0 < x
7. ∀[a,b,c,d:ℕ].
(((a + b + c + d) ≤ (x - 1))
⇒ 0 < a + b
⇒ 0 < c + d
⇒ (sbhomout(a;b;c;d;[u / v])
= let m,n = sbdecode([u / v])
in sbcode((a * m) + (b * n);(c * m) + (d * n))
∈ (ℕ2 List)))
8. a : ℕ
9. b : ℕ
10. c : ℕ
11. d : ℕ
12. (a + b + c + d) ≤ x
13. 0 < a + b
14. 0 < c + d
⊢ 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))
∈ (ℕ2 List)
BY
{ xxx(AutoSplit THEN Try ((RepUR ``mtge1`` -1 THEN (RW assert_pushdownC (-1) THENA Auto))))xxx }
1
1. ∀a,b:ℕ. ∀m,n:ℕ+. (0 < a + b
⇒ 0 < (a * m) + (b * n))
2. u : ℕ2
3. v : ℕ2 List
4. ∀x:ℕ
∀[a,b,c,d:ℕ].
(((a + b + c + d) ≤ x)
⇒ 0 < a + b
⇒ 0 < c + d
⇒ (sbhomout(a;b;c;d;v) = let m,n = sbdecode(v) in sbcode((a * m) + (b * n);(c * m) + (d * n)) ∈ (ℕ2 List)))
5. x : ℤ
6. 0 < x
7. ∀[a,b,c,d:ℕ].
(((a + b + c + d) ≤ (x - 1))
⇒ 0 < a + b
⇒ 0 < c + d
⇒ (sbhomout(a;b;c;d;[u / v])
= let m,n = sbdecode([u / v])
in sbcode((a * m) + (b * n);(c * m) + (d * n))
∈ (ℕ2 List)))
8. a : ℕ
9. b : ℕ
10. c : ℕ
11. d : ℕ
12. (a + b + c + d) ≤ x
13. 0 < a + b
14. 0 < c + d
15. ((c ≤ a) ∧ d < b) ∨ (c < a ∧ (d ≤ b))
⊢ eval a' = a - c in
eval b' = b - d 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))
∈ (ℕ2 List)
2
1. ∀a,b:ℕ. ∀m,n:ℕ+. (0 < a + b
⇒ 0 < (a * m) + (b * n))
2. u : ℕ2
3. v : ℕ2 List
4. ∀x:ℕ
∀[a,b,c,d:ℕ].
(((a + b + c + d) ≤ x)
⇒ 0 < a + b
⇒ 0 < c + d
⇒ (sbhomout(a;b;c;d;v) = let m,n = sbdecode(v) in sbcode((a * m) + (b * n);(c * m) + (d * n)) ∈ (ℕ2 List)))
5. x : ℤ
6. 0 < x
7. ∀[a,b,c,d:ℕ].
(((a + b + c + d) ≤ (x - 1))
⇒ 0 < a + b
⇒ 0 < c + d
⇒ (sbhomout(a;b;c;d;[u / v])
= let m,n = sbdecode([u / v])
in sbcode((a * m) + (b * n);(c * m) + (d * n))
∈ (ℕ2 List)))
8. a : ℕ
9. b : ℕ
10. c : ℕ
11. d : ℕ
12. ¬↑mtge1(a;b;c;d)
13. (a + b + c + d) ≤ x
14. 0 < a + b
15. 0 < c + d
⊢ 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))
∈ (ℕ2 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