Step
*
3
1
1
of Lemma
hdf-union-ap
.....subterm..... T:t
1:n
1. A : Type
2. B : Type
3. C : Type
4. Y : hdataflow(A;C)
5. a : A
6. valueall-type(C)
7. valueall-type(B)
8. x : A ⟶ (hdataflow(A;B) × bag(B))@i
9. z1 : hdataflow(A;B)@i
10. ¬↑hdf-halted(z1)
11. z2 : bag(B)@i
12. (x a) = <z1, z2> ∈ (hdataflow(A;B) × bag(B))@i
13. ↑hdf-halted(Y)
14. ff ∈ 𝔹
15. a1 : A@i
16. v1 : hdataflow(A;B)@i
17. v2 : bag(B)@i
18. z1(a1) = <v1, v2> ∈ (hdataflow(A;B) × bag(B))@i
19. v : bag(B + C)@i
20. (bag-map(λx.(inl x);v2) + {}) = v ∈ bag(B + C)@i
⊢ mk-hdf(XY,a.let X,Y = XY
in let X',xs = X(a)
in let Y',ys = Y(a)
in let out ⟵ bag-map(λx.(inl x);xs) + bag-map(λx.(inr x );ys)
in <<X', Y'>, out>;XY.let X,Y = XY
in hdf-halted(X) ∧b hdf-halted(Y);<v1, inr ⋅ >) ∈ hdataflow(A;B + C)
BY
{ (Assert inr ⋅ ∈ hdataflow(A;C) BY
(Fold `hdf-halt` 0 THEN Auto)) }
1
1. A : Type
2. B : Type
3. C : Type
4. Y : hdataflow(A;C)
5. a : A
6. valueall-type(C)
7. valueall-type(B)
8. x : A ⟶ (hdataflow(A;B) × bag(B))@i
9. z1 : hdataflow(A;B)@i
10. ¬↑hdf-halted(z1)
11. z2 : bag(B)@i
12. (x a) = <z1, z2> ∈ (hdataflow(A;B) × bag(B))@i
13. ↑hdf-halted(Y)
14. ff ∈ 𝔹
15. a1 : A@i
16. v1 : hdataflow(A;B)@i
17. v2 : bag(B)@i
18. z1(a1) = <v1, v2> ∈ (hdataflow(A;B) × bag(B))@i
19. v : bag(B + C)@i
20. (bag-map(λx.(inl x);v2) + {}) = v ∈ bag(B + C)@i
21. inr ⋅ ∈ hdataflow(A;C)
⊢ mk-hdf(XY,a.let X,Y = XY
in let X',xs = X(a)
in let Y',ys = Y(a)
in let out ⟵ bag-map(λx.(inl x);xs) + bag-map(λx.(inr x );ys)
in <<X', Y'>, out>;XY.let X,Y = XY
in hdf-halted(X) ∧b hdf-halted(Y);<v1, inr ⋅ >) ∈ hdataflow(A;B + C)
Latex:
Latex:
.....subterm..... T:t
1:n
1. A : Type
2. B : Type
3. C : Type
4. Y : hdataflow(A;C)
5. a : A
6. valueall-type(C)
7. valueall-type(B)
8. x : A {}\mrightarrow{} (hdataflow(A;B) \mtimes{} bag(B))@i
9. z1 : hdataflow(A;B)@i
10. \mneg{}\muparrow{}hdf-halted(z1)
11. z2 : bag(B)@i
12. (x a) = <z1, z2>@i
13. \muparrow{}hdf-halted(Y)
14. ff \mmember{} \mBbbB{}
15. a1 : A@i
16. v1 : hdataflow(A;B)@i
17. v2 : bag(B)@i
18. z1(a1) = <v1, v2>@i
19. v : bag(B + C)@i
20. (bag-map(\mlambda{}x.(inl x);v2) + \{\}) = v@i
\mvdash{} mk-hdf(XY,a.let X,Y = XY
in let X',xs = X(a)
in let Y',ys = Y(a)
in let out \mleftarrow{}{} bag-map(\mlambda{}x.(inl x);xs) + bag-map(\mlambda{}x.(inr x );ys)
in <<X', Y'>, out>XY.let X,Y = XY
in hdf-halted(X) \mwedge{}\msubb{} hdf-halted(Y);<v1, inr \mcdot{} >) \mmember{} hdataflo\000Cw(A;B + C)
By
Latex:
(Assert inr \mcdot{} \mmember{} hdataflow(A;C) BY
(Fold `hdf-halt` 0 THEN Auto))
Home
Index