Step
*
of Lemma
finite-type-union
∀[A,B:Type]. (finite-type(A)
⇒ finite-type(B)
⇒ finite-type(A + B))
BY
{ ((((((Auto THEN (All (RWO "finite-type-iff-list"))) THENA Auto)
THEN ExRepD
THEN (InstConcl [⌜map(λx.(inl x);L1) @ map(λx.(inr x );L)⌝])⋅
THEN Auto
THEN RWO "member_append" 0)
THENA Auto
)
THEN RWO "member_map" 0
)
THENA (Reduce 0 THEN Auto)
) }
1
1. [A] : Type
2. [B] : Type
3. L1 : A List
4. ∀x:A. (x ∈ L1)
5. L : B List
6. ∀x:B. (x ∈ L)
7. x : A + B@i
⊢ (∃y:A. ((y ∈ L1) ∧ (x = ((λx.(inl x)) y) ∈ (A + B)))) ∨ (∃y:B. ((y ∈ L) ∧ (x = ((λx.(inr x )) y) ∈ (A + B))))
Latex:
Latex:
\mforall{}[A,B:Type]. (finite-type(A) {}\mRightarrow{} finite-type(B) {}\mRightarrow{} finite-type(A + B))
By
Latex:
((((((Auto THEN (All (RWO "finite-type-iff-list"))) THENA Auto)
THEN ExRepD
THEN (InstConcl [\mkleeneopen{}map(\mlambda{}x.(inl x);L1) @ map(\mlambda{}x.(inr x );L)\mkleeneclose{}])\mcdot{}
THEN Auto
THEN RWO "member\_append" 0)
THENA Auto
)
THEN RWO "member\_map" 0
)
THENA (Reduce 0 THEN Auto)
)
Home
Index